OSDN Git Service

1a46e3247a05ae6f13e468bc612b83a066c8d280
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
4
5 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
6
7         * varasm.c: Do not include c-pragma.h.
8         * attribs.c: Do not incude c-common.h.
9
10 2009-05-01  Michael Matz  <matz@suse.de>
11
12         * calls.c (initialize_argument_information): Handle SSA names like
13         decls with a non MEM_P DECL_RTL.
14
15 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
16
17         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
18         * ipa-utils.c: Likewise.
19         * ipa-type-escape.c: Likewise.
20         * cgraphunit.c Do not include c-common.h.
21         * ipa-pure-const.c: Likewise.
22         * tree-if-conv.c: Likewise.
23         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
24         * ipa-struct-reorg.c: Likewise.
25         * tree-nomudflap.c: Likewise.
26         * tree-ssa-structalias.c: Likewise.
27
28 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
29
30         * store-motion.c: Many cleanups to make this pass a first-class
31         citizen instead of an appendix to gcse load motion.  Add TODO list
32         to make this pass faster/cleaner/better.
33
34         (struct ls_expr): Post gcse.c-split cleanups.
35         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
36         "stores" field to "avail_stores".
37         (pre_ldst_mems): Rename to store_motion_mems.
38         (pre_ldst_table): Rename to store_motion_mems_table.
39         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
40         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
41         (ldst_entry): Rename to st_expr_entry, update users.
42         (free_ldst_entry): Rename to free_st_expr_entry, update users.
43         (free_ldst_mems): Rename to free_store_motion_mems, update users.
44         (enumerate_ldsts): Rename to enumerate_store_motion_mems, update caller.
45         (first_ls_expr): Rename to first_st_expr, update users.
46         (next_ls_expr): Rename to next_st_expr, update users.
47         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
48         fields properly for store motion instead of names inherited from load
49         motion in gcse.c.
50         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
51         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
52         are done with it.
53
54         (ae_kill): Rename to st_kill, update users.
55         (ae_gen): Rename to st_avloc, update users.
56         (transp): Rename to st_transp, update users.
57         (pre_insert_map): Rename to st_insert_map, update users.
58         (pre_delete_map): Rename to st_delete_map, update users.
59         (insert_store, build_store_vectors, free_store_memory,
60         one_store_motion_pass): Update for abovementioned changes.
61
62         (gcse_subst_count, gcse_create_count): Remove.
63         (one_store_motion_pass): New statistics counters "n_stores_deleted"
64         and "n_stores_created", local variables.
65
66         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
67         use for_each_rtx.
68
69         (regvec, compute_store_table_current_insn): Remove.
70         (reg_set_info, reg_clear_last_set): Remove.
71         (compute_store_table): Use DF caches instead of local dataflow
72         solvers.
73
74 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
75
76         * c-objc-common.c (c_tree_printer): Print identifiers with
77         pp_identifier, not pp_string.  Mark "({anonymous})" for
78         translation.
79         * c-pretty-print.c (pp_c_ws_string): New.
80         (pp_c_cv_qualifier, pp_c_type_specifier,
81         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
82         pp_c_storage_class_specifier, pp_c_function_specifier,
83         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
84         pp_c_primary_expression, pp_c_postfix_expression,
85         pp_c_unary_expression, pp_c_shift_expression,
86         pp_c_relational_expression, pp_c_equality_expression,
87         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
88         use pp_string and pp_c_ws_string in place of pp_identifier and
89         pp_c_identifier for non-identifiers.  Mark English strings for
90         translation.
91         * c-pretty-print.h (pp_c_ws_string): Declare.
92
93 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
94             Roland McGrath <roland@redhat.com>
95
96         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id
97         support.
98         (ENABLE_LD_BUILDID): New configuration option.
99         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
100         (LINK_BUILDID_SPEC): New macro.
101         (init_spec): If defined, prepend it between LINK_EH_SPEC and
102         link_spec.
103         * doc/install.texi: Document --enable-linker-build-id option.
104         * configure: Rebuild.
105         * config.in: Rebuild.
106
107 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
108
109         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
110         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
111         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
112         MIPS_GP_SAVE_AREA_SIZE.
113         * config/mips/mips.c (struct mips_frame_info): Update comment
114         before arg_pointer_offset and hard_frame_pointer_offset.
115         (mips_compute_frame_info): Update diagram before function: to
116         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
117         indicate the position of frame_pointer_rtx with -fstack-protector and
118         to show args_size.  Don't allocate cprestore area for leaf functions
119         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
120         cprestore_size.
121         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
122
123 2009-04-30  Michael Matz  <matz@suse.de>
124
125         PR tree-optimization/39955
126         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
127
128 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
129
130         * ira.c (setup_cover_and_important_classes):  Use safe macro
131         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
132         directly.
133         * genpreds.c (write_tm_preds_h):  Output suitable definition of
134         REG_CLASS_FOR_CONSTRAINT.
135
136 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
137
138         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
139         instead of an int.
140         * bitmap.c (bitmap_descriptor): Likewise.
141         * ggc-common.c (loc_descriptor): Likewise.
142         * varray.c (varray_descriptor): Likewise.
143         * vec.c (vec_descriptor): Likewise.
144
145 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
146
147         * Makefile.in (dce.o): Add $(EXCEPT_H).
148         * dce.c: Include except.h and delete redundant vector definitions.
149         (deletable_insn_p): Return false for non-call insns that can throw
150         if DF is running.
151
152 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
153
154         * gcse.c (ae_gen): Remove.
155         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
156         and make non-static function to make it available in store-motion.c.
157         Update call sites with search-and-replace.
158         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
159         extract_mentioned_regs, extract_mentioned_regs_helper,
160         find_moveable_store, compute_store_table, load_kills_store, find_loads,
161         store_killed_in_insn, store_killed_after, store_killed_before,
162         build_store_vectors, insert_insn_start_basic_block, insert-store,
163         remove_reachable_equiv_notes, replace_store_insn, delete_store,
164         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
165         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
166         * store-motion.c: ...new file.  Also copy data structures from gcse.c
167         and clean up to remove parts not used by store motion.
168         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
169         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
170
171 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
172
173         PR target/38571
174         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
175         when optimizing for size.
176
177 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
178
179         * gcse.c (gcse_constant_p): Fix typo in last change.
180
181 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
182
183         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
184
185 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
186
187         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
188
189 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
190
191         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
192         CONST_HIGH_PART result.
193
194 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
195
196         * config/avr/avr.c (initial_elimination_offset): Rename to
197         avr_initial_elimination_offset.
198         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
199         change return type to bool.
200         (avr_can_eliminate): New function.
201         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
202         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
203         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
204         * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
205         avr_initial_elimination_offset.
206         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
207         (avr_initial_elimination_offset): Define.
208
209 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
210             Steven Bosscher  <steven@gcc.gnu.org>
211
212         PR rtl-optimization/39938
213         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
214         * cfgrtl.c: Include insn-attr.h.
215         (rest_of_pass_free_cfg): New function.
216         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
217         * resource.c (init_resource_info): Remove call to df_analyze.
218
219 2009-04-29  Richard Guenther  <rguenther@suse.de>
220
221         PR target/39943
222         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
223         allow conversion to signed integers.
224
225 2009-04-29  Richard Guenther  <rguenther@suse.de>
226
227         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
228         shifts of floating point vectors if the shift amount is
229         a constant multiple of the element size.
230
231 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
232             Michael Matz  <matz@suse.de>
233
234         PR middle-end/39927
235         PR bootstrap/39929
236         * tree-outof-ssa.c (emit_partition_copy): New function.
237         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
238         insert_part_to_rtx_on_edge): Perform the partition base var
239         copy using emit_partition_copy.
240         (insert_value_copy_on_edge): Convert constants to the right mode.
241         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
242         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
243
244 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
245
246         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
247         scan backwards to try to find a constant to initialize it.
248
249         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
250         insn before the loop_end instruction, don't look past labels.
251
252 2009-04-29  Richard Guenther  <rguenther@suse.de>
253
254         PR middle-end/39937
255         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
256         loose type conversions.
257         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
258         stmts only if there are no uses of its definition.
259
260 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
261
262         * config/bfin/bfin.h (splitting_loops): Declare.
263         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
264         Reorder bit definitions to be ascending.
265         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
266         * config/bfin/bfin.c (splitting_loops): New variable.
267         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
268         (struct loop_info): Remove members INIT and LOOP_INIT.
269         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
270         the LSETUP sequence.  Allow LC to be loaded from any register, but also
271         add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
272         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
273         set to 1.
274         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
275         of reload_completed.
276         From Jie Zhang:
277         * config/bfin/bfin.md (movsi_insn): Refine constraints.
278
279 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
280
281         * Makefile.in (PLUGIN_VERSION_H): New.
282         (OBJS-common): Remove plugin-version.o.
283         (plugin.o): Depend on (PLUGIN_VERSION_H).
284         (plugin-version.o): Remove.
285         * configure: Regenerate
286         * configure.ac: Create plugin-version.h.
287         * gcc-plugin.h (plugin_gcc_version): Remove.
288         (plugin_default_version_check): Change signature.
289         * plugin-version.c: Remove.
290         * plugin.c: Include plugin-version.h.
291         (str_plugin_gcc_version_name): Remove.
292         (try_init_one_plugin): Pass gcc version to plugin_init.
293         (plugin_default_version_check): Both gcc and plugin versions are now
294         arguments.
295
296 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
297         
298         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
299         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
300         Remove special case testing for last insn of inner loops. Don't fail if
301         the loop ends with a jump, emit an extra nop instead.
302
303         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
304         DREGS rather than comparing directly.  Remove code that tries to
305         account for latencies.
306
307 2009-04-29  Richard Guenther  <rguenther@suse.de>
308
309         PR tree-optimization/39941
310         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
311         eliminating an indirect call.
312
313 2009-04-29  Richard Guenther  <rguenther@suse.de>
314
315         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
316         parameter.  Allow invariants as base if !require_lvalue.
317         (verify_gimple_assign_single): Adjust.
318
319 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
320
321         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
322         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
323         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
324         ssaddhi3_parts and sssubhi3_parts.
325         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
326         a VEC_SELECT.
327         * config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
328         Adjust accordingly.
329
330 2009-04-28  Richard Guenther  <rguenther@suse.de>
331
332         * tree-vect-loop.c (get_initial_def_for_induction): Use
333         correct types for pointer increment.
334
335 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
336
337         * toplev.c (print_version): Update GMP version string calculation.
338
339 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
340
341         PR rtl-optimization/39938
342         * resource.c (init_resource_info): Add call to df_analyze.
343
344 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
345
346         * config/alpha/alpha.md (usegp): Cast the result of
347         alpha_find_lo_sum_using_gp to enum attr_usegp.
348         * config/alpha/alpha.c (override_options): Remove end-of-structure
349         marker element from cpu_table.  Use array size of cpu_table to handle
350         -mcpu and -mtune options.
351         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
352
353 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
354
355         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
356         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
357         tune_32 and tune_64.
358         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
359         support on PowerPC.
360         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
361         * config/rs6000/option-defaults.h: ... here.  New file.
362         (OPT_64, OPT_32): Define.
363         (MASK_64BIT): Define to 0 if not already defined.
364         (OPT_ARCH64, OPT_ARCH32): Define.
365         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
366         and tune_64.
367
368 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
369
370         * config/arm/arm.c (arm_override_options): Emit error on using
371         fpa with AAPCS.
372
373 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
374
375         PR rtl-optimization/39914
376         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
377         registers for allocnos created from user-defined variables only
378         when not optimizing.
379
380 2009-04-28  Richard Guenther  <rguenther@suse.de>
381
382         PR middle-end/39937
383         * fold-const.c (fold_binary): Use distribute_real_division only
384         on float types.
385
386 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
387
388         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
389         add hpux-stdint.h to tm_file.
390         (hppa[12]*-*-hpux11*): Ditto.
391         (ia64*-*-hpux*): Ditto.
392         * config/hpux-stdint.h: New.
393         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
394         __STDC_EXT__ for all compiles.
395         * config/pa/pa-hpux.h: Ditto.
396         * config/pa/pa-hpux10.h: Ditto.
397         * config/pa/pa-hpux11.h: Ditto.
398
399 2009-04-28  Catherine Moore  <clm@codesourcery.com>
400
401         * debug.h (set_name): Add comment.
402
403 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
404
405         PR target/39929
406         * config/darwin.c (machopic_gen_offset): Check
407         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
408         * config/arm/arm.c (require_pic_register): Likewise.
409
410 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
411
412         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
413         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
414         m32c_promote_prototypes): Delete.
415
416 2009-04-28  Michael Matz  <matz@suse.de>
417
418         PR middle-end/39922
419         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
420         constants.
421
422 2009-04-28  Richard Guenther  <rguenther@suse.de>
423
424         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
425
426 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
427
428         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
429         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
430         * config/arm/arm-tune.md: Regenerate.
431
432 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
433
434         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
435         block if there are complex incoming edges.
436         (sel_merge_blocks): Remove useless assert.
437         (sel_redirect_edge_and_branch): Check that edge was redirected.
438         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
439         (sel_find_rgns): Delete declaration.
440         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
441         the region when it is not a preheader.
442
443 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
444
445         PR c/39323
446         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
447
448 2009-04-28  Richard Guenther  <rguenther@suse.de>
449
450         * tree.h (SSA_NAME_VALUE): Remove.
451         (struct tree_ssa_name): Remove value_handle member.
452         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
453         array for jump threading.
454         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
455         SSA_NAME_VALUEs.
456         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
457         * tree-flow.h (threadedge_initialize_values): Declare.
458         (threadedge_finalize_values): Likewise.
459         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
460         (SSA_NAME_VALUE): Define.
461         (threadedge_initialize_values): New function.
462         (threadedge_finalize_values): Likewise.
463         * tree-ssa-dom.c (ssa_name_values): New global variable.
464         (SSA_NAME_VALUE): Define.
465         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
466
467 2009-04-28  Ira Rosen  <irar@il.ibm.com>
468
469         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
470         Use REPORT_VECTORIZED_LOCATIONS instead 
471         REPORT_VECTORIZED_LOOPS.
472         * tree-vectorizer.c (vect_verbosity_level): Make static.
473         (vect_loop_location): Rename to vect_location.
474         (vect_set_verbosity_level): Update comment.
475         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
476         and vect_location.
477         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
478         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
479         instead REPORT_UNVECTORIZED_LOOPS.
480         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
481         vect_loop_def to vect_external_def and vect_internal_def.
482         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
483         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
484         REPORT_UNVECTORIZED_LOCATIONS.
485         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
486         and vect_used_in_loop and to vect_unused_in_scope and 
487         vect_used_in_scope.
488         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
489         (vect_verbosity_level): Remove declaration.
490         (vect_analyze_operations): Likewise.
491         (vect_analyze_stmt): Declare.
492         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
493         REPORT_UNVECTORIZED_LOCATIONS.
494         (vect_get_loop_niters): Fix indentation.
495         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
496         (vect_analyze_loop_operations): New function.
497         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
498         vect_analyze_operations.
499         (vect_is_simple_reduction): Use new names.
500         (vectorizable_live_operation, vect_transform_loop): Likewise.
501         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
502         specify whether the data references can be a part of interleaving chain.
503         (vect_analyze_data_ref_dependence): Use new names.
504         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
505         (vect_create_addr_base_for_vector_ref): Remove redundant code.
506         * tree-vect-patterns.c (widened_name_p): Use new names.
507         (vect_recog_dot_prod_pattern): Likewise.
508         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
509         (process_use, vect_mark_stmts_to_be_vectorized, 
510         vect_model_simple_cost, vect_model_store_cost,
511         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
512         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
513         vectorizable_operation, vectorizable_type_demotion,
514         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
515         vectorizable_condition): Likewise.
516         (vect_analyze_operations): Split into vect_analyze_loop_operations
517         and ...
518         (vect_analyze_stmt): ... new function.
519         (new_stmt_vec_info): Use new names.
520         (vect_is_simple_use): Use new names and fix comment.
521         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
522         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
523
524 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
525
526         PR target/39911
527         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
528         and integer modes for x87 operands.  Do not ICE for unsupported size,
529         generate error instead.  Generate error for unsupported operand types.
530         ['z']: Do not handle HImode memory operands specially.  Warning
531         for floating-point operands.  Fallthru to 'Z' for unsupported operand
532         types.  Do not ICE for unsupported size, generate error instead.
533         (output_387_binary_op): Use %Z to output operands.
534         (output_fp_compare): Ditto.
535         (output_387_reg_move): Ditto.
536
537 2009-04-28  Ben Elliston  <bje@au.ibm.com>
538
539         PR c++/35652
540         Revert:
541
542         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
543
544         * builtins.c (c_strlen): Do not warn here.
545         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
546         * c-common.c (pointer_int_sum): Take an explicit location.
547         Warn about offsets out of bounds.
548         * c-common.h (pointer_int_sum): Adjust declaration.
549
550 2009-04-27  Ian Lance Taylor  <iant@google.com>
551
552         * collect2.c (is_ctor_dtor): Change type of ret field in struct
553         names to symkind.
554         * dce.c (run_fast_df_dce): Change type of old_flags to int.
555         * df-core.c (df_set_flags): Change return type to int.  Change
556         type of old_flags to int.
557         (df_clear_flags): Likewise.
558         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
559         (df_get_conditional_uses): Likewise.
560         * df.h (df_set_flags, df_clear_flags): Update declarations.
561         * dwarf2out.c (struct indirect_string_node): Change type of form
562         field to enum dwarf_form.
563         (AT_string_form): Change return type to enum dwarf_form.
564         * fixed-value.c (fixed_compare): Add cast to enum type.
565         * fwprop.c (update_df): Change 0 to VOIDmode.
566         * gensupport.c: Change 0 to UNKNOWN.
567         * gimple.h (gimple_cond_code): Add cast to enum type.
568         * haifa-sched.c (reemit_notes): Add cast to enum type.
569         * hooks.c (hook_int_void_no_regs): Remove function.
570         * hooks.h (hook_int_void_no_regs): Remove declaration.
571         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
572         * predict.c (combine_predictions_for_insn): Add casts to enum type.
573         * real.c (real_arithmetic): Add cast to enum type.
574         (real_compare): Likewise.
575         * target.h (struct gcc_target): Change return type of
576         branch_target_register_class to enum reg_class.
577         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
578         default_branch_target_register_class.
579         * targhooks.c (default_branch_target_register_class): New function.
580         * targhooks.h (default_branch_target_register_class): Declare.
581         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
582         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
583         cast to int.
584         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
585         ERROR_MARK.
586         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
587         vect_uninitialized_def.  Change 0 to ERROR_MARK.
588         * tree-vect-stmts.c (supportable_widening_operation): Don't
589         initialize icode1 and icode2.
590         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
591         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
592         and to STD_C89.
593         (cmn_err_flag_specs): Change 0 to STD_C89.
594         (cmn_err_char_table): Likewise.
595         * config/arm/arm.c (get_arm_condition_code): Change type of code
596         to enum arm_cond_code.
597         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
598         (IWMMXT_BUILTIN2): Likewise.
599         (neon_builtin_type_bits): Don't define typedef.
600         (neon_builtin_datum): Change type of bits field to int.
601         (arm_expand_neon_args): Add cast to enum type.
602         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
603         TLS_MODEL_NONE.
604         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
605         casts to enum type.
606         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
607         MIPS_FP_COND_f.
608         * config/mips/mips.md (jal_macro): Return enum constant.
609         (single_insn): Likewise.
610         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
611         CODE_FOR_nothing.
612         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
613         casts to enum type.
614         * config/s390/s390.c (s390_tune_flags): Change type to int.
615         (s390_arch_flags): Likewise.
616         (s390_handle_arch_option): Change flags field of struct pta to int.
617         * config/s390/s390.h (s390_tune_flags): Update declaration.
618         (s390_arch_flags): Likewise.
619         * config/sh/sh.c (prepare_move_operands): Compare
620         tls_symbolic_operand result with enum constant.
621         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
622         (sh_expand_prologue): Add cast to enum type.
623         (sh_expand_epilogue): Likewise.
624         (tls_symbolic_operand): Change return type to enum tls_model.
625         (fpscr_set_from_mem): Add cast to enum type.
626         (legitimize_pic_address): Compare tls_symbolic_operand result with
627         enum constant.
628         (sh_target_reg_class): Change return type to enum reg_class.
629         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
630         PROCESSOR_xxx.
631         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
632         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
633         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
634         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
635         (delayed_branch, tls_call_delay): Likewise.
636         (eligible_for_sibcall_delay): Likewise.
637         (eligible_for_return_delay): Likewise. 
638         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
639         (spu_expand_builtin_1): Likewise.
640
641         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
642         for all types of conversions.
643         (output_init_element): Issue -Wc++-compat warning if needed when
644         initializing a bitfield with enum type.
645         * c-parser.c (c_parser_expression): Set original_type to
646         original_type of right hand operand of comman operator.
647
648 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
649
650         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
651         grammar nits.
652         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
653         * doc/cpp.texi (Standard Predefined Macros)
654         (Implementation-defined behavior): Likewise.
655         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
656         * doc/gimple.texi (GIMPLE Exception Handling)
657         (@code{GIMPLE_ASSIGN}): Likewise.
658         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
659         * doc/invoke.texi (Warning Options, Optimize Options)
660         (AVR Options, Darwin Options): Likewise.
661         (Optimize Options): Reformulate -fwhole-program description.
662         * doc/loop.texi (Lambda): Likewise.
663         * doc/md.texi (Output Template, Define Constraints)
664         (Standard Names, Insn Splitting): Likewise.
665         * doc/options.texi (Option properties): Likewise.
666         * doc/passes.texi (Tree-SSA passes): Likewise.
667         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
668         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
669         (File Names and DBX): Likewise.
670         * doc/trouble.texi (Incompatibilities): Likewise.
671
672 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
673
674         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
675         instruction is correct.
676
677 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
678
679         Allow non-constant arguments to conversion intrinsics.
680         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
681         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
682         * spu.c (print_operand): Handle 'v' and 'w'.
683         (exp2_immediate_p, spu_gen_exp2): Define.
684         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
685         spu_convtf_1): Update parameter descriptions.
686         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
687         * constraints.md ('v', 'w'): New.
688         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
689         Remove.
690         (i2f, I2F): New define_mode_attr.
691         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
692         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
693         fixuns_truncv4sfv4si2):  Update to use mode attribute.
694         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
695         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
696         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
697         patterns for combine.
698
699 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
700
701         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
702         (cprop, hoist, pre, store_motion): New debug counters.
703         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
704         is not an RTL pass anymore.
705         (pass_profiling): Remove extern decl for pass removed in 2005.
706         (pass_gcse, pass_jump_bypass): Remove.
707         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
708         to 0 for clean state.
709         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
710         * cse.c (gate_handle_cse_after_global_opts,
711         rest_of_handle_cse_after_global_opts): New functions.
712         (pass_cse_after_global_opts): New pass, does local CSE.
713         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
714         (TV_CPROP): New timevar.
715         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
716         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
717         (gcse_main, recompute_all_luids): Remove.
718         (compute_hash_table_work): Call max_reg_num instead of reading
719         max_gcse_regno.
720         (cprop_jump): Don't set run_jump_opt_after_gcse.
721         (constprop_register): Always allow to alter jumps.
722         (cprop_insn): Likewise.
723         (do_local_cprop): Likewise.
724         (local_cprop_pass): Likewise.  Return non-zero if something changed.
725         (cprop): Remove function, fold interesting bits into one_cprop_pass.
726         (find_implicit_sets): Add note about missed optimization opportunity.
727         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
728         pass_rtl_cprop execute function.
729         Don't bother tracking the pass number, each pass gets its own dumpfile
730         now anyway.
731         Always allow to alter jumpsand bypass jumps.
732         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
733         will just find no suitable set.
734         (pre_edge_insert): Fix dumping, this function is for PRE only.
735         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
736         pass_rtl_pre execute function.
737         (hoist_code): Return non-zero if something changed.  Keep track of
738         substitutions and insertions for statistics gathering similar to PRE.
739         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
740         called from the pass_rtl_hoist execute function.  Show pass statistics.
741         (compute_store_table): Use max_reg_num directly instead of using the
742         formerly global max_gcse_regno.
743         (build_store_vectors): Likewise.
744         (replace_store_insn): Fix dumping.
745         (store_motion): Rename to ...
746         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
747         pass, called from the pass_rtl_store_motion execute function.  Keep
748         track of substitutions and insertions for statistics gathering similar
749         to PRE.
750         (bypass_jumps): Remove, fold interesting bits into ...
751         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
752         from the pass_rtl_cprop execute function.
753         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
754         pass_jump_bypass): Remove.
755         (gate_handle_gcse, rest_of_handle_gcse): Remove.
756         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
757         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
758         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
759         (gate_rtl_store_motion, execute_rtl_store_motion,
760         pass_rtl_store_motion): New.
761         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
762         make it clear that -fcse-skip-blocks is a no-op for backward compat.
763         * passes.c (init_optimization_passes): Remove pass_gcse and
764         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
765         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
766         instead of pass_jump_bypass.
767
768 2009-04-27  Richard Guenther  <rguenther@suse.de>
769
770         PR middle-end/39928
771         * gimplify.c (gimplify_expr): If we are required to create
772         a temporary make sure it ends up as register.
773
774 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
775
776         PR target/39903
777         * config/i386/i386.c (construct_container): Don't call
778         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
779         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
780
781 2009-04-27  Michael Matz  <matz@suse.de>
782
783         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
784         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
785         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
786         (dump_replaceable_exprs): Take a bitmap.
787         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
788         array.
789         (expand_gimple_basic_block): Likewise.
790         * tree-ssa-ter.c (struct temp_expr_table_d): Make
791         replaceable_expressions member a bitmap.
792         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
793         (mark_replaceable): Likewise.
794         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
795         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
796
797 2009-04-27  Richard Guenther  <rguenther@suse.de>
798
799         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
800         (verify_stmts): Dispatch to gimple/type verification code.
801         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
802         issue with call argument types.
803
804 2009-04-27  Michael Matz  <matz@suse.de>
805
806         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
807         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
808         to above.
809
810 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
811             Eric Botcazou  <ebotcazou@adacore.com>
812
813         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
814         a label's basic block.
815         (mark_target_live_regs): Tidy and rework obsolete comments.
816         Change back DF problem to LIVE.  If a label starts a basic block,
817         assume that all registers that used to be live then still are.
818         (init_resource_info): If a label starts a basic block, set its
819         BLOCK_FOR_INSN accordingly.
820         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
821
822 2009-04-27  Richard Guenther  <rguenther@suse.de>
823
824         * tree-flow-inline.h (function_ann): Remove.
825         (get_function_ann): Likewise.
826         * tree-dfa.c (create_function_ann): Remove.
827         * tree-flow.h (struct static_var_ann_d): Remove.
828         (struct function_ann_d): Likewise.
829         (union tree_ann_d): Remove fdecl member.
830         (function_ann_t): Remove.
831         (function_ann, get_function_ann, create_function_ann): Remove
832         declarations.
833
834 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
835
836         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
837
838 2009-04-27  Jan Hubicka  <jh@suse.cz>
839
840         * ipa-pure-const.c (struct funct_state_d): New fields
841         state_previously_known, looping_previously_known; remove
842         state_set_in_source.
843         (analyze_function): Use new fields.
844         (propagate): Avoid assumption that state_set_in_source imply
845         nonlooping.
846
847         * tree-ssa-loop-niter.c (finite_loop_p): New function.
848         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
849         * cfgloop.h (finite_loop_p): Declare.
850
851 2009-04-26  Michael Matz  <matz@suse.de>
852
853         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
854
855 2009-04-26  Michael Matz  <matz@suse.de>
856
857         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
858         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
859         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
860         pass_mark_used_blocks): Remove.
861         * tree-optimize.c (pass_free_datastructures,
862         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
863         * passes.c (init_optimization_passes): Don't call
864         pass_mark_used_blocks, remove dead code.
865
866 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
867
868         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
869         * tree-ssa-live.h (register_ssa_partition): Likewise.
870
871 2009-04-26  Michael Matz  <matz@suse.de>
872
873         Expand from SSA.
874         * builtins.c (fold_builtin_next_arg): Handle SSA names.
875         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
876         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
877         SSA names. 
878         (compare_pairs): Swap cost comparison.
879         (coalesce_ssa_name): Don't use change_partition_var.
880         * tree-nrv.c (struct nrv_data): Add modified member.
881         (finalize_nrv_r): Set it.
882         (tree_nrv): Use it to update statements.
883         (pass_nrv): Require PROP_ssa.
884         * tree-mudflap.c (mf_decl_cache_locals,
885         mf_build_check_statement_for): Use make_rename_temp.
886         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
887         * alias.c (find_base_decl): Handle SSA names.
888         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
889         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
890         * rtl.h (set_reg_attrs_for_parm): Declare.
891         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
892         to "optimized", remove unused locals at finish.
893         (execute_free_datastructures): Make global, call
894         delete_tree_cfg_annotations.
895         (execute_free_cfg_annotations): Don't call
896         delete_tree_cfg_annotations.
897
898         * ssaexpand.h: New file.
899         * expr.c (toplevel): Include ssaexpand.h.
900         (expand_assignment): Handle SSA names the same as register variables.
901         (expand_expr_real_1): Expand SSA names.
902         * cfgexpand.c (toplevel): Include ssaexpand.h.
903         (SA): New global variable.
904         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
905         (SSAVAR): New macro.
906         (set_rtl): New helper function.
907         (add_stack_var): Deal with SSA names, use set_rtl.
908         (expand_one_stack_var_at): Likewise.
909         (expand_one_stack_var): Deal with SSA names.
910         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
911         before unique numbers.
912         (expand_stack_vars): Use set_rtl.
913         (expand_one_var): Accept SSA names, add asserts for them, feed them
914         to above subroutines.
915         (expand_used_vars): Expand all partitions (without default defs),
916         then only the local decls (ignoring those expanded already).
917         (expand_gimple_cond): Remove edges when jumpif() expands an
918         unconditional jump.
919         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
920         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
921         SSA name.
922         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
923         members of SA; deal with PARM_DECL partitions here; expand
924         all PHI nodes, free tree datastructures and SA.  Commit instructions
925         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
926         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
927         info and statements at start, collect garbage at finish.
928         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
929         (VAR_ANN_PARTITION) Remove.
930         (change_partition_var): Don't declare.
931         (partition_to_var): Always return SSA names.
932         (var_to_partition): Only accept SSA names.
933         (register_ssa_partition): Only check argument.
934         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
935         member.
936         (delete_var_map): Don't free it.
937         (var_union): Only accept SSA names, simplify.
938         (partition_view_init): Mark only useful SSA names as used.
939         (partition_view_fini): Only deal with SSA names.
940         (change_partition_var): Remove.
941         (dump_var_map): Use ssa_name instead of partition_to_var member.
942         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
943         basic blocks.
944         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
945         (struct _elim_graph): New member const_dests; nodes member vector of
946         ints.
947         (set_location_for_edge): New static helper.
948         (create_temp): Remove.
949         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
950         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
951         (new_elim_graph): Allocate const_dests member.
952         (clean_elim_graph): Truncate const_dests member.
953         (delete_elim_graph): Free const_dests member.
954         (elim_graph_size): Adapt to new type of nodes member.
955         (elim_graph_add_node): Likewise.
956         (eliminate_name): Likewise.
957         (eliminate_build): Don't take basic block argument, deal only with
958         partition numbers, not variables.
959         (get_temp_reg): New static helper.
960         (elim_create): Use it, deal with RTL temporaries instead of trees.
961         (eliminate_phi): Adjust all calls to new signature.
962         (assign_vars, replace_use_variable, replace_def_variable): Remove.
963         (rewrite_trees): Only do checking.
964         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
965         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
966         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
967         contains_tree_r, MAX_STMTS_IN_LATCH,
968         process_single_block_loop_latch, analyze_edges_for_bb,
969         perform_edge_inserts): Remove.
970         (expand_phi_nodes): New global function.
971         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
972         functions, initialize new parameter, remember partitions having a
973         default def.
974         (finish_out_of_ssa): New global function.
975         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
976         don't reset in_ssa_p here, don't disable TER when mudflap.
977         (pass_del_ssa): Remove.
978         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
979         partition members.
980         (execute_free_datastructures): Declare.
981         * Makefile.in (SSAEXPAND_H): New variable.
982         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
983         * basic-block.h (commit_one_edge_insertion): Declare.
984         * passes.c (init_optimization_passes): Move pass_nrv and
985         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
986         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
987         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
988         (redirect_branch_edge): Deal with super block when expanding, split
989         out jump patching itself into ...
990         (patch_jump_insn): ... here, new static helper.
991
992 2009-04-26  Michael Matz  <matz@suse.de>
993
994         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
995         beyond num_ssa_names.
996         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
997         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
998
999 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1000
1001         PR inline-asm/39543
1002         * fwprop.c (forward_propagate_asm): New function.
1003         (forward_propagate_and_simplify): Propagate also into __asm, if it
1004         doesn't increase the number of referenced registers.
1005
1006         PR c/39889
1007         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1008
1009 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1010
1011         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1012         note_nonlocal_vla_type for nonlocal VLAs.
1013         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1014         contains_remapped_vars, remap_vla_decls): New functions.
1015         (convert_nonlocal_reference_stmt): If not optimizing, call
1016         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1017         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1018         if it wasn't found in var_map.
1019         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1020         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1021         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1022         declare_vars.
1023         * gimplify.c (nonlocal_vlas): New variable.
1024         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1025         referenced VLAs.
1026         (gimplify_body): Create and destroy nonlocal_vlas.
1027
1028         * dwarf2out.c (loc_descr_plus_const): New function.
1029         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1030         mem_loc_descriptor, loc_descriptor_from_tree_1,
1031         descr_info_loc, gen_variable_die): Use it.
1032
1033         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1034         !TREE_STATIC VAR_DECLs.
1035         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1036         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1037         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1038         DECL_BY_REFERENCE is valid.
1039         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1040         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1041         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1042         Copy DECL_BY_REFERENCE.
1043         (struct nesting_copy_body_data): New type.
1044         (nesting_copy_decl): New function.
1045         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1046         if they have variable length.
1047
1048 2009-04-26  Michael Matz  <matz@suse.de>
1049
1050         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1051         mark new temporaries for renaming.
1052
1053 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1054
1055         PR c/39581
1056         * c-decl.c (global_bindings_p): Return negative value.
1057         (c_variable_size): New.  Based on variable_size from
1058         stor-layout.c.
1059         (grokdeclarator): Call c_variable_size not variable_size.
1060
1061 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1062
1063         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1064
1065 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1066
1067         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1068         Redefine it to just use mingw/include.
1069         (ASM_SPEC): Rules for -m32 and -m64.
1070         (LINK_SPEC): Use Likewise.
1071         (SPEC_32): New define.
1072         (SPEC_64): Likewise.
1073         (SUB_LINK_SPEC): Likewise.
1074         (MULTILIB_DEFAULTS): New define.
1075         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1076         Add multilib options.
1077         (MULTILIB_DIRNAMES): Likewise.
1078         (MULTILIB_OSDIRNAMES): Likewise.
1079         (LIBGCC): Likewise.
1080         (INSTALL_LIBGCC): Likewise.
1081
1082 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1083
1084         PR c/39556
1085         * c-tree.h (enum c_inline_static_type): New.
1086         (record_inline_static): Declare.
1087         * c-decl.c (struct c_inline_static, c_inline_statics,
1088         record_inline_static, check_inline_statics): New.
1089         (pop_file_scope): Call check_inline_statics.
1090         (start_decl): Call record_inline_static instead of pedwarning
1091         directly for static in inline function.
1092         * c-typeck.c (build_external_ref): Call record_inline_static
1093         instead of pedwarning directly for static referenced in inline
1094         function.
1095
1096 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1097
1098         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1099         not new but only being rescanned.
1100         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1101         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1102         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1103         record_set_info, compute_set, grealloc): Remove.
1104         (recompute_all_luids): New function.
1105         (gcse_main): Don't compute sets, and don't do related memory
1106         allocations/free-ing.  If something changed before the end of the
1107         pass, update LUIDs using recompute_all_luids.
1108         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1109         (free_gcse_mem): Don't free it either.
1110         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1111         Use the df insn LUIDs.
1112         (load_killed_in_block): Likewise.
1113         (compute_hash_table_work): Don't compute reg_set_in_block.
1114         (compute_transp): Use DF_REG_DEF_CHAINs.
1115         (local_cprop_pass): Don't use compute_sets and related functions.
1116         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1117         Use get_max_uid() instead of max_cuid.
1118         (insert_insn_end_basic_block, pre_insert_copy_insn,
1119         update_ld_motion_stores): Don't try to
1120         keep reg_set tables up to date.
1121         (pre_insert_copies): Use df insn LUIDs.
1122         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1123         (reg_set_info): Don't use extra bitmap argument.
1124         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1125         information to compute regs_set_in_block.
1126         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1127         (bypass_jumps): Don't use compute_sets and friends.
1128
1129 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1130
1131         PR testsuite/39710
1132         * opts.c (undocumented_msg): Do not leave blank even with
1133         ENABLE_CHECKING.
1134
1135 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1136
1137         * c-decl.c (build_enumerator): Allow values folding to integer
1138         constants but not integer constant expressions with a pedwarn if
1139         pedantic.
1140
1141 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1142
1143         PR c/39582
1144         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1145         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1146         type is an integer constant.
1147
1148 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1149
1150         PR target/39897
1151         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1152         HImode operands.
1153
1154 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1155
1156         PR c/39564
1157         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1158         with variably modified return type and no storage class
1159         specifiers, except for the case of nested functions.  Distinguish
1160         extern declarations of functions with variably modified return
1161         types from those of objects with variably modified types.
1162
1163 2009-04-25  Jan Hubicka  <jh@suse.cz>
1164
1165         * tree.c (list_equal_p): New function.
1166         * tree.h (list_equal_p): Declare.
1167         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1168         basic_block_def, basic_block, const_basic_block): New.
1169         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1170         (redirect_eh_edge): New function.
1171         (make_eh_edge_update_phi): EH edges are not abnormal.
1172         * except.c: Include tree-flow.h.
1173         (list_match): New function.
1174         (eh_region_replaceable_by_p): New function.
1175         (replace_region): New function.
1176         (hash_type_list): New function.
1177         (hash_eh_region): New function.
1178         (eh_regions_equal_p): New function.
1179         (merge_peers): New function.
1180         (remove_unreachable_regions): Verify EH tree when checking;
1181         merge peers.
1182         (copy_eh_region_1): New function.
1183         (copy_eh_region): New function.
1184         (push_reachable_handler): New function.
1185         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1186         regions without label but with live RESX.
1187         * except.h (redirect_eh_edge_to_label): New.
1188         * tree-flow.h (redirect_eh_edge): New.
1189         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1190         basic_block_def, basic_block, const_basic_block): Remove.
1191         * Makefile.in (except.o): Add dependency on tree-flow.h
1192         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1193         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1194         Remove.
1195
1196 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1197
1198         PR bootstrap/39645
1199         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1200         on the destination of memcpy.
1201
1202 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1203
1204         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1205         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1206         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1207
1208 2009-04-25  Jan Hubicka  <jh@suse.cz>
1209
1210         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1211         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1212         to be reached by different label than left.
1213         (update_eh_edges): Update comment; remove edge_to_remove if possible
1214         and return true if suceeded.
1215         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1216         (cleanup_eh): Compute sharing map.
1217         * except.c (remove_eh_handler_and_replace): Add argument if we should
1218         update regions.
1219         (remove_unreachable_regions): Update for label sharing.
1220         (label_to_region_map): Likewise.
1221         (get_next_region_sharing_label): New function.
1222         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1223         prev_try pointers.
1224         (remove_eh_handler): Update.
1225         (remove_eh_region_and_replace_by_outer_of): New function.
1226         * except.h (struct eh_region): Add next_region_sharing_label.
1227         (remove_eh_region_and_replace_by_outer_of,
1228         get_next_region_sharing_label): Declare.
1229         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1230
1231 2009-04-25  Jan Hubicka  <jh@suse.cz>
1232
1233         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1234         insert code even if they are not critical.
1235
1236 2009-04-25  Jan Hubicka  <jh@suse.cz>
1237
1238         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1239         (gimple_can_remove_branch_p): EH edges won't remove branch by
1240         redirection.
1241         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1242         updating of non-abnormal EH edges.
1243         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1244         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1245         (split_critical_edges): Split also edges where emitting code on them
1246         will lead to splitting later.
1247
1248 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1249             H.J. Lu  <hongjiu.lu@intel.com>
1250
1251         PR target/39590
1252         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1253         the configured assembler supports fildq and fistpq mnemonics.
1254         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1255         * configure: Regenerated.
1256         * config.in: Ditto.
1257
1258         * config/i386/i386.c (print_operand): Handle 'Z'.
1259         ['z']: Remove handling of special fild/fist suffixes.
1260         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1261         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1262         suffix of fild insn.
1263         (*floatsi<mode>2_vector_mixed): Ditto.
1264         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1265         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1266         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1267         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1268         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1269
1270 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1271  
1272         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1273         the source of a set operation.
1274
1275 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1276
1277         * target.h (struct gcc_target): Add case_values_threshold field.
1278         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1279         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1280         * targhooks.c (default_case_values_threshold): New function.
1281         * targhooks.h (default_case_values_threshold): Declare function.
1282         * stmt.c (expand_case): Use case_values_threshold target hook.
1283         * expr.h (case_values_threshold): Remove declartation.
1284         * expr.c (case_values_threshold): Remove function.
1285         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1286
1287         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1288         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1289         (avr_case_values_threshold): Declare as static.
1290         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1291
1292         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1293         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1294         (mn10300_case_values_threshold): New function.
1295
1296 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1297
1298         * ira.c (setup_cover_and_important_classes): Add enum cast.
1299
1300 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1301
1302         * genpreds.c (write_enum_constraint_num): Output definition of
1303         CONSTRAINT_NUM_DEFINED_P macro.
1304         * ira.c (setup_cover_and_important_classes): Use
1305         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1306         
1307 2009-04-24  DJ Delorie  <dj@redhat.com>
1308
1309         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1310         __SH2A_SINGLE_ONLY__ also.
1311
1312 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
1313
1314         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1315         (movdf_internal): Ditto.
1316         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1317         SFmode and DFmode constants.
1318         (ia64_print_operand): Add 'G' format for printing
1319         floating point constants.
1320
1321 2009-04-24  Richard Guenther  <rguenther@suse.de>
1322
1323         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1324         from unsigned additions.
1325
1326 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
1327
1328         * c-typeck.c (set_init_index): Allow array designators that are
1329         not integer constant expressions with a pedwarn if pedantic.
1330
1331 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1332
1333         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1334         zero if no overlap in nonzero bits between the operands.
1335
1336 2009-04-24  Ian Lance Taylor  <iant@google.com>
1337
1338         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1339         (record_dead_and_set_regs): Likewise.
1340         * df.h (struct df_mw_hardreg): Change flags field to int.
1341         (struct df_base_ref): Likewise.
1342         (struct df): Change changeable_flags field to int.
1343         * df-scan.c (df_defs_record): Change clobber_flags to int.
1344         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1345         constants rather than #define macros.
1346         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1347         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1348         (enum dwarf_calling_convention): Likewise.
1349         (enum dwarf_line_number_x_ops): Likewise.
1350         (enum dwarf_call_frame_info): Likewise.
1351         (enum dwarf_source_language): Likewise.
1352         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1353         (add_calling_convention_attribute): Likewise.
1354         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1355         (combine_comparisons): Change compcode to int.  Add cast to enum type.
1356         * genrecog.c (maybe_both_true_2): Change c to int.
1357         (write_switch): Likewise.  Add cast to enum type.
1358         * gimplify.c (gimplify_omp_for): Handle return values from
1359         gimplify_expr using MIN rather than bitwise or.
1360         (gimplify_expr): Add cast to enum type.
1361         * ipa-prop.c (update_jump_functions_after_inlining): Change
1362         IPA_BOTTOM to IPA_JF_UNKNOWN.
1363         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1364         Add casts to enum type.
1365         (setup_cover_and_important_classes): Change cl to int.  Add casts
1366         to enum type.
1367         (setup_class_translate): Change cl and mode to int.
1368         (ira_init_once): Change mode to int.
1369         (free_register_move_costs): Likewise.
1370         (setup_prohibited_mode_move_regs): Add casts to enum type.
1371         * langhooks.c (add_builtin_function_common): Rework assertion that
1372         value fits bitfield.
1373         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1374         * omega.c (omega_do_elimination): Avoid math on enum types.
1375         * optabs.c (expand_vec_shift_expr): Remove casts to int.
1376         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
1377         int local to handle integral_argment value.
1378         * regmove.c (try_auto_increment): Change PUT_MODE to
1379         PUT_REG_NOTE_KIND.
1380         * reload.c (push_secondary_reload): Add casts to enum type.
1381         (secondary_reload_class, find_valid_class): Likewise.
1382         * reload1.c (emit_input_reload_insns): Likewise.
1383         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1384         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1385         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1386         constant.
1387         * tree.c (build_common_builtin_nodes): Add casts to enum type.
1388         * tree-complex.c (complex_lattice_t): Typedef to int rather than
1389         enum type.
1390         (expand_complex_libcall): Add casts to enum type.
1391         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1392         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1393         with ERROR_MARK, not NUM_TREE_CODES.
1394         (vect_create_epilog_for_reduction): Likewise.
1395         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
1396         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
1397         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1398         enum machine_mode.
1399         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1400         vect_unused_in_loop.  Change 0 to loop_vect.
1401         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
1402         * var-tracking.c (get_init_value): Change return type to enum
1403         var_init_status.
1404         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1405         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1406         arm_fp_model.
1407         (arm_override_options): Add casts to enum type.
1408         (arm_emit_tls_decoration): Likewise.
1409         * config/i386/i386.c (ix86_function_specific_restore): Add casts
1410         to enum type.
1411         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1412         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1413         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1414         enum type.
1415         * config/s390/s390.c (code_for_builtin_64): Change to array of
1416         enum insn_code.
1417         (code_for_builtin_31): Likewise.
1418         (s390_expand_builtin): Change code_for_builtin to enum insn_code
1419         const *.
1420         * config/sparc/sparc.c (sparc_override_options): Change value
1421         field in struct code_model to enum cmodel.  In initializer change
1422         0 to NULL and add cast to enum type.
1423
1424         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1425         Change all callers.  Issue a -Wc++-compat warning using
1426         lhs_origtype if necessary.
1427         (convert_for_assignment): Issue -Wc++-compat warnings about
1428         invalid conversions to enum type on assignment.
1429         * c-common.h (build_modify_expr): Update declaration.
1430
1431 2009-04-24  Nick Clifton  <nickc@redhat.com>
1432
1433         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1434         (function_arg_advance): Likewise.
1435         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1436         5th alternative.
1437
1438 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1439
1440         * config/s390/constraints.md ('I', 'J'): Fix condition.
1441
1442 2009-04-24  Diego Novillo  <dnovillo@google.com>
1443
1444         * gengtype-parse.c (parse_error): Add newline after message.
1445
1446 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1447
1448         * config/i386/sse.md (avxmodesuffixs): Removed.
1449         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1450         (*avx_pinsr<ssevecsize>): This.
1451
1452 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1453
1454         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1455         follow chains of regs with a single definition, and allow expressions
1456         that are function_invariant_p.
1457         (simple_rhs_p): Allow expressions that are function_invariant_p.
1458
1459 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
1460
1461         PR middle-end/39867
1462         * fold-const.c (fold_cond_expr_with_comparison): When folding
1463         > and >= to MAX, make sure the MAX uses the same type as the
1464         comparison's operands.
1465
1466 2009-04-24  Nick Clifton  <nickc@redhat.com>
1467
1468         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1469         addressing for DImode accesses.
1470         (frv_print_operand_address): Handle PLUS case.
1471         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
1472
1473 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
1474
1475         PR rtl-optimization/39794
1476         * alias.c (canon_true_dependence): Add x_addr argument.
1477         * rtl.h (canon_true_dependence): Adjust prototype.
1478         * cse.c (check_dependence): Adjust canon_true_dependence callers.
1479         * cselib.c (cselib_invalidate_mem): Likewise.
1480         * gcse.c (compute_transp): Likewise.
1481         * dse.c (scan_reads_nospill): Likewise.
1482         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
1483         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1484         canon_base_addr of the group, plus optional offset.
1485         (struct group_info): Rename canon_base_mem to
1486         canon_base_addr.
1487         (get_group_info): Set canon_base_addr to canon_rtx of base, not
1488         canon_rtx of base_mem.
1489
1490 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
1491
1492         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1493         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1494
1495 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1496
1497         * config/spu/spu-builtins.h: Delete file.
1498
1499         * config/spu/spu.h (enum spu_builtin_type): Move here from
1500         spu-builtins.h.
1501         (struct spu_builtin_description): Likewise.  Add GTY marker.
1502         Do not use enum spu_function_code or enum insn_code.
1503         (spu_builtins): Add extern declaration.
1504
1505         * config/spu/spu.c: Do not include "spu-builtins.h".
1506         (enum spu_function_code, enum spu_builtin_type_index,
1507         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1508         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1509         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1510         unsigned_V2DI_type_node): Move here from spu-builtins.h.
1511         (spu_builtin_types): Make static.  Add GTY marker.
1512         (spu_builtins): Add extern declaration with GTY marker.
1513         Include "gt-spu.h".
1514
1515         * config/spu/spu-c.c: Do not include "spu-builtins.h".
1516         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1517         Check programmatically whether all parameters are scalar.
1518
1519         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1520
1521 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1522
1523         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1524         assignment from the constructor either if the target is volatile.
1525
1526 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
1527
1528         * config/arm/arm.md (insv): Do not share operands[0].
1529
1530 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1531
1532         * config/vxlib-tls.c (active_tls_threads): Delete.
1533         (delete_hook_installed): New.
1534         (tls_delete_hook): Don't delete the delete hook.
1535         (tls_destructor): Delete it here.
1536         (__gthread_set_specific): Adjust installing the delete hook.
1537         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1538         __gthread_leave_tsd_dtor_context.
1539
1540 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
1541
1542         * c-format.c (gcc_tdiag_char_table): Add support for %E.
1543
1544 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
1545
1546         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1547         enum type.
1548         (alpha_rtx_costs): Ditto.
1549         (emit_unlikely_jump): Use add_reg_note.
1550         (emit_frame_store_1): Ditto.
1551         (alpha_expand_prologue): Ditto.
1552         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1553         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
1554
1555 2009-04-23  Nick Clifton  <nickc@redhat.com>
1556
1557         * config/v850/v850.md (epilogue): Remove suppressed code.
1558         (return): Rename to return_simple and remove test of frame size.
1559         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
1560         to gen_return_simple.
1561
1562 2009-04-22  Jing Yu  <jingyu@google.com>
1563
1564         PR testsuite/39781
1565         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1566
1567 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1568
1569         PR C/31499
1570         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
1571         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
1572         value is a VECTOR_CST, the element type is the element type of the
1573         vector.
1574
1575 2009-04-22  DJ Delorie  <dj@redhat.com>
1576
1577         * config/m32c/m32c.h: Update GTY annotations to new syntax.
1578
1579 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
1580
1581         * alias.c (find_base_term): Move around LO_SUM case, so that
1582         CONST falls through into PLUS/MINUS handling.
1583
1584         PR c/39855
1585         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
1586         into 0, use omit_one_operand.
1587
1588 2009-04-23  Ben Elliston  <bje@au.ibm.com>
1589
1590         * config/rs6000/linux-unwind.h (get_regs): Remove type
1591         puns. Change the type of `pc' to an array of unsigned ints and
1592         update all users.  Constify frame24.
1593
1594 2009-04-22  DJ Delorie  <dj@redhat.com>
1595
1596         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
1597         declarations before code.
1598         (current_function_special_page_vector): Likewise.
1599         (m32c_expand_insv): Silence a warning.
1600
1601 2009-04-21  Taras Glek  <tglek@mozilla.com>
1602
1603         * alias.c: Update GTY annotations to new syntax.
1604         * basic-block.h: Likewise.
1605         * bitmap.h: Likewise.
1606         * c-common.h: Likewise.
1607         * c-decl.c: Likewise.
1608         * c-parser.c: Likewise.
1609         * c-pragma.c: Likewise.
1610         * c-tree.h: Likewise.
1611         * cfgloop.h: Likewise.
1612         * cgraph.h: Likewise.
1613         * config/alpha/alpha.c: Likewise.
1614         * config/arm/arm.h: Likewise.
1615         * config/avr/avr.h: Likewise.
1616         * config/bfin/bfin.c: Likewise.
1617         * config/cris/cris.c: Likewise.
1618         * config/darwin.c: Likewise.
1619         * config/frv/frv.c: Likewise.
1620         * config/i386/i386.c: Likewise.
1621         * config/i386/i386.h: Likewise.
1622         * config/i386/winnt.c: Likewise.
1623         * config/ia64/ia64.h: Likewise.
1624         * config/iq2000/iq2000.c: Likewise.
1625         * config/mips/mips.c: Likewise.
1626         * config/mmix/mmix.h: Likewise.
1627         * config/pa/pa.c: Likewise.
1628         * config/pa/pa.h: Likewise.
1629         * config/rs6000/rs6000.c: Likewise.
1630         * config/s390/s390.c: Likewise.
1631         * config/sparc/sparc.c: Likewise.
1632         * config/xtensa/xtensa.c: Likewise.
1633         * cselib.h: Likewise.
1634         * dbxout.c: Likewise.
1635         * dwarf2out.c: Likewise.
1636         * except.c: Likewise.
1637         * except.h: Likewise.
1638         * fixed-value.h: Likewise.
1639         * function.c: Likewise.
1640         * function.h: Likewise.
1641         * gimple.h: Likewise.
1642         * integrate.c: Likewise.
1643         * optabs.c: Likewise.
1644         * output.h: Likewise.
1645         * real.h: Likewise.
1646         * rtl.h: Likewise.
1647         * stringpool.c: Likewise.
1648         * tree-data-ref.c: Likewise.
1649         * tree-flow.h: Likewise.
1650         * tree-scalar-evolution.c: Likewise.
1651         * tree-ssa-address.c: Likewise.
1652         * tree-ssa-alias.h: Likewise.
1653         * tree-ssa-operands.h: Likewise.
1654         * tree.c: Likewise.
1655         * tree.h: Likewise.
1656         * varasm.c: Likewise.
1657         * varray.h: Likewise.
1658         * vec.h: Likewise.
1659         * coretypes.h: Do not define GTY macro if it is already defined.
1660         * doc/gty.texi: Update GTY documentation to new syntax.
1661         * gengtype-lex.l: Enforce attribute-like syntax for GTY
1662         annotations on structs.
1663         * gengtype-parse.c: Likewise.
1664
1665 2009-04-22  Mark Heffernan  <meheff@google.com>
1666
1667         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
1668
1669 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
1670
1671         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
1672         where appropriate.
1673
1674 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
1675
1676         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
1677         the same as a PLUS without a shift.  Increase the cost of a
1678         CONST_INT in MULT.
1679
1680 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1681
1682         * Makefile.in: Update dependencies.
1683         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
1684         * errors.h: Remove bogus comment about compatibility.
1685         (warning): Update declaration.
1686         * genautomata.c: Update all calls to warning.
1687         * gimple.c: Do not include errors.h. Include toplev.h.
1688         * tree-ssa-structalias.c: Do not include errors.h.
1689         * omega.c: Likewise.
1690         * tree-ssa-reassoc.c: Likewise.
1691         * config/spu/spu-c.c: Likewise.
1692         * config/spu/t-spu-elf: Update dependencies.
1693
1694 2009-04-22  Richard Guenther  <rguenther@suse.de>
1695
1696         PR tree-optimization/39824
1697         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
1698         make sure the types are compatible.
1699
1700 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1701
1702         PR c++/14875
1703         * c-common.c (c_parse_error): Take a token_flags parameter.
1704         Use token_type for the token type instead.
1705         Pass token_flags to cpp_type2name.
1706         * c-common.h (c_parse_error): Update declaration.
1707         * c-parser.c (c_parser_error): Pass 0 as token flags.
1708
1709 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
1710
1711         PR rtl-optimization/39580
1712         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
1713         
1714 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1715
1716         * function.c (expand_function_end): Do not emit a jump to the "naked"
1717         return label for fall-through returns.
1718         * except.c (sjlj_emit_function_exit): Always place the call to the
1719         unregister function at the location installed by expand_function_end.
1720
1721 2009-04-22  Richard Guenther  <rguenther@suse.de>
1722
1723         PR tree-optimization/39845
1724         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
1725         (gen_inbound_check): Likewise.
1726
1727 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1728
1729         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
1730         padding for PPC.
1731         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
1732         * config/vxlib.c (__gthread_once): Add race guard for PPC.
1733
1734 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1735
1736         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
1737         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
1738         shift counts to avoid out-of-bounds array accesses.
1739
1740 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1741
1742         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
1743         (Pmode): Move above.
1744
1745 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
1746
1747         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
1748         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
1749         GET_CODE macro.  Use IN_RANGE macro where appropriate.
1750         * config/alpha/alpha.h: Ditto.
1751         * config/alpha/alpha.md: Ditto.
1752         * config/alpha/constraints.md: Ditto.
1753         * config/alpha/predicates.md: Ditto.
1754         
1755 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1756
1757         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
1758         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1759         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1760         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1761         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1762         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1763         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1764         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1765         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1766         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1767         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1768         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1769         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1770         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1771         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1772         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1773         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1774         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1775         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1776         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1777         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1778         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1779         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1780         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1781         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1782         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1783         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1784
1785 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1786
1787         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
1788         references from comments.
1789         * cfgbuild.c: (count_basic_blocks): Delete.
1790         (find_basic_blocks_1): Delete.
1791         (find_basic_blocks): Delete.
1792         * except.c (finish_eh_generation): Make static.  Move comment from
1793         except.h here.  Remove find_basic_blocks references from comments.
1794         * except.h (finish_eh_generation): Delete.
1795         * basic-block.h (find_basic_blocks): Delete.
1796         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
1797
1798 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
1799
1800         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
1801         (sdbout_parms):  Likewise.
1802
1803 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1804
1805         * config/sh/sh.c (prepare_cbranch_operands): Use
1806         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
1807         (expand_cbranchdi4): Likewise.
1808         (from_compare): Add cast to enum type.
1809         (expand_cbranchsi4): Use add_reg_note.
1810         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
1811         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
1812         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
1813         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1814         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
1815         instead of CODE_FOR_nothing.
1816         (cbranchdi4): Likewise.  Fix the order of arguments for
1817         gen_rtx_fmt_ee.
1818         (push_fpscr): Use add_reg_note.
1819         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
1820         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
1821         
1822 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
1823
1824         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
1825         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1826         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1827         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
1828         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
1829         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
1830         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
1831         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
1832         config/alpha/x-vms, config/arc/t-arc,
1833         config/arm/README-interworking, config/arm/arm-c.c,
1834         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
1835         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
1836         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
1837         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
1838         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
1839         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
1840         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
1841         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
1842         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
1843         config/cris/t-elfmulti, config/crx/t-crx,
1844         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
1845         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
1846         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
1847         config/h8300/t-h8300, config/i386/athlon.md,
1848         config/i386/darwin-libgcc.10.4.ver,
1849         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
1850         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
1851         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
1852         config/i386/t-linux64, config/i386/t-nwld,
1853         config/i386/t-rtems-i386, config/i386/t-sol2-10,
1854         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
1855         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
1856         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
1857         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
1858         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
1859         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
1860         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
1861         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
1862         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
1863         config/m68k/t-uclinux, config/mcore/t-mcore,
1864         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
1865         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
1866         config/mips/crtn.asm, config/mips/irix-crti.asm,
1867         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
1868         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
1869         config/mips/mips-fixed.md, config/mips/sb1.md,
1870         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
1871         config/mips/t-iris6, config/mips/t-isa3264,
1872         config/mips/t-libgcc-mips16, config/mips/t-linux64,
1873         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
1874         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
1875         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
1876         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
1877         config/mn10300/t-linux, config/mn10300/t-mn10300,
1878         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
1879         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
1880         config/picochip/libgccExtras/clzsi2.asm,
1881         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
1882         config/rs6000/darwin-libgcc.10.4.ver,
1883         config/rs6000/darwin-libgcc.10.5.ver,
1884         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
1885         config/rs6000/t-aix43, config/rs6000/t-aix52,
1886         config/rs6000/t-darwin, config/rs6000/t-fprules,
1887         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
1888         config/rs6000/t-lynx, config/rs6000/t-netbsd,
1889         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
1890         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
1891         config/rs6000/t-rtems, config/rs6000/t-spe,
1892         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
1893         config/score/t-score-elf, config/sh/divcost-analysis,
1894         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
1895         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
1896         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
1897         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
1898         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
1899         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
1900         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
1901         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
1902         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
1903         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
1904         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
1905         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
1906         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
1907         limitx.h, version.c, xcoff.h: Add copyright and license notices.
1908         * config/h8300/genmova.sh: Include copyright and license notices
1909         in generated output.
1910         * config/h8300/mova.md: Regenerate.
1911         * doc/install.texi2html: Include word "Copyright" in copyright
1912         notice and use name "Free Software Foundation, Inc.".
1913         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1914         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1915         ChangeLog-2007, ChangeLog-2008: Correct dates.
1916
1917 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
1918
1919         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
1920         NE_EXPR operations as well.
1921         * c-parser.c (c_parser_condition): Do not set location information on
1922         the condition.
1923         (c_parser_conditional_expression): Likewise.
1924         (c_parser_binary_expression): Set location information on operators.
1925         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
1926         TRUTH_NOT_EXPR has been folded.
1927         * fold-const.c (fold_truth_not_expr): Copy location information from
1928         the incoming expression to the outgoing one.
1929         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
1930         recursive calls on the LHS of the operator but pass that of the
1931         operator to recursive calls on the RHS of the operator.  Set it
1932         on the COND_EXPR.
1933         (shortcut_cond_expr): Set the locus of the operator on the second
1934         COND_EXPR and that of the expression on the first in degenerate cases.
1935         Pass the locus of the expression to calls to shortcut_cond_r.
1936         Set the locus of the 'then' block on the associated jump, if any.
1937         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
1938         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
1939         expression to call to gimplify_boolean_expr.
1940
1941 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
1942
1943         * config.gcc: Add additional configuration for
1944         i686-w64-mingw* and x86_64-w64-mingw* triplet.
1945         * config/i386/mingw-w64.h: New mingw-w64 specific header.
1946         (CPP_SPEC): Redefine for allowing -municode option.
1947         (STARTFILE_SPEC): Likewise.
1948         * config/i386/t-mingw-w64: New.
1949         * config/i386/mingw-w64.opt: New.
1950         (municode): Add new target option.
1951         * doc/invoke.texi (municode): Add documentation for new option.
1952
1953 2009-04-21  Ian Lance Taylor  <iant@google.com>
1954
1955         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1956         Correct test for number of arguments.
1957         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
1958
1959 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
1960
1961         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
1962         argument of emit_library_call.
1963
1964 2009-04-21  Richard Guenther  <rguenther@suse.de>
1965
1966         PR middle-end/39829
1967         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
1968         inside VIEW_CONVERT_EXPRs.
1969
1970 2009-04-21  Martin Jambor  <mjambor@suse.cz>
1971
1972         * tree-switch-conversion.c (build_constructors): Split a long line.
1973         (constructor_contains_same_values_p): New function.
1974         (build_one_array): Create assigns of constants if possible, do not
1975         call mark_sym_for_renaming, call update_stmt.
1976         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
1977         make_rename_temp.  Do not call mark_symbols_for_renaming, call
1978         update_stmt.
1979         (gen_def_assigns): Do not call mark_symbols_for_renaming or
1980         find_new_referenced_vars, call update_stmt.
1981         (gen_inbound_check): Use create_tmp_var and create ssa names manually
1982         instead of calling make_rename_temp.  Do not call
1983         find_new_referenced_vars or mark_symbols_for_renaming, call
1984         update_stmt.
1985
1986 2009-04-21  Richard Guenther  <rguenther@suse.de>
1987
1988         PR tree-optimization/39827
1989         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
1990         (tree_ssa_phiprop): Pass the correct array size.
1991
1992 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
1993
1994         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
1995
1996 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1997
1998         PR 16202
1999         * c-typeck.c (lvalue_p): Move declaration ...
2000         * c-common.h (lvalue_p): ... to here.
2001         * c-common.c (candidate_equal_p): New.
2002         (add_tlist): Use it.
2003         (merge_tlist): Use it.
2004         (warn_for_collisions_1): Likewise.
2005         (warning_candidate_p): Accept more candidates.
2006         (verify_tree): A warning candidate can be an expression. Use
2007         candidate_equal_p.
2008
2009 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2010
2011         PR target/5267
2012         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2013         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2014         options.  Remove -mcall-solaris documentation.
2015
2016 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2017
2018         PR c++/13358
2019         * doc/invoke.texi (-Wlong-long): Update description.
2020         * c-lex (interpret_integer): Only warn if there was no previous
2021         overflow and -Wlong-long is enabled.
2022         * c-decl.c (declspecs_add_type): Drop redundant flags.
2023         * c.opt (Wlong-long): Init to -1.
2024         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2025         and front-end warn_long_long. Wlong-long only depends on other
2026         flags if it is uninitialized.
2027         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2028         the same for CPP and FE.
2029         (restore_extension_diagnostics): Likewise.
2030
2031 2009-04-20  Ian Lance Taylor  <iant@google.com>
2032
2033         Fix enum conversions which are invalid in C++:
2034         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2035         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2036         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2037         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2038         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2039         (dbxout_parms): Likewise.
2040         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2041         (df_clear_flags): Likewise.
2042         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2043         top_flag parameter to int.
2044         (df_chain_create_bb_process_use): Likewise.
2045         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2046         Remove cast.
2047         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2048         (df_ref_create_structure, df_def_record_1): Likewise.
2049         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2050         (df_notes_rescan): Change 0 to VOIDmode in function call.
2051         (df_get_call_refs, df_insn_refs_collect): Likewise.
2052         (df_bb_regs_collect): Likewise.
2053         (df_entry_block_defs_collect): Likewise.
2054         (df_exit_block_uses_collect): Likewise.
2055         * df.h: Update declarations.
2056         * double-int.c (double_int_divmod): Add cast to enum type.
2057         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2058         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2059         (based_loc_descr): Likewise.
2060         (loc_descriptor_from_tree_1): Change first_op and second_op to
2061         enum dwarf_location_atom.  Add cast to enum type.
2062         * expmed.c (init_expmed): Change 0 to SET in function call.
2063         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2064         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2065         (do_store_flag): Likewise.
2066         * fixed-value.h (struct fixed_value): Change mode to enum
2067         machine_mode.
2068         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2069         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2070         function call.
2071         (insert_insn_decl, insert_decl, insert_state): Likewise.
2072         (automata_list_finish): Likewise.
2073         * genrecog.c (process_define_predicate): Add cast to enum type.
2074         * gensupport.c (init_predicate_table): Add cast to enum type.
2075         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2076         function call.
2077         (gimple_build_call_1, gimple_build_label): Likewise.
2078         (gimple_build_goto, gimple_build_asm_1): Likewise.
2079         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2080         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2081         (enum fallback): Rename from enum fallback_t.
2082         (fallback_t): Typedef as int.
2083         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2084         GSI_SAME_STMT in function call.
2085         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2086         enum type.
2087         (setup_reg_class_relations): Likewise.
2088         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2089         (setup_prohibited_class_mode_regs): Add cast to enum type.
2090         (setup_prohibited_mode_move_regs): Likewise.
2091         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2092         (record_address_regs): Change i to enum reg_class.
2093         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2094         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2095         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2096         (GET_MODE_2XWIDER_MODE): Likewise.
2097         (GET_CLASS_NARROWEST_MODE): Likewise.
2098         * omp-low.c (expand_omp_for): Add cast to enum type.
2099         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2100         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2101         * postreload.c (reload_cse_simplify_operands): Change rclass local
2102         to enum reg_class.
2103         * predict.c (combine_predictions_for_insn): Change best_predictor
2104         and predictor to enum br_predictor.
2105         (combine_predictions_for_bb): Likewise.
2106         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2107         use SET_PREDICT_EXPR_OUTCOME.
2108         * real.c (real_arithmetic): Change icode to code in function call.
2109         * reginfo.c (init_move_cost): Add casts to enum type.
2110         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2111         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2112         enum reg_class.
2113         * reload.c (find_valid_class): Add casts to enum type.
2114         (push_reload): Change 0 to NO_REGS in function call.
2115         (find_reloads): Change this_alternative to array of enum
2116         reg_class.  Remove some now-unnecessary casts.
2117         (make_memloc): Change 0 to VOIDmode in function call.
2118         * reload1.c (reload): Change 0 to VOIDmode in function call.
2119         (eliminate_regs_1, elimination_effects): Likewise.
2120         (eliminate_regs_in_insn): Likewise.
2121         (emit_input_reload_insns): Add cast to enum type.
2122         (delete_output_reload): Change 0 to VOIDmode in function call.
2123         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2124         to enum type in function call.
2125         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2126         (SET_PREDICT_EXPR_OUTCOME): Define.
2127         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2128         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2129         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2130         (dump_function): Likewise.
2131         * tree-dump.h: Update declarations.
2132         * tree-pass.h: Update declarations.
2133         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2134         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2135         enum type.
2136         (arm_rtx_costs_1): Correct parenthesization.
2137         (arm_rtx_costs): Add casts to enum type.
2138         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2139         (vfp_emit_fstmd): Use add_rg_note.
2140         (emit_multi_reg_push, emit_sfm): Likewise.
2141         (thumb_set_frame_pointer): Likewise.
2142         (arm_expand_prologue): Likewise.
2143         (arm_regno_class): Change return type to enum reg_class.
2144         (thumb1_expand_prologue): Use add_reg_note.
2145         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2146         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2147         in function call.
2148         * config/arm/gentune.sh: Add cast to enum type.
2149         * config/arm/arm-tune.md: Rebuild.
2150         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2151         (ix86_split_fp_branch, predict_jump): Likewise.
2152         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2153         insn_code to enum rtx_code.
2154         (ix86_builtin_vectorized_function): Add cast to enum type.
2155         * config/i386/i386.md (truncdfsf2): Change slot to enum
2156         ix86_stack_slot.
2157         (truncxf<mode>2, isinf<mode>2): Likewise.
2158         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2159         enum type.
2160         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2161         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2162         (insert_bundle_state): Change 1 to INSERT in function call.
2163         (ia64_add_bundle_selector_before): Likewise.
2164         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2165         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2166         (restore_stack_nonlocal): Likewise.
2167         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2168         function call.
2169         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2170         function call.
2171         (mips_rtx_costs): Likewise.
2172         (mips_override_options): Add casts to enum type.
2173         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2174         in function call.
2175         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2176         (store_reg, set_reg_plus_d): Likewise.
2177         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2178         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2179         cast to enum type.
2180         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2181         function call.
2182         (emit_unlikely_jump): Use add_reg_note.
2183         (rs6000_emit_allocate_stack): Likewise.
2184         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2185         (output_toc): Change 1 to INSERT in function call.
2186         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2187         (rs6000_initialize_trampoline): Likewise.
2188         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2189         function call.
2190         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2191         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2192         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2193         (save_gprs): Use add_reg_note.
2194         (s390_emit_prologue): Likewise.
2195         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2196         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2197         (sparc_fold_builtin): Add cast to enum type.
2198         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2199         enum insn_code.
2200         (spu_expand_prologue): Use add_reg_note.
2201         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2202
2203 2009-04-20  Ian Lance Taylor  <iant@google.com>
2204
2205         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2206         (c_parser_postfix_expression_after_primary): Get VEC for list of
2207         arguments.  Get original types of arguments.  Call
2208         build_function_call_vec.
2209         (cached_expr_list_1, cached_expr_list_2): New static variables.
2210         (c_parser_expr_list): Change return type to VEC *.  Add
2211         p_orig_types parameter.  Change all callers.
2212         (c_parser_release_expr): New static function.
2213         (c_parser_vec_to_tree_list): New static function.
2214         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2215         call build_function_call_vec.
2216         (build_function_call_vec): New function, based on old
2217         build_function_call.
2218         (convert_arguments): Remove nargs and argarray parameters.  Change
2219         values to a VEC.  Add origtypes parameter.
2220         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2221         (convert_for_assignment): Add origtype parameter.  Change all
2222         callers.  If warn_cxx_compat, check for conversion to an enum
2223         type when calling a function.
2224         (store_init_value): Add origtype parameter.  Change all callers.
2225         (digest_init): Likewise.
2226         (struct init_node): Add origtype field.
2227         (add_pending_init): Add origtype parameter.  Change all callers.
2228         (output_init_element): Likewise.
2229         (output_pending_init_elements): Pass origtype from init_node to
2230         output_init_element.
2231         (process_init_element): Pass origtype from c_expr to
2232         output_init_element.
2233         (c_finish_return): Add origtype parameter.  Change all callers.
2234         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2235         caller.
2236         (sync_resolve_params): Likewise.
2237         (sync_resolve_return): Change params to first_param.  Change caller.
2238         (resolve_overloaded_builtins): Change params to VEC *.  Change
2239         callers.  Save first parameter around call to build_function_call_vec.
2240         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2241         callers.  Call build_function_call_vec rather than
2242         build_function_call for cleanup.
2243         * c-tree.h: Update declarations.
2244         * c-common.h: Update declarations.
2245         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2246         params to first_param.
2247         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2248         params parameter from tree to void *.
2249         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2250         Change arglist parameter to have type void *, and to be a pointer
2251         to a VEC.
2252         * config/rs6000/rs6000-protos.h
2253         (altivec_resolve_overloaded_builtin): Update declaration.
2254         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2255         fnargs parameter to have type void *, and to be a pointer to a
2256         VEC.  Call build_function_call_vec instead of
2257         build_function_call.
2258         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2259
2260 2009-04-20  Joey Ye  <joey.ye@intel.com>
2261             Xuepeng Guo  <xuepeng.guo@intel.com>
2262             H.J. Lu  <hongjiu.lu@intel.com>
2263
2264         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2265
2266         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2267         (IX86_LEA_PRIORITY): Likewise.
2268         (distance_non_agu_define): New function.
2269         (distance_agu_use): Likewise.
2270         (ix86_lea_for_add_ok): Likewise.
2271         (ix86_dep_by_shift_count): Likewise.
2272
2273         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2274         should split for LEA.
2275
2276         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2277         function.
2278         (ix86_dep_by_shift_count): Likewise.
2279
2280 2009-04-20  Richard Guenther  <rguenther@suse.de>
2281
2282         * expr.c (handled_component_p): Move ...
2283         * tree.h (handled_component_p): ... here.
2284         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2285         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2286         and REALPART_EXPR to be in one group.
2287
2288 2009-04-20  Richard Guenther  <rguenther@suse.de>
2289
2290         * basic-block.h (get_all_dominated_blocks): Declare.
2291         * dominance.c (get_all_dominated_blocks): New function.
2292         * tree-cfg.c (get_all_dominated_blocks): Remove.
2293         (remove_edge_and_dominated_blocks): Adjust.
2294         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2295         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
2296         instead of recursing.
2297
2298 2009-04-20  Doug Kwan  <dougkwan@google.com>
2299
2300         * cgraph.h (cgraph_node_ptr): New type for vector functions.
2301         (struct cgraph_node_set_def): New type.
2302         (cgraph_node_set) New type. Also declare vector functions.
2303         (struct cgraph_node_set_element_def): New type.
2304         (cgraph_node_set_element): Ditto.
2305         (cgraph_node_set_iterator): New iterator type.
2306         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2307         cgraph_node_set_remove, dump_cgraph_node_set,
2308         debug_cgraph_node_set): New prototypes.
2309         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2310         cgraph_node_set_size): New inlines.
2311         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2312         including cgraph.h.
2313         (struct ipa_opt_pass): Add struct cgraph_node_set_def
2314         argument to function 'write_summary'.
2315         * ipa.c: Include ggc.h.
2316         (hash_cgraph_node_set_element,
2317         eq_cgraph_node_set_element, cgraph_node_set_new,
2318         cgraph_node_set_add, cgraph_node_set_remove,
2319         cgraph_node_set_find, dump_cgraph_node_set,
2320         debug_cgraph_node_set): New functions.
2321         * Makefile.in (ipa.o): Add dependency on GGC_H.
2322
2323 2009-04-20  Ira Rosen  <irar@il.ibm.com>
2324
2325         PR tree-optimization/39675
2326         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
2327         check of the return code of vect_schedule_slp. Check that
2328         stmt_vec_info still exists for the statement, before checking its
2329         vectorization type.
2330
2331 2009-04-20  Michael Matz  <matz@suse.de>
2332
2333         * Makefile.in (generated_files): Take out $(simple_generated_c).
2334
2335 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
2336
2337         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
2338         (UINTPTR_TYPE):  Likewise.
2339
2340 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2341
2342         PR c/37481
2343         * c-typeck.c (digest_init): Check for initializing an array with a
2344         string literal.
2345
2346 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2347
2348         PR c/19771
2349         * c-semantics.c (pop_stmt_list): Propagate
2350         STATEMENT_LIST_HAS_LABEL to parent statement list.
2351
2352 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
2353
2354         * config/mips/mips.h (mips_tune_attr): New macro.
2355         * config/mips/mips.md (cpu): Use it.
2356
2357 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2358
2359         PR c/38243
2360         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2361         declaring a tag.
2362
2363 2009-04-19  Diego Novillo  <dnovillo@google.com>
2364
2365         * toplev.c (compile_file): Move call to coverage_finish ...
2366         * cgraphunit.c (ipa_passes): ... here.
2367         Call cgraph_process_new_functions.
2368         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2369         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2370
2371 2009-04-19  Jan Hubicka  <jh@suse.cz>
2372
2373         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2374         cfun.
2375         (dump_cgraph_node): Dump can throw external flag.
2376         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2377
2378 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2379
2380         PR c/32061
2381         PR c++/36954
2382         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2383         * common.opt (Wlogical-op): Move from here...
2384         * c.opt (Wlogical-op): ... to here.
2385         * c-typeck.c (parser_build_binary_op): Update call to
2386         warn_logical_operator.
2387         * c-opts.c (c_common_post_options): Enable warn_logical_op with
2388         extra_warnings.
2389         * c-common.c (warn_logical_op): Update.
2390         * c-common.h (warn_logical_op): Update declaration.
2391
2392 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2393
2394         * tree.c (protected_set_expr_location): Fix formatting.
2395
2396 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2397
2398         PR c/27676
2399         * c-typeck.c (readonly_warning): new.
2400         (build_unary_op, build_modify_expr): Use readonly_warning for
2401         storing into something readonly but not const-qualified.
2402
2403 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2404
2405         PR c/22367
2406         * c-typeck.c (build_unary_op): Check for taking address of
2407         expression of type void.
2408
2409 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2410
2411         PR c/35210
2412         * c-typeck.c (build_function_call): Check for calling a function
2413         with qualified void return types.  Call require_complete_type when
2414         generating a trap.
2415
2416 2009-04-18  Jan Hubicka  <jh@suse.cz>
2417
2418         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2419         Set nothrow flag.
2420         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2421         can_throw_external flag.
2422         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2423         * ipa-pure-const.c (ignore_edge): New function.
2424         (propagate): Compute order for NOTHROW computation; set NOTHROWs
2425         only over can_throw_external edges.
2426         (local_pure_const): Add nothrow flag.
2427         * ipa-utils.c (searchc): Add ignore_edge callback.
2428         (ipa_utils_reduced_inorder): Add ignore_edge callback.
2429         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2430         (set_nothrow_function_flags): Update cgraph.
2431         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2432
2433 2009-04-18  Richard Guenther  <rguenther@suse.de>
2434
2435         PR middle-end/39804
2436         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2437         (fold_stmt): ... this and ...
2438         (fold_stmt_inplace): ... this.
2439         (fold_stmt_1): Fold references in calls and asms.
2440         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2441
2442 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2443
2444         * tree-vrp.c (ssa_name_nonzero_p): Remove.
2445         * tree.h: Remove the prototype for ssa_name_nonzero_p.
2446
2447 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2448
2449         * tree.c (function_args_count): Remove.
2450         * tree.h: Remove the prototype for function_args_count.
2451
2452 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2453
2454         * tree-iterator.c (expr_only): Remove.
2455         * tree.h: Remove the prototype for expr_only.
2456
2457 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2458
2459         * reginfo.c (cannot_change_mode_set_regs): Remove.
2460         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2461
2462 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
2463
2464         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2465         whether operands 0 and 1 overlaps.
2466
2467 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2468
2469         PR middle-end/36902
2470         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2471         pointer. Use warning_at instead of warning.
2472         (search_for_addr_array): Likewise.
2473         (check_array_bounds): Likewise.
2474         (check_all_array_refs): Check that the incoming edge is not in the
2475         list of edges to be removed.
2476         (check_all_array_refs): Avoid the temporal pointer.
2477         (vrp_visit_cond_stmt): Fix typo.
2478         (simplify_switch_using_ranges): Handle the case where the switch
2479         index is an integer constant.
2480
2481 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
2482
2483         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2484
2485 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2486
2487         * doc/extend.texi, doc/invoke.texi: Fix typos.
2488
2489 2009-04-17  Cary Coutant  <ccoutant@google.com>
2490
2491         * tree-flow-inline.h (get_lineno): Fix inverted test.
2492
2493 2009-04-17  Diego Novillo  <dnovillo@google.com>
2494
2495         * tree-ssa-pre.c (create_expression_by_pieces): Remove
2496         assertion for AVAIL_OUT.
2497
2498 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
2499
2500         PR target/38627
2501         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2502         * config/sh/linux-atomic.asm: Likewise.
2503
2504 2009-04-17  Diego Novillo  <dnovillo@google.com>
2505
2506         * except.c (debug_eh_tree): New.
2507         (struct eh_region, struct eh_status): Move ...
2508         * except.h: ... here.
2509         (add_type_for_runtime): Declare extern.
2510         (lookup_type_for_runtime): Likewise.
2511         (debug_eh_tree): Declare.
2512         * Makefile.in (GTFILES): List except.h before except.c
2513
2514 2009-04-17  Diego Novillo  <dnovillo@google.com>
2515
2516         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
2517         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2518         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2519         (find_vars_r): ... here.
2520         * tree-flow.h (find_referenced_vars_in): Declare.
2521         * tree-ssa-pre.c (create_expression_by_pieces): Assert
2522         that AVAIL_OUT exists for BLOCK.
2523         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2524         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2525         (tree-parloops.o): Likewise.
2526
2527 2009-04-17  Simon Baldwin  <simonb@google.com>
2528
2529         * toplev.c (default_tree_printer): Add handling for %E format.
2530
2531 2009-04-17  Diego Novillo  <dnovillo@google.com>
2532
2533         * tree-pretty-print.c (dump_generic_node): Add break after
2534         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
2535         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
2536         FUNCTION_TYPE together.  Call print_struct_decl when printing
2537         structures and TDF_SLIM is not given.
2538         (print_struct_decl): Fix logic for detecting recursion.
2539
2540 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2541
2542         PR 31567
2543         * gcc.c (create_at_file): New.
2544         (compile_input_file_p): New.
2545         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2546         * main.c (main): Update call to toplev_main.
2547         * toplev.c (toplev_main): Change signature. Call expandargv.
2548         * toplev.h (toplev_main): Change signature.
2549
2550 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2551
2552         * dwarf2out.c (field_byte_offset): Use the type size as the field size
2553         if the latter is not constant.
2554
2555 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
2556
2557         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
2558
2559 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2560
2561         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
2562         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
2563
2564 2009-04-17  Richard Guenther  <rguenther@suse.de>
2565
2566         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2567         Handle component references view-converting an invariant address.
2568
2569 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
2570
2571         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
2572         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
2573         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
2574         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
2575         Use @deftypevr rather than @deftypevar.
2576
2577 2009-04-17  Richard Guenther  <rguenther@suse.de>
2578
2579         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
2580         (get_prop_source_stmt): Likewise.
2581         (can_propagate_from): Likewise.
2582
2583 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
2584
2585         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
2586         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
2587         (--with-multilib-list): Add default value.
2588         * configure: Regenerate.
2589         * Makefile.in (TM_ENDIAN_CONFIG): Define.
2590         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
2591         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
2592         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
2593         Don't add default cpu to multilib list unnecessarily, but do enable
2594         the relevant compiler option..
2595         Add support for --with-multilib-list=<blank> and
2596         --with-multilib-list=!<somelib> to supress unwanted multilibs.
2597         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
2598         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
2599         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
2600         TM_MULTILIB_CONFIG.
2601         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
2602         (MULTILIB_OSDIRNAMES): New variable.
2603         * config/sh/t-1e: Delete file.
2604         * config/sh/t-mlib-sh1: Delete file.
2605         * config/sh/t-mlib-sh2: Delete file.
2606         * config/sh/t-mlib-sh2a: Delete file.
2607         * config/sh/t-mlib-sh2a-nofpu: Delete file.
2608         * config/sh/t-mlib-sh2a-single: Delete file.
2609         * config/sh/t-mlib-sh2a-single-only: Delete file.
2610         * config/sh/t-mlib-sh2e: Delete file.
2611         * config/sh/t-mlib-sh3e: Delete file.
2612         * config/sh/t-mlib-sh4: Delete file.
2613         * config/sh/t-mlib-sh4-nofpu: Delete file.
2614         * config/sh/t-mlib-sh4-single: Delete file.
2615         * config/sh/t-mlib-sh4-single-only: Delete file.
2616         * config/sh/t-mlib-sh4a: Delete file.
2617         * config/sh/t-mlib-sh4a-nofpu: Delete file.
2618         * config/sh/t-mlib-sh4a-single: Delete file.
2619         * config/sh/t-mlib-sh4a-single-only: Delete file.
2620         * config/sh/t-mlib-sh4al: Delete file.
2621         * config/sh/t-mlib-sh5-32media: Delete file.
2622         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
2623         * config/sh/t-mlib-sh5-64media: Delete file.
2624         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
2625         * config/sh/t-mlib-sh5-compact: Delete file.
2626         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
2627         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
2628         * doc/install.texi (Options specification): Add
2629         --with-multilib-list and --with-endian.
2630
2631 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2632
2633         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
2634         REVISION_c.
2635         (OBJS-common): Add plugin-version.o.
2636         (plugin-version.o): New.
2637         * gcc-plugin.h (plugin_gcc_version): New.
2638         (plugin_default_version_check): New.
2639         (plugin_init_func, plugin_init): Add version argument.
2640         * plugin-version.c: New.
2641         * plugin.c (str_plugin_gcc_version_name): New.
2642         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
2643         pass it to the init function.
2644         (plugin_default_version_check): New.
2645
2646 2009-04-17  Richard Guenther  <rguenther@suse.de>
2647
2648         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
2649         for decl-vs-decl disambiguation.
2650
2651 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2652
2653         * config/s390/s390.h (s390_tune_attr): New macro definition.
2654         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
2655
2656 2009-04-17  Richard Guenther  <rguenther@suse.de>
2657
2658         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
2659         (fold_stmt_r): Likewise.
2660         (maybe_fold_reference): New function.
2661         (fold_gimple_assign): Handle cases fold_stmt_r did.
2662         (fold_stmt): Do not use fold_stmt_r.
2663         (fold_stmt_inplace): Likewise.
2664
2665 2009-04-17  Richard Guenther  <rguenther@suse.de>
2666
2667         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
2668         (record_equivalences_from_stmt): Remove useless checks and
2669         simplifications.
2670         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
2671         the type is already suitable.
2672
2673 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
2674
2675         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
2676
2677 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
2678
2679         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
2680         (CMPtype): Define as __gcc_CMPtype.
2681
2682 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
2683
2684         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
2685         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
2686
2687 2009-04-17  Richard Guenther  <rguenther@suse.de>
2688
2689         PR tree-optimization/39746
2690         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
2691         special-casing for builtins and static variable use/def.
2692         (call_may_clobber_ref_p_1): Likewise.
2693
2694 2009-04-16  Ian Lance Taylor  <iant@google.com>
2695
2696         * df.h: Include "timevar.h".
2697         (struct df_problem): Change tv_id field to timevar_id_t.
2698         * tree-pass.h: Include "timevar.h".
2699         (struct opt_pass): Change tv_id field to timevar_id_t.
2700         * timevar.h (timevar_id_t): Define TV_NONE.
2701         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
2702         TV_NONE rather than tv_id != 0.
2703         (execute_one_pass): Likewise.
2704         * Makefile.in (DF_H): Add $(TIMEVAR_H).
2705         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
2706         dependencies to $(TREE_PASS_H).
2707         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
2708         to TV_NONE.
2709         (pass_branch_target_load_optimize2): Likewise.
2710         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
2711         (pass_outof_cfg_layout_mode): Likewise.
2712         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
2713         (pass_rebuild_cgraph_edges): Likewise.
2714         (pass_remove_cgraph_callee_edges): Likewise.
2715         * df-core.c (pass_df_initialize_opt): Likewise.
2716         (pass_df_initialize_no_opt): Likewise.
2717         (pass_df_finish): Likewise.
2718         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
2719         * except.c (pass_set_nothrow_function_flags): Likewise.
2720         (pass_convert_to_eh_region_ranges): Likewise.
2721         * final.c (pass_compute_alignments): Likewise.
2722         * function.c (pass_instantiate_virtual_regs): Likewise.
2723         (pass_init_function): Likewise.
2724         (pass_leaf_regs): Likewise.
2725         (pass_match_asm_constraints): Likewise.
2726         * gimple-low.c (pass_lower_cf): Likewise.
2727         (pass_mark_used_blocks): Likewise.
2728         * init-regs.c (pass_initialize_regs): Likewise.
2729         * integrate.c (pass_initial_value_sets): Likewise.
2730         * ira.c (pass_ira): Likewise.
2731         * jump.c (pass_cleanup_barriers): Likewise.
2732         * omp-low.c (pass_expand_omp): Likewise.
2733         (pass_lower_omp): Likewise.
2734         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
2735         * recog.c (pass_split_all_insns): Likewise.
2736         (pass_split_after_reload): Likewise.
2737         (pass_split_before_regstack): Likewise.
2738         (pass_split_before_sched2): Likewise.
2739         (pass_split_for_shorten_branches): Likewise.
2740         * reginfo.c (pass_reginfo_init): Likewise.
2741         (pass_subregs_of_mode_init): Likewise.
2742         (pass_subregs_of_mode_finish): Likewise.
2743         * passes.c (pass_postreload): Likewise.
2744         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2745         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
2746         (pass_warn_function_return): Likewise.
2747         (pass_warn_function_noreturn): Likewise.
2748         * tree-complex.c (pass_lower_complex): Likewise.
2749         (pass_lower_complex_O0): Likewise.
2750         * tree-if-conv.c (pass_if_conversion): Likewise.
2751         * tree-into-ssa.c (pass_build_ssa): Likewise.
2752         * tree-mudflap.c (pass_mudflap_1): Likewise.
2753         (pass_mudflap_2): Likewise.
2754         * tree-nomudflap.c (pass_mudflap_1): Likewise.
2755         (pass_mudflap_2): Likewise.
2756         * tree-nrv.c (pass_return_slot): Likewise.
2757         * tree-object-size.c (pass_object_sizes): Likewise.
2758         * tree-optimize.c (pass_all_optimizations): Likewise.
2759         (pass_early_local_passes): Likewise.
2760         (pass_all_early_optimizations): Likewise.
2761         (pass_cleanup_cfg): Likewise.
2762         (pass_cleanup_cfg_post_optimizing): Likewise.
2763         (pass_free_datastructures): Likewise.
2764         (pass_free_cfg_annotations): Likewise.
2765         (pass_fixup_cfg): Likewise.
2766         (pass_init_datastructures): Likewise.
2767         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
2768         (pass_late_warn_uninitialized): Likewise.
2769         (pass_update_address_taken): Likewise.
2770         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
2771         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
2772         (pass_cse_sincos): Likewise.
2773         (pass_convert_to_rsqrt): Likewise.
2774         * tree-ssa-structalias.c (pass_build_alias): Likewise.
2775         * tree-stdarg.c (pass_stdarg): Likewise.
2776         * tree-tailcall.c (pass_tail_recursion): Likewise.
2777         (pass_tail_calls): Likewise.
2778         * tree-vect-generic.c (pass_lower_vector): Likewise.
2779         (pass_lower_vector_ssa): Likewise.
2780         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
2781
2782 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
2783
2784         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
2785         XLR entry.
2786         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
2787         Handle -march=xlr.
2788         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
2789         logical and signext.
2790
2791 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2792
2793         PR target/39767
2794         * config/sh/predicates.md (arith_operand): Check if the operand
2795         of TRUNCATE is a REG.
2796
2797 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2798
2799         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2800         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2801
2802 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2803
2804         * tree-iterator.c (tsi_split_statement_list_after,
2805         tsi_split_statement_list_before): Remove.
2806         * tree-iterator.h: Remove the prototypes for
2807         tsi_split_statement_list_after and tsi_split_statement_list_before.
2808
2809 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2810
2811         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
2812         * tree-ssa-propagate.h: Remove the prototype for
2813         stmt_makes_single_load.
2814
2815 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2816
2817         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
2818         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
2819
2820 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2821
2822         * tree-iterator.c (EXPR_LAST_BODY): Remove.
2823
2824 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2825
2826         * except.c (eh_region_outer_p): Remove.
2827         * except.h: Remove the prototype for eh_region_outer_p.
2828
2829 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2830
2831         * function.c (current_function_assembler_name): Remove.
2832         * function.h: Remove the prototype for
2833         current_function_assembler_name.
2834
2835 2009-04-16  Ian Lance Taylor  <iant@google.com>
2836
2837         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
2838         (add_reg_note): Call alloc_reg_note.
2839         * rtl.h (alloc_reg_note): Declare.
2840         * combine.c (try_combine): Use alloc_reg_note.
2841         (recog_for_combine, move_deaths): Likewise.
2842         (distribute_notes): Use alloc_reg_note and add_reg_note.
2843         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
2844         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
2845         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
2846
2847 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
2848
2849         PR rtl-optimization/39762
2850         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
2851         ira_may_move_out_cost): Add comments about way of their usage.
2852         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2853
2854         * ira-conflicts.c (process_regs_for_copy): Use function
2855         ira_get_register_move_cost instead of global
2856         ira_register_move_cost.
2857
2858         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
2859         color_pass, move_spill_restore, update_curr_costs): Ditto.
2860
2861         * ira-lives.c (process_single_reg_class_operands): Ditto.
2862
2863         * ira-emit.c (emit_move_list): Ditto.
2864
2865         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
2866         (record_reg_classes): Ditto.  Use functions
2867         ira_get_register_move_cost and ira_get_may_move_cost instead of
2868         global vars ira_register_move_cost, ira_may_move_out_cost and
2869         ira_may_move_in_cost.
2870         (record_address_regs): Don't call ira_init_register_move_cost.
2871         Use function ira_get_may_move_cost instead of global
2872         ira_may_move_in_cost.
2873         (process_bb_node_for_hard_reg_moves): Use function
2874         ira_get_register_move_cost instead of global ira_register_move_cost.
2875         (ira_costs): Don't call ira_init_register_move_cost.
2876
2877 2009-04-16  Richard Guenther  <rguenther@suse.de>
2878
2879         * tree-cfg.c (verify_gimple_assign_binary):
2880         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
2881         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
2882         (create_general_new_stmt): Note that this function is broken.
2883
2884 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2885
2886         * common.opt (fhelp): Add Var(help_flag).
2887         * gcc-plugin.h (plugin_info): Add help.
2888         * plugin.c (plugin_name_args): Add help.
2889         (register_plugin_info): Set plugin->help.
2890         (print_help_one_plugin): New.
2891         (print_plugins_help): New.
2892         * plugin.h (print_plugins_help): New.
2893         * toplev.c (toplev_main): Call print_plugins_help if needed.
2894
2895 2009-04-16  Richard Guenther  <rguenther@suse.de>
2896
2897         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
2898         (gimple_ior_addresses_taken_1): New function.
2899         (gimple_ior_addresses_taken): Likewise.
2900         * gimple.h (struct gimple_statement_with_ops_base): Remove
2901         addresses_taken member.
2902         (gimple_ior_addresses_taken): Declare.
2903         (gimple_addresses_taken, gimple_addresses_taken_ptr,
2904         gimple_set_addresses_taken): Remove.
2905         * ipa-reference.c (mark_address): New function.
2906         (scan_stmt_for_static_refs): Use it for marking addresses taken.
2907         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
2908         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
2909         (gimple_add_to_addresses_taken): Remove.
2910         (get_tmr_operands): Call mark_address_taken.
2911         (get_asm_expr_operands): Likewise.
2912         (get_expr_operands): Likewise.
2913         (build_ssa_operands): Do not clear the addresses_taken bitmap.
2914         (free_stmt_operands): Do not free it.
2915         * tree-ssa.c (delete_tree_ssa): Likewise.
2916         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
2917
2918 2009-04-16  Richard Guenther  <rguenther@suse.de>
2919
2920         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
2921         (walk_stmt_load_store_ops): Likewise.
2922         * gimple.c (get_base_loadstore): New function.
2923         (walk_stmt_load_store_addr_ops): Likewise.
2924         (walk_stmt_load_store_ops): Likewise.
2925         * ipa-pure-const.c (check_op): Simplify.
2926         (check_load, check_store): New functions.
2927         (check_stmt): Use walk_stmt_load_store_ops.
2928         * ipa-reference.c (mark_load): Adjust signature.
2929         (mark_store): Likewise.
2930         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
2931
2932 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2933
2934         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
2935         (plugin_info): New.
2936         * opts.c (common_handle_option): Don't call print_version.
2937         * plugin.c (plugin_name_args): Add version.
2938         (register_plugin_info): New.
2939         (register_callback): Handle PLUGIN_INFO.
2940         (try_init_one_plugin): New.
2941         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
2942         if failed to init.
2943         (finalize_one_plugin): New.
2944         (finalize_plugins): New.
2945         (print_one_plugin): New.
2946         (print_plugins_versions): New.
2947         * plugin.h (print_plugins_versions): New.
2948         (finalize_plugins): New.
2949         * toplev.c (compile_file): Don't call initialize_plugins.
2950         (print_version): Call print_plugins_versions.
2951         (toplev_main): Call initialize_plugins. Print version if needed.
2952         Call finalize_plugins.
2953
2954 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2955
2956         * common.opt (fversion): New.
2957         * gcc.c (print_version): New.
2958         (process_command): Don't print the version. Just set print_version.
2959         (main): Print version. Call subprocesses if print_version and
2960         verbose_flag are set.
2961         * opts.c (common_handle_option): Handle OPT_fversion.
2962
2963 2009-04-16  Richard Guenther  <rguenther@suse.de>
2964             Ira Rosen  <irar@il.ibm.com>
2965
2966         PR tree-optimization/39698
2967         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
2968         type of the reduction variable.  Only generate the def if
2969         it is needed.
2970
2971         * omp-low.c (expand_omp_for_generic): When converting to a pointer
2972         make sure to first convert to an integer of the same precision.
2973         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
2974         the type of the evolution correctly in computing the new
2975         induction variable base.
2976
2977 2009-04-16  Richard Guenther  <rguenther@suse.de>
2978
2979         PR middle-end/39625
2980         * tree-cfg.c (make_blocks): Split statements with to-be
2981         abnormal SSA names on the lhs.
2982
2983 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
2984
2985         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
2986         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
2987         * c-typeck.c (really_start_incremental_init): Likewise.
2988         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
2989         (TARGET_INITIALIZER): Remove it.
2990         * target.h (struct target): Remove vector_opaque_p.
2991         * tree.c (build_opaque_vector_type): New.
2992         * tree.h (TYPE_VECTOR_OPAQUE): New.
2993         (build_opaque_vector_type): Declare.
2994         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
2995         * config/rs6000/rs6000.c (build_opaque_vector_type,
2996         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
2997         (rs6000_init_builtins): Use build_opaque_vector_type for
2998         opaque_V4SI_type_node.
2999
3000 2009-04-15  Catherine Moore  <clm@codesourcery.com>
3001
3002         * debug.h (set_name):  Declare.
3003         * dwarf2out.c (dwarf2out_set_name): Declare.
3004         (dwarf2_debug_hooks): Add set_name.
3005         (find_AT_string): New.
3006         (add_AT_string): Call find_AT_string.
3007         (dwarf2out_set_name): New.
3008         * cp/decl.c (grokdeclarator): Call set_name.
3009         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3010         * debug.c (do_nothing_debug_hooks):  Likewise.
3011         * dbxout.c (dbx_debug_hooks): Likewise.
3012         * sdbout.c (sdb_debug_hooks): Likewise.
3013
3014 2009-04-15  Michael Eager  <eager@eagercon.com>
3015
3016         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3017         reg for single-precision FPU.
3018         * config/rs6000/rs6000.md (movsi_internal1): Only for
3019         !TARGET_SINGLE_FPU.
3020         (movsi_internal1_single): New. Add pattern to move SI values to/from
3021         single-precision FP regs.
3022
3023 2009-04-15  Richard Guenther  <rguenther@suse.de>
3024
3025         * omp-low.c (lower_rec_input_clauses): Build correct address
3026         expressions.
3027         (expand_omp_for_generic): Fix multiplication type.
3028         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
3029         (generate_memset_zero): Fix types.
3030         * tree-profile.c (prepare_instrumented_value): Correctly
3031         widen a pointer.
3032
3033 2009-04-15  Ian Lance Taylor  <iant@google.com>
3034
3035         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
3036         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3037         for -Wall and for -Wc++-compat.
3038         (c_common_post_options): For C++, set warn_enum_compare if not
3039         already set.
3040         * c-tree.h (struct c_expr): Add field original_type.
3041         (build_external_ref): Update declaration.
3042         * c-parser.c (c_parser_braced_init): Set original_type.
3043         (c_parser_initelt): Likewise.
3044         (c_parser_expr_no_commas): Likewise.
3045         (c_parser_conditional_expression): Likewise.
3046         (c_parser_cast_expression): Likewise.
3047         (c_parser_unary_expression): Likewise.  Pull setting of
3048         original_code to top of function.
3049         (c_parser_sizeof_expression): Set original_type.
3050         (c_parser_alignof_expression): Likewise.
3051         (c_parser_postfix_expression): Likewise.  Pull setting of
3052         original_code to top of function.
3053         (c_parser_postfix_expression_after_paren_type): Set original_type.
3054         (c_parser_postfix_expression_after_primary): Likewise.
3055         (c_parser_expression): Likewise.
3056         * c-typeck.c (build_external_ref): Add type parameter.  Change all
3057         callers.
3058         (c_expr_sizeof_expr): Set original_type field.
3059         (parser_build_unary_op): Likewise.
3060         (parser_build_binary_op): Likewise.  Optionally warn about
3061         comparisons of enums of different types.
3062         (digest_init): Set original_type field.
3063         (really_start_incremental_init): Likewise.
3064         (push_init_level, pop_init_level): Likewise.
3065         * doc/invoke.texi (Warning Options): -Wenum-compare now
3066         supported in C.
3067
3068 2009-04-15  Richard Guenther  <rguenther@suse.de>
3069
3070         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3071         out a necessary conversion.
3072         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3073         names we didn't value number.
3074         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3075
3076 2009-04-15  Richard Guenther  <rguenther@suse.de>
3077
3078         PR tree-optimization/39764
3079         * tree-ssa-ccp.c (get_value): Canonicalize value with
3080         canonicalize_float_value.
3081
3082 2009-04-15  Jan Hubicka  <jh@suse.cz>
3083
3084         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3085         Wrong version of patch.
3086
3087 2009-04-15  Jan Hubicka  <jh@suse.cz>
3088
3089         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3090
3091 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
3092
3093         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3094         our distinct integral and vector types.
3095
3096 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
3097
3098         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3099         * init.c (build_vtbl_address): Remove call to assemble_external.
3100
3101 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
3102
3103         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3104         output for other floating point modes.
3105
3106 2009-04-14  Diego Novillo  <dnovillo@google.com>
3107
3108         * diagnostic.c (diagnostic_report_diagnostic): Do not
3109         warn about loaded plugins for DK_ERROR and DK_WARNING.
3110         * c-decl.c (declspecs_add_type): Move call to
3111         invoke_plugin_callbacks ...
3112         * c-parser.c (c_parser_declspecs): ... here.
3113         * plugin.c (dump_active_plugins): Tidy output.
3114
3115 2009-04-14  Diego Novillo  <dnovillo@google.com>
3116             Le-Chun Wu  <lcwu@google.com>
3117
3118         * configure.ac: Add --enable-plugin support.
3119         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3120         * Makefile.in (PLUGIN_H): Define.
3121         Export ENABLE_PLUGIN and GMPINC to site.exp.
3122         Add PLUGINLIBS to link command.
3123         Add/modify dependencies for plugin.o and files including plugin.h.
3124         (plugin.o): New.
3125         * config.in: Regenerate.
3126
3127         * opts.c (common_handle_option): Handle OPT_fplugin_ and
3128         OPT_fplugin_arg_.
3129
3130 2009-04-14  Le-Chun Wu  <lcwu@google.com>
3131
3132         * tree-pass.h (register_one_dump_file): Add a prototype for
3133         register_one_dump_file.
3134         * toplev.c (compile_file): Call initialize_plugins.
3135         (do_compile): Call invoke_plugin_callbacks.
3136         (toplev_main): Call invoke_plugin_callbacks.
3137         * common.opt: Add -fplugin= and -fplugin-arg-.
3138         * gcc-plugin.h: New public header file for plugins to include.
3139         * plugin.c: New source file.
3140         * plugin.h: New internal header file.
3141         * passes.c (register_one_dump_file): Make it external.
3142
3143         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3144
3145 2009-04-14  Diego Novillo  <dnovillo@google.com>
3146
3147         * doc/plugins.texi: New.
3148         * doc/gccint.texi: Add reference to Plugins chapter.
3149         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3150         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3151         loaded plugins, if any.
3152         * timevar.def (TV_PLUGIN_INIT): Define.
3153         (TV_PLUGIN_RUN): Define.
3154         * plugin.c: Include timevar.h
3155         (plugins_active_p): New.
3156         (dump_active_plugins): New.
3157         (debug_active_plugins): New.
3158
3159 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3160
3161         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3162         library paths.
3163         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3164
3165 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3166
3167         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3168         the same as a minus without a shift.
3169
3170 2009-04-14  Nick Clifton  <nickc@redhat.com>
3171
3172         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3173         comparisons with small integers will always produce a short
3174         branch.
3175
3176 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3177
3178         Merge:
3179         2008-12-19  Diego Novillo  <dnovillo@google.com>
3180
3181         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3182
3183 2009-04-14  Richard Guenther  <rguenther@suse.de>
3184
3185         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3186         verification.
3187         (verify_gimple_assign_binary): Likewise.  Handle shifts and
3188         rotates correctly.
3189         (verify_gimple_phi): Print the mismatched argument position.
3190         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3191         Fix types.
3192         (vect_update_init_of_dr): Likewise.
3193         * matrix-reorg.c (transform_access_sites): Do what the
3194         comment suggests.
3195         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3196
3197 2009-04-13  Michael Eager  <eager@eagercon.com>
3198
3199         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3200         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3201         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
3202         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
3203         remove duplicate config
3204
3205 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3206
3207         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3208         file_name:line_number type locator of the call site.
3209
3210 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3211
3212         * genautomata.c: Put blank after comma.
3213         (automaton_decls): New.
3214         (struct unit_usage): Add comments to member next.
3215         (store_alt_unit_usage): Keep the list ordered.
3216         (unit_present_on_list_p, equal_alternatives_p): New.
3217         (check_regexp_units_distribution): Check units distribution
3218         correctness correctly.
3219         (main): Don't write automata if error is found.  Return correct
3220         exit code.
3221
3222         * config/m68k/cf.md (cfv4_ds): Remove.
3223         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3224         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3225
3226         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3227         power4-load-ext, power4-store, power4-store-update,
3228         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3229         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3230         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3231         power4-sqrt, power4-isync): Modify reservation to make correct
3232         unit distribution to automata.
3233
3234         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3235         power5-store-update, power5-two, power5-three, power5-lmul,
3236         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
3237
3238 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
3239
3240         * except.c (pass_set_nothrow_function_flags): Set name and add
3241         TODO_dump_func.
3242         (set_nothrow_function_flags): Mention in the dump file when
3243         changing a function to nothrow.
3244
3245 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
3246
3247         PR/39066
3248         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3249         instead of unsigned long.
3250
3251 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3252
3253         * config/arm/arm.c (return_used_this_function): Remove.
3254         (arm_output_function_prologue): Remove use of
3255         return_used_this_function.
3256         (output_return_instruction): Replace use of
3257         return_used_this_function
3258         by cfun->machine->return_used_this_function.
3259         (arm_output_epilogue): Likewise.
3260         (arm_output_function_epilogue): Likewise.
3261         (thumb_unexpanded_epilogue): Likewise.
3262         * config/arm/arm.h (struct machine_function):
3263         New member return_used_this_function.
3264
3265 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
3266
3267         * doc/install.texi: Correct description of default directory for
3268         --with-gxx-include-dir.
3269
3270 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3271
3272         * fold-const.c (build_range_check): Properly deal with enumeral and
3273         boolean base types.
3274
3275 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
3276
3277         * doc/invoke.texi (max_gcse_passes): Remove documentation.
3278         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3279         * params.h (MAX_GCSE_PASSES): Remove.
3280         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3281         in sequence.  Remove ability to run multiple passes.
3282         (bypass_jumps): Report run as third CPROP pass.
3283
3284 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
3285
3286         PR middle-end/39651
3287         * except.c (can_throw_external): Look at each insn in a SEQUENCE
3288         when deciding whether the whole SEQUENCE can throw.
3289
3290 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
3291
3292         PR target/39740
3293         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3294         offseted label references.
3295
3296 2009-04-11  Jan Hubicka  <jh@suse.cz>
3297
3298         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3299
3300 2009-04-11  Richard Guenther  <rguenther@suse.de>
3301
3302         PR middle-end/39732
3303         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3304         return variables as TREE_ADDRESSABLE.
3305
3306 2009-04-11  Richard Guenther  <rguenther@suse.de>
3307
3308         PR tree-optimization/39713
3309         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3310         reference trees have SSA_NAME operands.
3311
3312 2009-04-11  Richard Guenther  <rguenther@suse.de>
3313
3314         PR c/39712
3315         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3316         address expressions.
3317
3318 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3319
3320         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
3321         match changes in Cygwin 1.7
3322         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3323         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
3324
3325 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3326
3327         PR tree-optimization/39701
3328         * doc/invoke.texi (Optimization Options): Document change in
3329         meaning and initialization of -fdelete-null-pointer-checks.
3330
3331 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3332
3333         PR middle-end/39701
3334         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3335
3336         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3337         here.
3338
3339         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3340
3341 2009-04-10  Chao-ying Fu  <fu@mips.com>
3342
3343         * doc/tm.texi (Instruction Output): Document
3344         TARGET_ASM_FINAL_POSTSCAN_INSN.
3345         * target.h (final_postscan_insn): New field in asm_out.
3346         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3347         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3348         * final.c (final_scan_insn): Call
3349         targetm.asm_out.final_postscan_insn after outputting
3350         an asm macro and a normal instruction.
3351
3352         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3353         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3354         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3355         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3356         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3357
3358 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3359
3360         PR middle-end/39701
3361         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3362         variables as non-NULL even with -fdelete-null-pointer-checks.
3363
3364 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3365
3366         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3367
3368 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
3369
3370         PR target/39678
3371         * config/i386/i386.c (classify_argument): Handle SCmode with
3372         (bit_offset % 64) != 0.
3373
3374 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
3375
3376         * doc/invoke.texi (Optimize Options): Add cross-reference to
3377         -Q --help=optimizers examples.
3378
3379 2009-04-10  Ben Elliston  <bje@au.ibm.com>
3380
3381         PR target/36800
3382         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
3383         regalign for the reg == fpr and TDmode case.
3384
3385 2009-04-09  David Ayers  <ayers@fsfe.org>
3386
3387         PR objc/29200
3388         * objc/objc-act.c (warn_with_method): Remove helper function.
3389         (check_duplicates): Call warning and inform directly.
3390         (really_start_method): Likewise.
3391
3392 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
3393
3394         * expmed.c (expand_divmod): Always use a comparison for a division
3395         by a large unsigned integer.
3396
3397         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
3398         for things others than variables or functions as nonzero.
3399
3400 2009-04-09  Nick Clifton  <nickc@redhat.com>
3401
3402         * unwind-compat.c: Change copyright header to refer to version
3403         3 of the GNU General Public License with version 3.1 of the
3404         GCC Runtime Library Exception and to point readers at the
3405         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
3406         * config/alpha/crtfastmath.c: Likewise.
3407         * config/alpha/linux-unwind.h: Likewise.
3408         * config/alpha/qrnnd.asm: Likewise.
3409         * config/alpha/vms-crt0-64.c: Likewise.
3410         * config/alpha/vms-crt0.c: Likewise.
3411         * config/alpha/vms-dwarf2.asm: Likewise.
3412         * config/alpha/vms-dwarf2eh.asm: Likewise.
3413         * config/alpha/vms-psxcrt0-64.c: Likewise.
3414         * config/alpha/vms-psxcrt0.c: Likewise.
3415         * config/alpha/vms_tramp.asm: Likewise.
3416         * config/arc/initfini.c: Likewise.
3417         * config/arc/lib1funcs.asm: Likewise.
3418         * config/arm/bpabi-v6m.S: Likewise.
3419         * config/arm/bpabi.S: Likewise.
3420         * config/arm/bpabi.c: Likewise.
3421         * config/arm/crti.asm: Likewise.
3422         * config/arm/crtn.asm: Likewise.
3423         * config/arm/ieee754-df.S: Likewise.
3424         * config/arm/ieee754-sf.S: Likewise.
3425         * config/arm/lib1funcs.asm: Likewise.
3426         * config/arm/libunwind.S: Likewise.
3427         * config/arm/linux-atomic.c: Likewise.
3428         * config/arm/mmintrin.h: Likewise.
3429         * config/arm/pr-support.c: Likewise.
3430         * config/arm/unaligned-funcs.c: Likewise.
3431         * config/arm/unwind-arm.c: Likewise.
3432         * config/arm/unwind-arm.h: Likewise.
3433         * config/avr/libgcc.S: Likewise.
3434         * config/bfin/crti.s: Likewise.
3435         * config/bfin/crtlibid.s: Likewise.
3436         * config/bfin/crtn.s: Likewise.
3437         * config/bfin/lib1funcs.asm: Likewise.
3438         * config/bfin/linux-unwind.h: Likewise.
3439         * config/cris/arit.c: Likewise.
3440         * config/cris/cris_abi_symbol.c: Likewise.
3441         * config/darwin-64.c: Likewise.
3442         * config/darwin-crt2.c: Likewise.
3443         * config/darwin-crt3.c: Likewise.
3444         * config/darwin.h: Likewise.
3445         * config/dbxelf.h: Likewise.
3446         * config/dfp-bit.c: Likewise.
3447         * config/dfp-bit.h: Likewise.
3448         * config/elfos.h: Likewise.
3449         * config/fixed-bit.c: Likewise.
3450         * config/fixed-bit.h: Likewise.
3451         * config/fp-bit.c: Likewise.
3452         * config/fp-bit.h: Likewise.
3453         * config/fr30/crti.asm: Likewise.
3454         * config/fr30/crtn.asm: Likewise.
3455         * config/fr30/lib1funcs.asm: Likewise.
3456         * config/freebsd-spec.h: Likewise.
3457         * config/frv/cmovd.c: Likewise.
3458         * config/frv/cmovh.c: Likewise.
3459         * config/frv/cmovw.c: Likewise.
3460         * config/frv/frvbegin.c: Likewise.
3461         * config/frv/frvend.c: Likewise.
3462         * config/frv/lib1funcs.asm: Likewise.
3463         * config/glibc-stdint.h: Likewise.
3464         * config/h8300/clzhi2.c: Likewise.
3465         * config/h8300/crti.asm: Likewise.
3466         * config/h8300/crtn.asm: Likewise.
3467         * config/h8300/ctzhi2.c: Likewise.
3468         * config/h8300/fixunssfsi.c: Likewise.
3469         * config/h8300/lib1funcs.asm: Likewise.
3470         * config/h8300/parityhi2.c: Likewise.
3471         * config/h8300/popcounthi2.c: Likewise.
3472         * config/i386/ammintrin.h: Likewise.
3473         * config/i386/att.h: Likewise.
3474         * config/i386/avxintrin.h: Likewise.
3475         * config/i386/biarch64.h: Likewise.
3476         * config/i386/bmmintrin.h: Likewise.
3477         * config/i386/cpuid.h: Likewise.
3478         * config/i386/cross-stdarg.h: Likewise.
3479         * config/i386/crtfastmath.c: Likewise.
3480         * config/i386/crtprec.c: Likewise.
3481         * config/i386/cygming-crtbegin.c: Likewise.
3482         * config/i386/cygming-crtend.c: Likewise.
3483         * config/i386/cygwin.asm: Likewise.
3484         * config/i386/emmintrin.h: Likewise.
3485         * config/i386/gmm_malloc.h: Likewise.
3486         * config/i386/gthr-win32.c: Likewise.
3487         * config/i386/i386.h: Likewise.
3488         * config/i386/immintrin.h: Likewise.
3489         * config/i386/linux-unwind.h: Likewise.
3490         * config/i386/linux64.h: Likewise.
3491         * config/i386/mm3dnow.h: Likewise.
3492         * config/i386/mmintrin-common.h: Likewise.
3493         * config/i386/mmintrin.h: Likewise.
3494         * config/i386/nmmintrin.h: Likewise.
3495         * config/i386/pmm_malloc.h: Likewise.
3496         * config/i386/pmmintrin.h: Likewise.
3497         * config/i386/smmintrin.h: Likewise.
3498         * config/i386/sol2-c1.asm: Likewise.
3499         * config/i386/sol2-ci.asm: Likewise.
3500         * config/i386/sol2-cn.asm: Likewise.
3501         * config/i386/sol2-gc1.asm: Likewise.
3502         * config/i386/tmmintrin.h: Likewise.
3503         * config/i386/unix.h: Likewise.
3504         * config/i386/w32-unwind.h: Likewise.
3505         * config/i386/wmmintrin.h: Likewise.
3506         * config/i386/x86-64.h: Likewise.
3507         * config/i386/x86intrin.h: Likewise.
3508         * config/i386/xmmintrin.h: Likewise.
3509         * config/ia64/crtbegin.asm: Likewise.
3510         * config/ia64/crtend.asm: Likewise.
3511         * config/ia64/crtfastmath.c: Likewise.
3512         * config/ia64/crti.asm: Likewise.
3513         * config/ia64/crtn.asm: Likewise.
3514         * config/ia64/fde-glibc.c: Likewise.
3515         * config/ia64/lib1funcs.asm: Likewise.
3516         * config/ia64/linux-unwind.h: Likewise.
3517         * config/ia64/quadlib.c: Likewise.
3518         * config/ia64/unwind-ia64.c: Likewise.
3519         * config/linux.h: Likewise.
3520         * config/m32c/m32c-lib1.S: Likewise.
3521         * config/m32c/m32c-lib2-trapv.c: Likewise.
3522         * config/m32c/m32c-lib2.c: Likewise.
3523         * config/m32r/initfini.c: Likewise.
3524         * config/m68hc11/larith.asm: Likewise.
3525         * config/m68hc11/m68hc11-crt0.S: Likewise.
3526         * config/m68k/cf.md: Likewise.
3527         * config/m68k/crti.s: Likewise.
3528         * config/m68k/crtn.s: Likewise.
3529         * config/m68k/lb1sf68.asm: Likewise.
3530         * config/m68k/linux-unwind.h: Likewise.
3531         * config/mcore/crti.asm: Likewise.
3532         * config/mcore/crtn.asm: Likewise.
3533         * config/mcore/lib1.asm: Likewise.
3534         * config/mips/linux-unwind.h: Likewise.
3535         * config/mips/loongson.h: Likewise.
3536         * config/mips/mips16.S: Likewise.
3537         * config/mmix/crti.asm: Likewise.
3538         * config/mmix/crtn.asm: Likewise.
3539         * config/pa/fptr.c: Likewise.
3540         * config/pa/hpux-unwind.h: Likewise.
3541         * config/pa/lib2funcs.asm: Likewise.
3542         * config/pa/linux-atomic.c: Likewise.
3543         * config/pa/linux-unwind.h: Likewise.
3544         * config/pa/milli64.S: Likewise.
3545         * config/pa/quadlib.c: Likewise.
3546         * config/pa/stublib.c: Likewise.
3547         * config/picochip/libgccExtras/adddi3.asm: Likewise.
3548         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
3549         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
3550         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
3551         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
3552         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
3553         * config/picochip/libgccExtras/divmod15.asm: Likewise.
3554         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
3555         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
3556         * config/picochip/libgccExtras/longjmp.asm: Likewise.
3557         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
3558         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
3559         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
3560         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
3561         * config/picochip/libgccExtras/setjmp.asm: Likewise.
3562         * config/picochip/libgccExtras/subdi3.asm: Likewise.
3563         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
3564         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
3565         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
3566         * config/rs6000/750cl.h: Likewise.
3567         * config/rs6000/altivec.h: Likewise.
3568         * config/rs6000/biarch64.h: Likewise.
3569         * config/rs6000/crtresfpr.asm: Likewise.
3570         * config/rs6000/crtresgpr.asm: Likewise.
3571         * config/rs6000/crtresxfpr.asm: Likewise.
3572         * config/rs6000/crtresxgpr.asm: Likewise.
3573         * config/rs6000/crtsavfpr.asm: Likewise.
3574         * config/rs6000/crtsavgpr.asm: Likewise.
3575         * config/rs6000/darwin-asm.h: Likewise.
3576         * config/rs6000/darwin-fallback.c: Likewise.
3577         * config/rs6000/darwin-fpsave.asm: Likewise.
3578         * config/rs6000/darwin-ldouble.c: Likewise.
3579         * config/rs6000/darwin-tramp.asm: Likewise.
3580         * config/rs6000/darwin-unwind.h: Likewise.
3581         * config/rs6000/darwin-vecsave.asm: Likewise.
3582         * config/rs6000/darwin-world.asm: Likewise.
3583         * config/rs6000/e500crtres32gpr.asm: Likewise.
3584         * config/rs6000/e500crtres64gpr.asm: Likewise.
3585         * config/rs6000/e500crtres64gprctr.asm: Likewise.
3586         * config/rs6000/e500crtrest32gpr.asm: Likewise.
3587         * config/rs6000/e500crtrest64gpr.asm: Likewise.
3588         * config/rs6000/e500crtresx32gpr.asm: Likewise.
3589         * config/rs6000/e500crtresx64gpr.asm: Likewise.
3590         * config/rs6000/e500crtsav32gpr.asm: Likewise.
3591         * config/rs6000/e500crtsav64gpr.asm: Likewise.
3592         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
3593         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
3594         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
3595         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
3596         * config/rs6000/eabi-ci.asm: Likewise.
3597         * config/rs6000/eabi-cn.asm: Likewise.
3598         * config/rs6000/eabi.asm: Likewise.
3599         * config/rs6000/linux-unwind.h: Likewise.
3600         * config/rs6000/linux64.h: Likewise.
3601         * config/rs6000/paired.h: Likewise.
3602         * config/rs6000/paired.md: Likewise.
3603         * config/rs6000/ppc64-fp.c: Likewise.
3604         * config/rs6000/ppu_intrinsics.h: Likewise.
3605         * config/rs6000/rs6000.h: Likewise.
3606         * config/rs6000/si2vmx.h: Likewise.
3607         * config/rs6000/sol-ci.asm: Likewise.
3608         * config/rs6000/sol-cn.asm: Likewise.
3609         * config/rs6000/spe.h: Likewise.
3610         * config/rs6000/spu2vmx.h: Likewise.
3611         * config/rs6000/sysv4.h: Likewise.
3612         * config/rs6000/tramp.asm: Likewise.
3613         * config/rs6000/vec_types.h: Likewise.
3614         * config/s390/linux-unwind.h: Likewise.
3615         * config/s390/tpf-unwind.h: Likewise.
3616         * config/score/crti.asm: Likewise.
3617         * config/score/crtn.asm: Likewise.
3618         * config/sh/crt1.asm: Likewise.
3619         * config/sh/crti.asm: Likewise.
3620         * config/sh/crtn.asm: Likewise.
3621         * config/sh/divtab-sh4-300.c: Likewise.
3622         * config/sh/divtab-sh4.c: Likewise.
3623         * config/sh/divtab.c: Likewise.
3624         * config/sh/lib1funcs-4-300.asm: Likewise.
3625         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
3626         * config/sh/lib1funcs.asm: Likewise.
3627         * config/sh/lib1funcs.h: Likewise.
3628         * config/sh/linux-atomic.asm: Likewise.
3629         * config/sh/linux-unwind.h: Likewise.
3630         * config/sh/shmedia.h: Likewise.
3631         * config/sh/sshmedia.h: Likewise.
3632         * config/sh/ushmedia.h: Likewise.
3633         * config/sparc/crtfastmath.c: Likewise.
3634         * config/sparc/linux-unwind.h: Likewise.
3635         * config/sparc/sol2-c1.asm: Likewise.
3636         * config/sparc/sol2-ci.asm: Likewise.
3637         * config/sparc/sol2-cn.asm: Likewise.
3638         * config/spu/divmodti4.c: Likewise.
3639         * config/spu/divv2df3.c: Likewise.
3640         * config/spu/float_disf.c: Likewise.
3641         * config/spu/float_unsdidf.c: Likewise.
3642         * config/spu/float_unsdisf.c: Likewise.
3643         * config/spu/float_unssidf.c: Likewise.
3644         * config/spu/mfc_multi_tag_release.c: Likewise.
3645         * config/spu/mfc_multi_tag_reserve.c: Likewise.
3646         * config/spu/mfc_tag_release.c: Likewise.
3647         * config/spu/mfc_tag_reserve.c: Likewise.
3648         * config/spu/mfc_tag_table.c: Likewise.
3649         * config/spu/multi3.c: Likewise.
3650         * config/spu/spu_internals.h: Likewise.
3651         * config/spu/spu_intrinsics.h: Likewise.
3652         * config/spu/spu_mfcio.h: Likewise.
3653         * config/spu/vec_types.h: Likewise.
3654         * config/spu/vmx2spu.h: Likewise.
3655         * config/stormy16/stormy16-lib2.c: Likewise.
3656         * config/svr4.h: Likewise.
3657         * config/sync.c: Likewise.
3658         * config/v850/lib1funcs.asm: Likewise.
3659         * config/vxlib-tls.c: Likewise.
3660         * config/vxlib.c: Likewise.
3661         * config/vxworks-dummy.h: Likewise.
3662         * config/xtensa/crti.asm: Likewise.
3663         * config/xtensa/crtn.asm: Likewise.
3664         * config/xtensa/ieee754-df.S: Likewise.
3665         * config/xtensa/ieee754-sf.S: Likewise.
3666         * config/xtensa/lib1funcs.asm: Likewise.
3667         * config/xtensa/lib2funcs.S: Likewise.
3668         * config/xtensa/linux-unwind.h: Likewise.
3669         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
3670         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
3671         * coretypes.h: Likewise.
3672         * crtstuff.c: Likewise.
3673         * defaults.h: Likewise.
3674         * dwarf2.h: Likewise.
3675         * emutls.c: Likewise.
3676         * gbl-ctors.h: Likewise.
3677         * gcov-io.h: Likewise.
3678         * ginclude/float.h: Likewise.
3679         * ginclude/iso646.h: Likewise.
3680         * ginclude/stdarg.h: Likewise.
3681         * ginclude/stdbool.h: Likewise.
3682         * ginclude/stddef.h: Likewise.
3683         * ginclude/stdfix.h: Likewise.
3684         * ginclude/stdint-gcc.h: Likewise.
3685         * ginclude/tgmath.h: Likewise.
3686         * gthr-aix.h: Likewise.
3687         * gthr-dce.h: Likewise.
3688         * gthr-gnat.c: Likewise.
3689         * gthr-gnat.h: Likewise.
3690         * gthr-lynx.h: Likewise.
3691         * gthr-mipssde.h: Likewise.
3692         * gthr-nks.h: Likewise.
3693         * gthr-posix.c: Likewise.
3694         * gthr-posix.h: Likewise.
3695         * gthr-posix95.h: Likewise.
3696         * gthr-rtems.h: Likewise.
3697         * gthr-single.h: Likewise.
3698         * gthr-solaris.h: Likewise.
3699         * gthr-tpf.h: Likewise.
3700         * gthr-vxworks.h: Likewise.
3701         * gthr-win32.h: Likewise.
3702         * gthr.h: Likewise.
3703         * libgcc2.c: Likewise.
3704         * libgcc2.h: Likewise.
3705         * libgcov.c: Likewise.
3706         * tsystem.h: Likewise.
3707         * typeclass.h: Likewise.
3708         * unwind-c.c: Likewise.
3709         * unwind-compat.h: Likewise.
3710         * unwind-dw2-fde-compat.c: Likewise.
3711         * unwind-dw2-fde-darwin.c: Likewise.
3712         * unwind-dw2-fde-glibc.c: Likewise.
3713         * unwind-dw2-fde.c: Likewise.
3714         * unwind-dw2-fde.h: Likewise.
3715         * unwind-dw2.c: Likewise.
3716         * unwind-dw2.h: Likewise.
3717         * unwind-generic.h: Likewise.
3718         * unwind-pe.h: Likewise.
3719         * unwind-sjlj.c: Likewise.
3720         * unwind.inc: Likewise.
3721         * config/arm/neon-gen.ml: Change generated copyright header to
3722         refer to version 3 of the GNU General Public License with
3723         version 3.1 of the GCC Runtime Library Exception and to point
3724         readers at the COPYING3 and COPYING3.RUNTIME files and the
3725         FSF's license web page.
3726         * config/arm/arm_neon.h: Regenerate.
3727
3728 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
3729
3730         * config/cris/cris.md: Change copyright header to refer to version
3731         3 of the GNU General Public License.
3732         * doc/install.texi2html: Change copyright header to refer to version
3733         3 of the GNU General Public License and to point readers at the
3734         COPYING3 file and the FSF's license web page.
3735         * config/vax/linux.h: Likewise.
3736
3737 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
3738
3739         * config/i386/i386.md (cmpcc): New.
3740         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
3741         (sync_compare_and_swap_cc*): Delete.
3742
3743         * config/s390/s390.c (s390_compare_emitted): Remove.
3744         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
3745         s390_compare_emitted used to be handled.  Assert that modes match.
3746         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
3747         refer to sync_compare_and_swap_ccsi.
3748         * config/s390/s390.h (s390_compare_emitted): Remove.
3749         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
3750         instead of s390_compare_emitted.
3751         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
3752         instead of s390_compare_emitted.
3753         * config/s390/s390.md (cmpcc): New.
3754         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
3755         CC_REGNUM, do not pretend it's set.
3756         (sync_compare_and_swap_cc*): Delete.
3757         * config/s390/predicates.md (cc_reg_operand): New.
3758
3759         * expr.c (sync_compare_and_swap_cc): Delete.
3760         * optabs.h (sync_compare_and_swap_cc): Delete.
3761         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
3762         is being used with can_compare_p.
3763         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
3764         (find_cc_set): New.
3765         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
3766         look for a MODE_CC set instead.  Use emit_store_flag.
3767         (expand_compare_and_swap_loop): Likewise, with some additional
3768         complication to avoid a force_reg when useless.  Use
3769         emit_cmp_and_jump_insns.
3770         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
3771         * doc/md.texi (sync_compare_and_swap_cc): Merge with
3772         sync_compare_and_swap documentation.
3773
3774 2009-04-09  Jan Hubicka  <jh@suse.cz>
3775
3776         * except.c (find_prev_try): Break out from ....
3777         (duplicate_eh_regions): ... here; properly update prev_try pointers
3778         when duplication part of tree.
3779         (dump_eh_tree): Improve dumping.
3780         (verify_eh_region): New.
3781         (verify_eh_tree): Use it.
3782
3783 2009-04-06  Richard Guenther  <rguenther@suse.de>
3784
3785         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
3786         &ARRAY addresses by adjusting their types and prepending
3787         a conversion.
3788         * tree-cfg.c (verify_gimple_assign_single): Verify that
3789         addresses are correct.
3790
3791 2009-04-09  Richard Guenther  <rguenther@suse.de>
3792
3793         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
3794         indices into an array reference if possible.
3795         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3796         Fold POINTER_PLUS_EXPR statements with invariant address.
3797
3798 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
3799
3800         PR target/39634
3801         * config.gcc (powerpc64-*-linux*): Always build biarch.
3802
3803 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
3804
3805         PR c/39613
3806         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
3807         it and pedwarn if this results in an INTEGER_CST.
3808
3809 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3810
3811         * doc/install.texi: Update minimum GMP version.  Remove obsolete
3812         text in MPFR section.
3813
3814 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
3815
3816         * dwarf2out.c (class_scope_p): New static inline.
3817         (class_or_namespace_scope_p): Use it.
3818         (gen_variable_die): Use DW_TAG_member tag for static data member
3819         declarations instead of DW_TAG_variable.
3820
3821         PR middle-end/39573
3822         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
3823         variables.
3824
3825 2009-04-08  Richard Guenther  <rguenther@suse.de>
3826
3827         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
3828         valueize random data.
3829
3830 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
3831
3832         * config.gcc (aix tm_file):  Add aix-stdint.h.
3833         (aix tm clause use_gcc_stdint):  Set to wrap.
3834         * config/rs6000/aix-stdint.h:  New file.
3835
3836 2009-04-08  Richard Guenther  <rguenther@suse.de>
3837
3838         PR middle-end/36291
3839         * tree-dfa.c (add_referenced_var): Do not recurse into
3840         global initializers.
3841         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
3842         exposed variables.
3843         (fold_const_aggregate_ref): Likewise.
3844
3845 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
3846
3847         * recog.c (ordered_comparison_operator): New.
3848         * gensupport.c (std_preds): Add it.
3849         * doc/md.texi (Machine-Independent Predicates): Document it.
3850
3851 2009-04-08  Jan Hubicka  <jh@suse.cz>
3852
3853         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
3854         * function.h (rtl_eh): Remove exception_handler_label_map.
3855         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
3856         remove_exception_handler_label, for_each_eh_label_1): Remove.
3857         (rtl_remove_unreachable_regions): Remove.
3858         (convert_from_eh_region_ranges): Do not remove unreachable regions.
3859         (find_exception_handler_labels): Don't build the hashtable.
3860         (maybe_remove_eh_handler): Remove.
3861         (for_each_eh_label): Rewrite to walk the tree.
3862         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
3863         * except.h (maybe_remove_eh_handler): Remove.
3864         * passes.c (init_optimization_passes): Schedule second EH cleanup
3865         before out-of-ssa.
3866         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
3867         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
3868
3869 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
3870
3871         * genoutput.c (validate_optab_operands): New.
3872         (gen_insn, gen_expand): Call it.
3873
3874         * genflags.c (gen_insn): Detect misused iterators.
3875         (main): Pass line_no to gen_insn, exit with status 1 on error.
3876
3877         * genextract.c (line_no): Make global.
3878         (VEC_safe_set_locstr): Change assertion to error message.
3879         (main): Exit with status 1 on error.
3880
3881 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
3882
3883         PR c/39614
3884         PR c/39673
3885         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
3886         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
3887         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
3888         * c-convert.c (convert): Do not call fold on results of conversion
3889         functions when the result is a C_MAYBE_CONST_EXPR.
3890         * c-parser.c (c_parser_postfix_expression): Do not fold condition
3891         of __builtin_choose_expr.
3892         * c-typeck.c (remove_c_maybe_const_expr): New.
3893         (build_unary_op, build_conditional_expr, build_compound_expr,
3894         build_binary_op, c_objc_common_truthvalue_conversion): Call
3895         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
3896         integer operands.
3897
3898 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
3899
3900         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
3901         CODE to produce a new one. Add a prototype to use fold_convert_const
3902
3903 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
3904
3905         PR bootstrap/39660
3906         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
3907         mix declarations and code.
3908
3909 2009-04-08  Ben Elliston  <bje@au.ibm.com>
3910
3911         * gcc.c: Replace `CC' with `GCC' throughout.
3912
3913 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
3914
3915         * doc/invoke.texi: Document Atom support.
3916
3917 2009-04-07  Jason Merrill  <jason@redhat.com>
3918
3919         PR c++/25185
3920         * c-common.h, c-common.c: Add flag_pretty_templates.
3921         * c-opts.c (c_common_handle_option): Set it.
3922         * c.opt: Add -fno-pretty-templates.
3923         * doc/invoke.texi (C++ Dialect Options): Likewise.
3924
3925 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
3926
3927         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
3928         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
3929         (ia64_expand_builtin): Likewise.
3930
3931 2009-04-07  Martin Jambor  <mjambor@suse.cz>
3932
3933         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
3934         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
3935         ADDR_EXPRS are include too.
3936
3937 2009-04-07  Richard Guenther  <rguenther@suse.de>
3938
3939         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
3940         decls are only used if passes as parameters or if they are
3941         local statics and the call is not to a builtin.
3942         (call_may_clobber_ref_p_1): Likewise.
3943
3944 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3945
3946         * expr.c (do_store_flag): Remove last argument.  Simplify code
3947         to avoid duplication of tests already done by can_compare_p.
3948         (expand_expr_real_1): Adjust caller.
3949
3950 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3951
3952         * optabs.c (can_compare_p): Test the predicate of a
3953         cbranch and cstore pattern.
3954
3955 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3956
3957         * expr.c (convert_move): Use emit_store_flag instead of
3958         "emulating" it.
3959
3960 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3961
3962         * config/i386/i386.c (ix86_compare_emitted): Remove.
3963         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
3964         ix86_compare_op0 like ix86_compare_emitted used to be handled.
3965         * config/i386/i386.h (ix86_compare_emitted): Remove.
3966         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
3967         instead of ix86_compare_emitted.
3968         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
3969
3970 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
3971
3972         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
3973         Add t-sysroot-suffix to tmake_file.
3974         * config/print-sysroot-suffix.sh: New file.
3975         * config/t-sysroot-suffix: New file.
3976
3977 2009-04-07  Ben Elliston  <bje@au.ibm.com>
3978
3979         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
3980         as the latter produces a warning when the target does not support
3981         infinity.
3982
3983 2009-04-07  Ben Elliston  <bje@au.ibm.com>
3984
3985         * dfp.c: Replace type punning assignments with memcpy throughout.
3986         * Makefile.in (dfp.o-warn): Remove.
3987
3988 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
3989
3990         PR target/39634
3991         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
3992         Include soft-fp/t-softfp after rs6000/t-linux64.
3993
3994 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3995
3996         * stor-layout.c (set_sizetype): Use the full precision of their
3997         machine mode for bitsize types.
3998
3999 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
4000
4001         * config/i386/i386.md: Revert 2 accidental checkins.
4002
4003 2009-04-06  Joey Ye  <joey.ye@intel.com>
4004             Xuepeng Guo  <xuepeng.guo@intel.com>
4005             H.J. Lu  <hongjiu.lu@intel.com>
4006
4007         Atom pipeline model, tuning and insn selection.
4008         * config.gcc (atom): Add atom config options and target.
4009
4010         * config/i386/atom.md: New.
4011
4012         * config/i386/i386.c (atom_cost): New cost.
4013         (m_ATOM): New macro flag.
4014         (initial_ix86_tune_features): Set m_ATOM.
4015         (x86_accumulate_outgoing_args): Likewise.
4016         (x86_arch_always_fancy_math_387): Likewise.
4017         (processor_target): Add Atom cost.
4018         (cpu_names): Add Atom cpu name.
4019         (override_options): Set Atom ISA.
4020         (ix86_issue_rate): New case PROCESSOR_ATOM.
4021         (ix86_adjust_cost): Likewise.
4022
4023         * config/i386/i386.h (TARGET_ATOM): New target macro.
4024         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
4025         (TARGET_OPT_AGU): New target option.
4026         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
4027         (processor_type): Add PROCESSOR_ATOM.
4028
4029         * config/i386/i386.md (cpu): Add new value "atom".
4030         (use_carry, movu): New attr.
4031         (atom.md): Include atom.md.
4032         (adddi3_carry_rex64): Set attr "use_carry".
4033         (addqi3_carry): Likewise.
4034         (addhi3_carry): Likewise.
4035         (addsi3_carry): Likewise.
4036         (*addsi3_carry_zext): Likewise.
4037         (subdi3_carry_rex64): Likewise.
4038         (subqi3_carry): Likewise.
4039         (subhi3_carry): Likewise.
4040         (subsi3_carry): Likewise.
4041         (x86_movdicc_0_m1_rex64): Likewise.
4042         (*x86_movdicc_0_m1_se): Likewise.
4043         (x86_movsicc_0_m1): Likewise.
4044         (*x86_movsicc_0_m1_se): Likewise.
4045         (*adddi_1_rex64): Emit add insn as much as possible.
4046         (*addsi_1): Likewise.
4047         (return_internal): Set atom_unit.
4048         (return_internal_long): Likewise.
4049         (return_pop_internal): Likewise.
4050         (*rcpsf2_sse): Set atom_sse_attr attr.
4051         (*qrt<mode>2_sse): Likewise.
4052         (*prefetch_sse): Likewise.
4053
4054         * config/i386/i386-c.c (ix86_target_macros_internal): New case
4055         PROCESSOR_ATOM.
4056         (ix86_target_macros_internal): Likewise.
4057
4058         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
4059         (*prefetch_sse_rex): Likewise.
4060         (sse_rcpv4sf2): Likewise.
4061         (sse_vmrcpv4sf2): Likewise.
4062         (sse_sqrtv4sf2): Likewise.
4063         (<sse>_vmsqrt<mode>2): Likewise.
4064         (sse_ldmxcsr): Likewise.
4065         (sse_stmxcsr): Likewise.
4066         (*sse_sfence): Likewise.
4067         (sse2_clflush): Likewise.
4068         (*sse2_mfence): Likewise.
4069         (*sse2_lfence): Likewise.
4070         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
4071         (<sse>_movup<ssemodesuffixf2c>): Likewise.
4072         (avx_movdqu<avxmodesuffix>): Likewise.
4073         (avx_lddqu<avxmodesuffix>): Likewise.
4074         (sse2_movntv2di): Change attr "type" to "ssemov".
4075         (sse2_movntsi): Likewise.
4076         (rsqrtv8sf2): Change attr "type" to "sseadd".
4077         (sse3_addsubv2df3): Set attr "atom_unit".
4078         (sse3_h<plusminus_insn>v4sf3): Likewise.
4079         (*sse2_pmaddwd): Likewise.
4080         (*vec_extractv2di_1_rex64): Likewise.
4081         (*vec_extractv2di_1_avx): Likewise.
4082         (sse2_psadbw): Likewise.
4083         (ssse3_phaddwv8hi3): Likewise.
4084         (ssse3_phaddwv4hi3): Likewise.
4085         (ssse3_phadddv4si3): Likewise.
4086         (ssse3_phadddv2si3): Likewise.
4087         (ssse3_phaddswv8hi3): Likewise.
4088         (ssse3_phaddswv4hi3): Likewise.
4089         (ssse3_phsubwv8hi3): Likewise.
4090         (ssse3_phsubwv4hi3): Likewise.
4091         (ssse3_phsubdv4si3): Likewise.
4092         (ssse3_phsubdv2si3): Likewise.
4093         (ssse3_phsubswv8hi3): Likewise.
4094         (ssse3_phsubswv4hi3): Likewise.
4095         (ssse3_pmaddubsw128): Likewise.
4096         (sse3_pmaddubsw: Likewise.
4097         (ssse3_palignrti): Likewise.
4098         (ssse3_palignrdi): Likewise.
4099
4100 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
4101
4102         * doc/install.texi (Specific): Fix two cross-references to MinGW.
4103
4104 2009-04-06  Richard Guenther  <rguenther@suse.de>
4105
4106         PR tree-optimization/28868
4107         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
4108         of which PHI results we inserted.
4109         (insert_into_preds_of_block): Record inserted PHIs.
4110         (eliminate): Eliminate redundant PHI nodes.
4111         (init_pre): Init inserted_phi_names.
4112
4113 2009-04-06  Richard Guenther  <rguenther@suse.de>
4114
4115         PR tree-optimization/39643
4116         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
4117         IMAGPART_EXPRs of complex constants.
4118         (execute_fold_all_builtins): If we folded a call queue
4119         TODO_update_address_taken.
4120
4121 2009-04-06  Jan Hubicka  <jh@suse.cz>
4122
4123         PR middle-end/39659
4124         * except.c (remove_unreachable_regions): Propagate may_contain_throw
4125         flag.
4126
4127 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
4128
4129         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
4130         delay slot.
4131         (ic_invalidate_array): Likewise.
4132
4133 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
4134
4135         * calls.c (emit_library_call_value_1): Fix a problem with parameter
4136         alignment for library calls.
4137
4138 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
4139
4140         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
4141         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
4142         * config/i386/mingw-stdint.h:  New file.
4143
4144 2009-04-05  Richard Guenther  <rguenther@suse.de>
4145
4146         PR tree-optimization/39648
4147         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
4148         our &A vs. &A[0] IL deficiencies.
4149
4150 2009-04-04  Jan Hubicka  <jh@suse.cz>
4151
4152         * except.c (sjlj_find_directly_reachable_regions): Be ready for
4153         removed toplevel regions.
4154         (sjlj_mark_call_sites): Likewise.
4155
4156 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
4157
4158         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
4159         (cygwin tm clause use_gcc_stdint):  Set to wrap.
4160         * config/i386/cygwin-stdint.h:  New file.
4161
4162 2009-04-04  Richard Guenther  <rguenther@suse.de>
4163
4164         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
4165         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
4166         single-argument PHIs if we are in loop-closed SSA form.
4167         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
4168         for the pre-condition.
4169         (slpeel_tree_peel_loop_to_edge): Likewise.
4170         (vect_build_loop_niters): Take an optional sequence to append stmts.
4171         (vect_generate_tmps_on_preheader): Likewise.
4172         (vect_do_peeling_for_loop_bound): Take extra guards for the
4173         pre-condition.
4174         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
4175         the cost model check.
4176         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
4177         guards if we are going to peel.  Do not apply versioning in that case.
4178         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
4179         (vect_do_peeling_for_loop_bound): Likewise.
4180         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
4181         loop bound only record extra pre-conditions, do not apply loop
4182         versioning.
4183
4184 2009-04-04  Richard Guenther  <rguenther@suse.de>
4185
4186         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
4187         renaming code.
4188
4189 2009-04-04  Jan Hubicka  <jh@suse.cz>
4190
4191         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
4192         last_basic_block for size of bb->index indexed array.
4193         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
4194         compute_out, link_btr_uses, build_btr_def_use_webs,
4195         build_btr_def_use_webs, migrate_btr_defs): Likewise.
4196
4197 2009-04-04  Jan Hubicka  <jh@suse.cz>
4198
4199         * except.c (remove_eh_handler_and_replace): Break out from ...
4200         (remove_eh_handler): ... here.
4201         (bring_to_root): New function.
4202         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
4203         handled ones, bring others to root of tree.
4204
4205 2009-04-04  Jan Hubicka  <jh@suse.cz>
4206
4207         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
4208         (all_phis_safe_to_merge): New function.
4209         (update_info): New structure.
4210         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
4211         (cleanup_empty_eh): Update SSA if possible.
4212
4213 2009-04-04  Richard Guenther  <rguenther@suse.de>
4214
4215         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
4216         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
4217         (append_vuse): Likewise.
4218
4219 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
4220
4221         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
4222         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
4223         instead of REG_UNSAVED for DW_CFA_undefined.
4224         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
4225         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
4226         outermost frame.
4227
4228 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
4229
4230         PR target/39501
4231         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
4232         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
4233         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
4234
4235 2009-04-04  Richard Guenther  <rguenther@suse.de>
4236
4237         PR tree-optimization/8781
4238         PR tree-optimization/37892
4239         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
4240         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
4241         (valueize_refs): Call it for *& valueizations.
4242         (shared_reference_ops_from_ref): Rename to ...
4243         (valueize_shared_reference_ops_from_ref): ... this and valueize.
4244         (shared_reference_ops_from_call): Rename to ...
4245         (valueize_shared_reference_ops_from_call): ... this and valueize.
4246         (vn_reference_lookup): Update.
4247         (visit_reference_op_call): Likewise.
4248         * tree-ssa-pre.c (phi_translate_1): Fold *&.
4249         (eliminate): Value-replace the call address in call statements.
4250
4251 2009-04-04  Richard Guenther  <rguenther@suse.de>
4252
4253         PR tree-optimization/39636
4254         * tree-ssa-forwprop.c
4255         (forward_propagate_addr_into_variable_array_index): Check for
4256         GIMPLE_ASSIGN before accessing the rhs code.
4257
4258 2009-04-03  Jason Merrill  <jason@redhat.com>
4259
4260         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
4261
4262 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
4263
4264         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
4265         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
4266         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
4267         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
4268         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
4269         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
4270         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
4271         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
4272         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
4273         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
4274         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
4275         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
4276         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
4277         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
4278         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
4279         Use fr_reg_or_fp01_operand instead of fr_register_operand
4280
4281         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
4282         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
4283         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
4284
4285 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
4286
4287         PR rtl-optimization/39607
4288         PR rtl-optimization/39631
4289
4290         Revert:
4291
4292         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4293         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4294         instead of DF_LR_OUT.
4295         * ira-lives.c (process_bb_node_lives): Ditto.
4296         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4297         instead of DF_LR_{OUT,IN}.
4298         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4299         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4300
4301 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
4302
4303         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
4304         (execute_lower_omp): Always run but take the short way out if -fopenmp
4305         is not given.
4306         (gate_lower_omp): Remove, forcing the pass manager to always run the
4307         pass and always set PROP_gimple_lomp.
4308         (pass_lower_omp): Remove gate function.
4309         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
4310         PROP_trees.  Instead, require it.
4311         * ipa-cp.c (pass_ipa_cp): Likewise.
4312         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
4313         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
4314         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
4315         and PROP_gimple_leh.
4316
4317 2009-04-03  Richard Guenther  <rguenther@suse.de>
4318
4319         PR middle-end/13146
4320         PR tree-optimization/23940
4321         PR tree-optimization/33237
4322         PR middle-end/33974
4323         PR middle-end/34093
4324         PR tree-optimization/36201
4325         PR tree-optimization/36230
4326         PR tree-optimization/38049
4327         PR tree-optimization/38207
4328         PR tree-optimization/38230
4329         PR tree-optimization/38301
4330         PR tree-optimization/38585
4331         PR middle-end/38895
4332         PR tree-optimization/38985
4333         PR tree-optimization/39299
4334         * tree-ssa-structalias.h: Remove.
4335         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
4336         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
4337         (struct vuse_element_d): Remove.
4338         (struct vuse_vec_d): Likewise.
4339         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
4340         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
4341         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
4342         VUSE_ELEMENT_VAR): Likewise.
4343         (struct voptype_d): Likewise.
4344         (NUM_VOP_FREE_BUCKETS): Likewise.
4345         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
4346         (struct stmt_operands_d): Remove.
4347         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
4348         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
4349         VDEF_NUM, VDEF_VECT): Likewise.
4350         (copy_virtual_operands): Remove.
4351         (operand_build_cmp): Likewise.
4352         (create_ssa_artificial_load_stmt): Likewise.
4353         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
4354         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
4355         vuse_index and mayuse_index members.  Pack and move done and iter_type
4356         members to the front.
4357         (SSA_OP_VMAYUSE): Remove.
4358         (SSA_OP_VIRTUAL_USES): Adjust.
4359         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
4360         (unlink_stmt_vdef): Declare.
4361         (add_to_addressable_set): Remove.
4362         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
4363         (vrp_visit_stmt): Likewise.
4364         * doc/tree-ssa.texi (Alias analysis): Update.
4365         * doc/invoke.texi (max-aliased-vops): Remove docs.
4366         (avg-aliased-vops): Likewise.
4367         * tree-into-ssa.c (syms_to_rename): Remove.
4368         (need_to_update_vops_p): Likewise.
4369         (need_to_initialize_update_ssa_p): Rename to ...
4370         (update_ssa_initialized_fn): ... this.  Track function we are
4371         initialized for.
4372         (symbol_marked_for_renaming): Simplify.
4373         (add_new_name_mapping): Do not set need_to_update_vops_p.
4374         (dump_currdefs): Use SYMS_TO_RENAME.
4375         (rewrite_update_stmt): Always walk all uses/defs.
4376         (dump_update_ssa): Adjust.
4377         (init_update_ssa): Take function argument.  Track what we are
4378         initialized for.
4379         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
4380         (create_new_def_for): Initialize for cfun, assert we are initialized
4381         for cfun.
4382         (mark_sym_for_renaming): Simplify.
4383         (mark_set_for_renaming): Do not initialize update-ssa.
4384         (need_ssa_update_p): Simplify.  Take function argument.
4385         (name_mappings_registered_p): Assert we ask for the correct function.
4386         (name_registered_for_update_p): Likewise.
4387         (ssa_names_to_replace): Likewise.
4388         (release_ssa_name_after_update_ssa): Likewise.
4389         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
4390         (dump_decl_set): Do not print a newline.
4391         (debug_decl_set): Do it here.
4392         (dump_update_ssa): And here.
4393         * tree-ssa-loop-im.c (move_computations): Adjust.
4394         (movement_possibility): Likewise.
4395         (determine_max_movement): Likewise.
4396         (gather_mem_refs_stmt): Likewise.
4397         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
4398         or NAME_MEMORY_TAG.
4399         * tree-complex.c (update_all_vops): Remove.
4400         (expand_complex_move): Adjust.
4401         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
4402         Simplify test for memory referencing statement.  Exclude
4403         non-invariant ADDR_EXPRs.
4404         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
4405         * tree-loop-distribution.c (generate_memset_zero): Adjust.
4406         (rdg_flag_uses): Likewise.
4407         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
4408         related code.
4409         (tree_optimize_tail_calls_1): Also split the
4410         edge from the entry block if we have degenerate PHI nodes in
4411         the first basic block.
4412         * tree.c (init_ttree): Remove memory-tag related code.
4413         (tree_code_size): Likewise.
4414         (tree_node_structure): Likewise.
4415         (build7_stat): Re-write to be build6_stat.
4416         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
4417         (SSA_VAR_P): Adjust.
4418         (struct tree_memory_tag): Remove.
4419         (struct tree_memory_partition_tag): Likewise.
4420         (union tree_node): Adjust.
4421         (build7): Re-write to be build6.
4422         * tree-pass.h (pass_reset_cc_flags): Remove.
4423         (TODO_update_address_taken): New flag.
4424         (pass_simple_dse): Remove.
4425         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
4426         * params.h (MAX_ALIASED_VOPS): Remove.
4427         (AVG_ALIASED_VOPS): Likewise.
4428         * omp-low.c (expand_omp_taskreg): Update SSA form.
4429         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
4430         aliases the lhs in a copy stmt.
4431         * tree-ssa-dse.c (struct address_walk_data): Remove.
4432         (memory_ssa_name_same): Likewise.
4433         (memory_address_same): Likewise.
4434         (get_kill_of_stmt_lhs): Likewise.
4435         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
4436         unused stores.  Look through PHI nodes into post-dominated regions.
4437         (dse_optimize_stmt): Simplify.  Properly remove stores.
4438         (tree_ssa_dse): Compute dominators.
4439         (execute_simple_dse): Remove.
4440         (pass_simple_dse): Likewise.
4441         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
4442         gimple_loaded_syms and gimple_stored_syms computation.
4443         * toplev.c (dump_memory_report): Dump alias and pta stats.
4444         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
4445         (vn_reference_eq): Likewise.
4446         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
4447         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
4448         valueize_vuses): Remove.
4449         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
4450         (get_def_ref_stmt_vuse): ... this.
4451         (vn_reference_lookup_2): New function.
4452         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
4453         walking equivalent vuses.  Simplify.
4454         (vn_reference_lookup): Likewise.
4455         (vn_reference_insert): Likewise.
4456         (vn_reference_insert_pieces): Likewise.
4457         (visit_reference_op_call): Simplify.
4458         (visit_reference_op_load): Likewise.
4459         (visit_reference_op_store): Likewise.
4460         (init_scc_vn): Remove shared_lookup_vuses initialization.
4461         (free_scc_vn): Remove shared_lookup_vuses freeing.
4462         (sort_vuses, sort_vuses_heap): Remove.
4463         (get_ref_from_reference_ops): Export.
4464         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
4465         vector with single vuse pointer.
4466         (vn_reference_lookup_pieces, vn_reference_lookup,
4467         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
4468         (shared_vuses_from_stmt): Remove.
4469         (get_ref_from_reference_ops): Declare.
4470         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
4471         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
4472         memory-tag related code.
4473         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
4474         (likely_value): Add comment, skip static-chain of call statements.
4475         (surely_varying_stmt_p): Adjust.
4476         (gimplify_and_update_call_from_tree): Likewise.
4477         (execute_fold_all_builtins): Do not rebuild alias info.
4478         (gimplify_and_update_call_from_tree): Properly update VOPs.
4479         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
4480         (copy_ref_info): Remove memory-tag related code.
4481         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
4482         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
4483         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
4484         computation.
4485         * tree-ssa-dom.c (gimple_p): Remove typedef.
4486         (eliminate_redundant_computations): Adjust.
4487         (record_equivalences_from_stmt): Likewise.
4488         (avail_expr_hash): Likewise.
4489         (avail_expr_eq): Likewise.
4490         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
4491         (stmt_makes_single_load): Likewise.
4492         (stmt_makes_single_store): Likewise.
4493         * tree-ssa-alias.c: Rewrite completely.
4494         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
4495         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
4496         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
4497         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
4498         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
4499         Remove public functions.
4500         (pass_reset_cc_flags): Remove.
4501         (pass_build_alias): Move ...
4502         * tree-ssa-structalias.c (pass_build_alias): ... here.
4503         * tree-ssa-alias.c (may_be_aliased): Move ...
4504         * tree-flow-inline.h (may_be_aliased): ... here.
4505         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
4506         count_uses_and_derefs): Move ...
4507         * gimple.c: ... here.
4508         * gimple.h (count_uses_and_derefs): Declare.
4509         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
4510         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
4511         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
4512         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
4513         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
4514         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
4515         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
4516         New functions.
4517         * tree-dfa.c (refs_may_alias_p): Move ...
4518         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
4519         * tree-ssa-alias.h: New file.
4520         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
4521         (statement_sink_location): Likewise.
4522         * opts.c (decode_options): Do not adjust max-aliased-vops or
4523         avg-aliased-vops values.
4524         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
4525         (TV_CALL_CLOBBER): Likewise.
4526         (TV_FLOW_SENSITIVE): Likewise.
4527         (TV_FLOW_INSENSITIVE): Likewise.
4528         (TV_MEMORY_PARTITIONING): Likewise.
4529         (TV_ALIAS_STMT_WALK): New timevar.
4530         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
4531         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
4532         (get_address_description): Remove memory-tag related code.
4533         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
4534         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
4535         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
4536         and immediate uses in statements.  Document.
4537         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
4538         (dump_symbols): Remove.
4539         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
4540         * alias.c (get_deref_alias_set): New function split out from ...
4541         (get_alias_set): ... here.
4542         * alias.h (get_deref_alias_set): Declare.
4543         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
4544         type parameter.  Remove restrict pointer handling.  Create a
4545         ref-all pointer in case type-based alias sets do not conflict.
4546         (vect_analyze_data_refs): Remove SMT related code.
4547         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
4548         (vectorizable_load): Likewise.
4549         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
4550         (DR_SYMBOL_TAG, DR_VOPS): Remove.
4551         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
4552         Ignore vops and SMTs.
4553         (dr_analyze_alias): Likewise..
4554         (free_data_ref): Likewise.
4555         (create_data_ref): Likewise.
4556         (analyze_all_data_dependences): Likewise.
4557         (get_references_in_stmt): Adjust.
4558         * tree-flow-inline.h (gimple_aliases_computed_p,
4559         gimple_addressable_vars, gimple_call_clobbered_vars,
4560         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
4561         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
4562         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
4563         gimple_mem_ref_stats): Remove.
4564         (gimple_vop): New function.
4565         (op_iter_next_use): Remove vuses and mayuses cases.
4566         (op_iter_next_def): Remove vdefs case.
4567         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
4568         (clear_and_done_ssa_iter): Do not set removed fields.
4569         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
4570         Assert we are not iterating over vuses or vdefs if not also
4571         iterating over uses or defs.
4572         (op_iter_init_use): Likewise.
4573         (op_iter_init_def): Likewise.
4574         (op_iter_next_vdef): Remove.
4575         (op_iter_next_mustdef): Likewise.
4576         (op_iter_init_vdef): Likewise.
4577         (compare_ssa_operands_equal): Likewise.
4578         (link_use_stmts_after): Handle vuse operand.
4579         (is_call_used): Use is_call_clobbered.
4580         (is_call_clobbered): Global variables are always call clobbered,
4581         query the call-clobbers bitmap.
4582         (mark_call_clobbered): Ignore global variables.
4583         (clear_call_clobbered): Likewise.
4584         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
4585         virtual operands sanity check.
4586         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
4587         Remove.
4588         (TARGET_MEM_REF): Remove TMR_TAG operand.
4589         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
4590         Remove call-clobber related code.
4591         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
4592         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
4593         partitions or escape reason.
4594         (get_single_def_stmt, get_single_def_stmt_from_phi,
4595         get_single_def_stmt_with_phi): Remove.
4596         (dump_referenced_vars): Tidy.
4597         (get_ref_base_and_extent): Allow bare decls.
4598         (collect_dfa_stats): Adjust.
4599         * graphite.c (rename_variables_in_stmt): Adjust.
4600         (graphite_copy_stmts_from_block): Likewise.
4601         (translate_clast): Likewise.
4602         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
4603         (EXPR_DIES): New.
4604         (translate_vuse_through_block): Use the oracle.
4605         (phi_translate_1): Adjust.
4606         (value_dies_in_block_x): Use the oracle.  Cache the outcome
4607         in EXPR_DIES.
4608         (valid_in_sets): Check if the VUSE for
4609         a REFERENCE is available.
4610         (eliminate): Do not remove stmts during elimination,
4611         instead queue and remove them afterwards.
4612         (do_pre): Do not rebuild alias info.
4613         (pass_pre): Run TODO_rebuild_alias before PRE.
4614         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
4615         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
4616         (mark_all_v_defs_stmt): Remove.
4617         (mark_all_v_defs_seq): Adjust.
4618         (sra_replace): Likewise.
4619         (scalarize_use): Likewise.
4620         (scalarize_copy): Likewise.
4621         (scalarize_init): Likewise.
4622         (scalarize_ldst): Likewise.
4623         (todoflags): Remove.
4624         (tree_sra): Do not rebuild alias info.
4625         (tree_sra_early): Adjust.
4626         (pass_sra): Run TODO_update_address_taken before SRA.
4627         * tree-predcom.c (set_alias_info): Remove.
4628         (prepare_initializers_chain): Do not call it.
4629         (mark_virtual_ops_for_renaming): Adjust.
4630         (mark_virtual_ops_for_renaming_list): Remove.
4631         (initialize_root_vars): Adjust.
4632         (initialize_root_vars_lm): Likewise.
4633         (prepare_initializers_chain): Likewise.
4634         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
4635         (may_propagate_copy_into_stmt): Likewise.
4636         (merge_alias_info): Do nothing for now.
4637         (propagate_tree_value_into_stmt): Adjust.
4638         (stmt_may_generate_copy): Likewise.
4639         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
4640         not mark symbols for renaming.
4641         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
4642         with the same statement, make sure to update the new pointed-to one.
4643         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
4644         call statements, do not mark symbols for renaming.
4645         (mark_operand_necessary): Dump something.
4646         (ref_may_be_aliased): New function.
4647         (mark_aliased_reaching_defs_necessary_1): New helper function.
4648         (mark_aliased_reaching_defs_necessary): Likewise.
4649         (mark_all_reaching_defs_necessary_1): Likewise.
4650         (mark_all_reaching_defs_necessary): Likewise.
4651         (propagate_necessity): Do not process virtual PHIs.  For
4652         non-aliased loads mark all reaching definitions as necessary.
4653         For aliased loads and stores mark the immediate dominating
4654         aliased clobbers as necessary.
4655         (visited): New global static.
4656         (perform_tree_ssa_dce): Free visited bitmap after propagating
4657         necessity.
4658         (remove_dead_phis): Perform simple dead virtual PHI removal.
4659         (remove_dead_stmt): Properly unlink virtual operands when
4660         removing stores.
4661         (eliminate_unnecessary_stmts): Schedule PHI removal after
4662         stmt removal.
4663         * tree-ssa-ter.c (is_replaceable_p): Adjust.
4664         (process_replaceable): Likewise.
4665         (find_replaceable_in_bb): Likewise.
4666         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
4667         based on the single gimple vop.
4668         (verify_flow_insensitive_alias_info): Remove.
4669         (verify_flow_sensitive_alias_info): Likewise.
4670         (verify_call_clobbering): Likewise.
4671         (verify_memory_partitions): Likewise.
4672         (verify_alias_info): Likewise.
4673         (verify_ssa): Adjust..
4674         (execute_update_addresses_taken): Export.  Update SSA
4675         manually.  Optimize only when optimizing.  Use a local bitmap.
4676         (pass_update_address_taken): Remove TODO_update_ssa, add
4677         TODO_dump_func.
4678         (pass_update_address_taken): Just use TODO_update_address_taken.
4679         (init_tree_ssa): Do not initialize addressable_vars.
4680         (verify_ssa): Verify new VUSE / VDEF properties.
4681         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
4682         Do not call verify_alias_info.
4683         (delete_tree_ssa): Clear the VUSE, VDEF operands.
4684         Do not free the loaded and stored syms bitmaps.  Reset the escaped
4685         and callused solutions.  Do not free addressable_vars.
4686         Remove memory-tag related code.
4687         (warn_uninitialized_var): Aliases are always available.
4688         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
4689         * lambda-code.c (can_put_in_inner_loop): Adjust.
4690         (can_put_after_inner_loop): Likewise.
4691         (perfect_nestify): Likewise.
4692         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
4693         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
4694         (vectorizable_conversion): Do not mark symbols for renaming.
4695         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
4696         (expand_call_inline): Unlink the calls virtual operands before
4697         replacing it.
4698         (tree_function_versioning): Do not call update_ssa if we are not
4699         updating clones.  Simplify.
4700         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
4701         (propagate_with_phi): Likewise..
4702         * tree-outof-ssa.c (create_temp): Remove memory tag and call
4703         clobber code.  Assert we are not aliased or global.
4704         * tree-flow.h: Include tree-ssa-alias.h
4705         (enum escape_type): Remove.
4706         (struct mem_sym_stats_d): Likewise.
4707         (struct mem_ref_stats_d): Likewise.
4708         (struct gimple_df): Add vop member.  Remove global_var,
4709         call_clobbered_vars, call_used_vars, addressable_vars,
4710         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
4711         escaped and callused members.
4712         (struct ptr_info_def): Remove all members, add points-to solution
4713         member pt.
4714         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
4715         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
4716         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
4717         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
4718         (tree-ssa-alias.o): Likewise.
4719         (toplev.o): Add tree-ssa-alias.h
4720         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
4721         * gimple.c (gimple_set_bb): Fix off-by-one error.
4722         (is_gimple_reg): Do not handle memory tags.
4723         (gimple_copy): Also copy virtual operands.
4724         Delay updating the statement.  Do not reset loaded and stored syms.
4725         (gimple_set_stored_syms): Remove.
4726         (gimple_set_loaded_syms): Likewise.
4727         (gimple_call_copy_skip_args): Copy the virtual operands
4728         and mark the new statement modified.
4729         * tree-ssa-structalias.c (may_alias_p): Remove.
4730         (set_uids_in_ptset): Take the alias set to prune with as
4731         parameter.  Fold in the alias test of may_alias_p.
4732         (compute_points_to_sets): Compute whether a ptr is dereferenced
4733         in a local sbitmap.
4734         (process_constraint): Deal with &ANYTHING on the lhs, reject all
4735         other ADDRESSOF constraints on the lhs.
4736         (get_constraint_for_component_ref): Assert that we don't get
4737         ADDRESSOF constraints from the base of the reference.
4738         Properly generate UNKNOWN_OFFSET for DEREF if needed.
4739         (struct variable_info): Remove collapsed_to member.
4740         (get_varinfo_fc): Remove.
4741         (new_var_info): Do not set collapsed_to.
4742         (dump_constraint): Do not follow cycles.
4743         (dump_constraint_graph): Likewise.
4744         (build_pred_graph): Likewise.
4745         (build_succ_graph): Likewise.
4746         (rewrite_constraints): Likewise.
4747         (do_simple_structure_copy): Remove.
4748         (do_rhs_deref_structure_copy): Remove.
4749         (do_lhs_deref_structure_copy): Remove.
4750         (collapse_rest_of_var): Remove.
4751         (do_structure_copy): Re-implement.
4752         (pta_stats): New global variable.
4753         (dump_pta_stats): New function.
4754         (struct constraint_expr): Make offset signed.
4755         (UNKNOWN_OFFSET): Define special value.
4756         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
4757         (solution_set_expand): New helper function split out from ...
4758         (do_sd_constraint): ... here.
4759         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
4760         (do_ds_constraint): Likewise.
4761         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
4762         and CALLUSED = *CALLUSED.
4763         (set_union_with_increment): Make inc argument signed.
4764         (type_safe): Remove.
4765         (get_constraint_for_ptr_offset): Handle unknown and negative
4766         constant offsets.
4767         (first_vi_for_offset): Handle offsets before start.  Bail
4768         out early for offsets beyond the variable extent.
4769         (first_or_preceding_vi_for_offset): New function.
4770         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
4771         Together with ESCAPED = *ESCAPED this properly computes reachability.
4772         (find_what_var_points_to): New function.
4773         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
4774         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
4775         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
4776         pt_solutions_intersect): New functions.
4777         (compute_call_used_vars): Remove.
4778         (compute_may_aliases): New main entry into PTA computation.
4779         * gimple.h (gimple_p): New typedef.
4780         (struct gimple_statement_base): Remove references_memory_p.
4781         (struct gimple_statement_with_memory_ops_base): Remove
4782         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
4783         members.
4784         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
4785         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
4786         gimple_set_references_memory): Remove.
4787         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
4788         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
4789         New functions.
4790         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
4791         (verify_expr): Allow RESULT_DECL.
4792         (gimple_duplicate_bb): Do not copy virtual operands.
4793         (gimple_duplicate_sese_region): Adjust.
4794         (gimple_duplicate_sese_tail): Likewise.
4795         (mark_virtual_ops_in_region): Remove.
4796         (move_sese_region_to_fn): Do not call it.
4797         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
4798         and pass_simple_dse.
4799         (execute_function_todo): Handle TODO_update_address_taken,
4800         call execute_update_addresses_taken for TODO_rebuild_alias.
4801         (execute_todo): Adjust.
4802         (execute_one_pass): Init dump files early.
4803         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
4804         call-clobbered.
4805         (create_general_new_stmt): Clear vops.
4806         * tree-ssa-reassoc.c (get_rank): Adjust.
4807         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
4808         symbols for renaming.
4809         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
4810         (PARAM_AVG_ALIASED_VOPS): Likewise.
4811         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
4812         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
4813         * tree-ssa-operands.c: Simplify for new virtual operand representation.
4814         (operand_build_cmp, copy_virtual_operands,
4815         create_ssa_artificial_load_stmt, add_to_addressable_set,
4816         gimple_add_to_addresses_taken): Remove public functions.
4817         (unlink_stmt_vdef): New function.
4818
4819 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
4820
4821         * config.gcc (powerpc-*-linux*): Merge variants.
4822
4823 2009-04-02  Chao-ying Fu  <fu@mips.com>
4824             James Grosbach  <james.grosbach@microchip.com>
4825
4826         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
4827         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
4828         cop0_sp_offset.
4829         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
4830         keep_interrupts_masked_p, use_debug_exception_return_p.
4831         (mips_attribute_table): Add interrupt, use_shadow_register_set,
4832         keep_interrupts_masked, use_debug_exception_return.
4833         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
4834         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
4835         New functions.
4836         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
4837         (mips_print_operand): Process COP0 registers to print $0 .. $31
4838         correctly for GAS to process.
4839         (mips_interrupt_extra_call_saved_reg_p): New function.
4840         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
4841         extra registers.
4842         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
4843         (mips_compute_frame_info): Add supports for interrupt context that
4844         includes doubleword accumulators and COP0 registers.
4845         (mips_for_each_saved_acc): New function.
4846         (mips_for_each_saved_gpr_and_fpr): Change the function name from
4847         mips_for_each_saved_reg.
4848         (mips_save_reg): Save accumulators.
4849         (mips_kernel_reg_p): A new for_each_rtx callback.
4850         (mips_expand_prologue): Support interrupt handlers.
4851         (mips_restore_reg): Restore accumulators.
4852         (mips_expand_epilogue): Support interrupt handlers.
4853         (mips_can_use_return_insn): Return false for interrupt handlers.
4854         (mips_epilogue_uses): New function.
4855         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
4856         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
4857         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
4858         cop0_move): New instructions.
4859         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
4860         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
4861         defines.
4862         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
4863         New defines.
4864         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
4865         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
4866         interrupt handlers, we use K0 as the temporary register.
4867         (EPILOGUE_USES): Change to a function call.
4868         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
4869         handlers, we use K0 as the temporary register.
4870
4871         * doc/extend.texi (Function Attributes): Document interrupt,
4872         use_shadow_register_set, keep_interrupts_masked,
4873         use_debug_exception_return for MIPS attributes.
4874
4875 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
4876
4877         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
4878         Remove a number of t-files from tmake_file.
4879         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
4880         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
4881         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
4882         target_prototype, not TARGET_PROTOTYPE.
4883         (LINK_OS_GNU_SPEC): Define.
4884         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
4885         and darwin-ldoubdle.c.
4886
4887 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4888
4889         PR driver/39293
4890         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
4891         (cpp_options): Ditto.
4892         (default_compilers): Ditto.
4893         (display_help): Ditto.
4894         (process_command): Ditto.
4895         (do_spec_1): Ditto.
4896         (set_input): Use lbasename instead of duplicate code.
4897         (save_temps_prefix): New static for -save-temps=obj.
4898         (save_temps_length): Ditto.
4899
4900         * doc/invoke.texi (-save-temps=obj): Document new variant to
4901         -save-temps switch.
4902
4903 2009-04-02  Jeff Law  <law@redhat.com>
4904
4905         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
4906         variable.
4907
4908 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
4909
4910         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
4911         * configure: Regenerated.
4912
4913 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
4914
4915         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
4916         share the argument list.
4917
4918 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
4919
4920         Merge
4921
4922         2009-02-12  Diego Novillo  <dnovillo@google.com>
4923
4924         * varpool.c (debug_varpool): New.
4925         * cgraph.h (debug_varpool): Declare.
4926
4927 2009-04-02  Jan Hubicka  <jh@suse.cz>
4928
4929         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
4930         pass.
4931
4932 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
4933
4934         * config/i386/i386.c (ix86_abi): Move initialization to ...
4935         (override_options): Here.
4936
4937 2009-04-02  Christian Bruel  <christian.bruel@st.com>
4938
4939         * config/sh/sh.c (sh_dwarf_register_span): New function.
4940         (TARGET_DWARF_REGISTER_SPAN): Define.
4941         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
4942
4943 2009-04-02  Ira Rosen  <irar@il.ibm.com>
4944
4945         PR tree-optimization/39595
4946         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
4947         interleaved loads group is not  greater than the SLP group size.
4948
4949 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
4950
4951         * builtins.c (is_builtin_name): New.
4952         (called_as_built_in): Use is_builtin_name.
4953         * tree.h (is_builtin_name): New.
4954         * varasm.c (incorporeal_function_p): Use is_builtin_name
4955
4956 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
4957
4958         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
4959
4960 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
4961
4962         PR c++/26693
4963         * c-decl.c (clone_underlying_type): Move this ...
4964         * c-common.c (set_underlying_type): ... here.
4965         Also, make sure the function properly sets TYPE_STUB_DECL() on
4966         the newly created typedef variant type.
4967         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
4968         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
4969         points.
4970
4971 2009-04-02  Richard Guenther  <rguenther@suse.de>
4972
4973         PR tree-optimization/37221
4974         * tree-flow.h (degenerate_phi_result): Declare.
4975         * tree-ssa-dom.c (degenerate_phi_result): Export.
4976         * tree-scalar-evolution.c (analyze_initial_condition): If
4977         the initial condition is defined by a degenerate PHI node
4978         use the degenerate value.
4979
4980 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
4981
4982         PR rtl-optimization/39588
4983         * combine.c (merge_outer_ops): Do not set the constant when this
4984         is not necessary.
4985         (simplify_shift_const_1): Do not modify it either in this case.
4986
4987 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
4988
4989         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
4990         tuning is deprecated if -mtune value is set to an Itanium1 variant.
4991
4992 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
4993
4994         PR c/29027
4995         * c-lex.c (interpret_float): Default (no suffix) is double.
4996
4997 2009-04-1  Xinliang David Li  <davidxl@google.com>
4998
4999         * config/i386/i386.c (legitimate_constant_p): Recognize
5000         all one vector constant.
5001
5002 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5003
5004         * config/vax/vax.c: Add #includes to silence warnings.
5005         Change #include order to silence two warnings.
5006
5007 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5008
5009         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
5010         (ASM_SPEC): Pass -k to the assembler for PIC code.
5011
5012 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5013
5014         * config.gcc: Add vax-*-linux* to the switch.
5015         * config/vax/linux.h: New file. (TARGET_VERSION,
5016         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
5017
5018 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5019
5020         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
5021         Use predicate macros instead of GET_CODE() == foo.
5022         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
5023         ashlsi3, rotrsi3, <unnamed>): Likewise.
5024
5025 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5026
5027         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
5028         jbbccihi, jbbccisi): Remova trailing whitespace.
5029         * config/vax/constraints.md: Likewise.
5030         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5031         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
5032         * config/vax/predicates.md: Likewise.
5033         * config/vax/vax.c (print_operand_address, vax_output_int_move,
5034         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
5035         * config/vax/vax.h: Likewise.
5036         * config/vax/vax.md (nonlocal_goto): Likewise.
5037
5038 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5039
5040         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
5041         (indirectable_address_p, adjacent_operands_p): Add spaces around
5042         braces.
5043         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
5044
5045 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5046
5047         * config/vax/vax.c (legitimate_constant_address_p,
5048         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
5049         index_term_p, reg_plus_index_p, legitimate_address_p,
5050         vax_mode_dependent_address_p): Update comments to match functions
5051         modified by the recent int->bool conversion.
5052
5053 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5054
5055         * config/vax/builtins.md: Update copyright message.
5056         * config/vax/constraints.md: Likewise.
5057         * config/vax/netbsd-elf.h: Likewise.
5058         * config/vax/predicates.md: Likewise.
5059         * config/vax/vax-protos.h: Likewise.
5060         * config/vax/vax.c: Likewise.
5061         * config/vax/vax.h: Likewise.
5062         * config/vax/vax.md: Likewise.
5063         * config/vax/vax.opt: Likewise.
5064
5065 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
5066
5067         * config/vax/builtins.md (ffssi2, ffssi2_internal,
5068         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
5069         * config/vax/constraints.md (B, R): Likewise.
5070         * config/vax/predicates.md (external_memory_operand,
5071         nonimmediate_addsub_di_operand): Likewise.
5072         * config/vax/vax.c (vax_output_int_add): Likewise.
5073         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
5074         untyped_call): Likewise.
5075
5076 2009-04-01  Matt Thomas  <matt@3am-software.com>
5077
5078         * config/vax/predicates.md: New file.
5079         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
5080         external_const_operand, nonsymbolic_operand, external_memory_operand,
5081         indirect_memory_operand, indexed_memory_operand,
5082         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
5083         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
5084         predicate.
5085         * config/vax/constraints.md: New file.
5086         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
5087         New constraint.
5088         * config/vax/builtins.md: New file.
5089         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
5090         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
5091         jbbccisi): Define.
5092         * config/vax/vax.opt (mqmath): Add option.
5093         * config/vax/vax.md (isfx): Extend with DI.
5094         (VAXintQH, VAXintQHSD): Define.
5095         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
5096         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
5097         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
5098         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
5099         (movdi): Update constraints and use vax_output_int_move().
5100         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
5101         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
5102         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
5103         nonlocal_goto): New.
5104         (mov<mode>): Extend accepted operand types.
5105         (subdi3_old): Rename from subdi3, change update constraints and use
5106         a new implementation.
5107         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
5108         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
5109         MOVE_RATIO, CLEAR_RATIO): Define.
5110         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
5111         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
5112         (PRINT_OPERAND): Redefine using a function instead of inlined code.
5113         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5114         (split_quadword_operands): Make static and really allow variable
5115         splitting.
5116         (print_operand_address): Update for PIC generation.
5117         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
5118         indexable_address_p, fixup_mathdi_operand,
5119         vax_expand_addsub_di_operands, adjacent_operands_p): New.
5120         (vax_float_literal, legitimate_constant_p,
5121         indirectable_constant_address_p, index_term_p,
5122         reg_plus_index_p): Return bool instead of int.
5123         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
5124         where needed.
5125         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
5126         generation.
5127         (vax_output_conditional_branch): Indent.
5128         (legitimate_constant_address_p, indirectable_constant_address_p,
5129         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
5130         vax_mode_dependent_address_p): Return bool instead of int, update for
5131         PIC generation.
5132         * config/vax/vax-protos.h (legitimate_constant_address_p,
5133         legitimate_constant_p, legitimate_address_p,
5134         vax_mode_dependent_address_p): Change declaration to bool.
5135         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
5136         vax_expand_addsub_di_operands, vax_output_int_subtract,
5137         vax_output_movmemsi): Declare.
5138         (split_quadword_operands, vax_float_literal): Delete declaration.
5139         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
5140         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
5141         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
5142         ASM_OUTPUT_DWARF_PCREL): Define.
5143         (ASM_SPEC): Change definition to allow PIC generation.
5144
5145 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
5146
5147         * doc/sourcebuild.texi: Update front-end requirements.
5148
5149 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5150
5151         PR target/39226
5152         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
5153         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
5154         (booldi3_internal3): Use boolean_or_operator instead of
5155         boolean_operator.
5156
5157 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
5158
5159         PR c/39605
5160         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
5161         declarator whose size is not an integer constant expression but
5162         folds to an integer constant, then treat it as a constant
5163         subsequently.
5164
5165 2009-04-01  Richard Guenther  <rguenther@suse.de>
5166
5167         * fold-const.c (fold_plusminus_mult_expr): Do not fold
5168         i * 4 + 2 to (i * 2 + 1) * 2.
5169
5170 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5171
5172         PR c/37772
5173         * c-parser.c (c_parser_asm_statement): Skip until close paren and
5174         return if c_parser_asm_string_literal returned NULL.
5175
5176 2009-04-01  Nick Clifton  <nickc@redhat.com>
5177
5178         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
5179         already defined.
5180         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
5181         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
5182         other typedefs to avoid conflicts with libgcc2.c.  Define labels
5183         to gain 16-bit bit-manipulation functions from libgcc2.c and then
5184         include it.
5185         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
5186         to gain 16-bit trapping arithmetic functions from libgcc2.c and
5187         then include it.
5188
5189 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
5190
5191         * varasm.c (default_function_rodata_section): Declare DOT as
5192         const char*.
5193
5194 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
5195             Andrey Galkin  <agalkin@hypercom.com>
5196
5197         PR/39492
5198         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
5199         Make object_name unique for each process.
5200
5201 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
5202
5203         PR other/39591
5204         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
5205         addressable variables in the parallel that could go out of scope while
5206         running queued tasks.
5207
5208 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
5209
5210         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
5211         (CASE_VALUES_THRESHOLD): Redefine.
5212         * config/avr/avr.c (avr_override_options): Remove initialization of
5213         avr_case_values_threshold variable.
5214         (avr_case_values_threshold): Remove variable. Add new function.
5215         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
5216         * config/avr/avr.opt (mno-tablejump): Remove option.
5217         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
5218
5219 2009-04-01  DJ Delorie  <dj@redhat.com>
5220
5221         * varasm.c (default_function_rodata_section): Don't assume
5222         anything about where the first '.' in the section name is.
5223
5224 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
5225
5226         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
5227         rs6000_emit_stack_tie.
5228
5229 2009-03-31  Ian Lance Taylor  <iant@google.com>
5230
5231         * tree-eh.c (tree_remove_unreachable_handlers): Compare
5232         gimple_code with GIMPLE_RESX, not RESX.
5233
5234 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5235
5236         * c-common.c (c_get_ident): New.
5237         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
5238
5239 2009-04-01  Ben Elliston  <bje@au.ibm.com>
5240
5241         * config/rs6000/sysv4.opt (msdata): Improve option description.
5242
5243 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
5244
5245         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
5246         (divdf3_internal_lat): Remove.
5247         (divxf3_internal_lat): Remove.
5248         (divxf3_internal_thr): Remove.
5249         (divxf): Use divxf3_internal.
5250         * config/ia64/div.md (divsf3_internal_lat): New.
5251         (divdf3_internal_lat): New.
5252         (divxf3_internal): New.
5253
5254 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5255
5256         PR c/448
5257         * Makefile.in (USE_GCC_STDINT): Define.
5258         (stmp-int-hdrs): Install stdint.h if applicable.
5259         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
5260         if known.
5261         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
5262         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
5263         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5264         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5265         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5266         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5267         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5268         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5269         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5270         (c_common_nodes_and_builtins): Initialize
5271         underlying_wchar_type_node.  Do not initialize
5272         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
5273         nodes for new types.
5274         (c_stddef_cpp_builtins): Define macros for new types.
5275         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
5276         Remove.
5277         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
5278         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
5279         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
5280         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
5281         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
5282         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
5283         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
5284         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
5285         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
5286         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
5287         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
5288         int16_type_node, int32_type_node, int64_type_node,
5289         uint8_type_node, uint16_type_node, c_uint32_type_node,
5290         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
5291         int_least32_type_node, int_least64_type_node,
5292         uint_least8_type_node, uint_least16_type_node,
5293         uint_least32_type_node, uint_least64_type_node,
5294         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
5295         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
5296         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
5297         uintptr_type_node): Define.
5298         * c-cppbuiltin.c (builtin_define_constants,
5299         builtin_define_type_minmax): New.
5300         (builtin_define_stdint_macros): Define more macros.
5301         (c_cpp_builtins): Define more limit macros.
5302         (type_suffix): New.
5303         (builtin_define_type_max): Define in terms of
5304         builtin_define_type_minmax.  Remove is_long parameter.  All
5305         callers changed.
5306         * config.gcc (use_gcc_stdint): Define.
5307         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
5308         Add newlib-stdint.h for generic targets.
5309         * config/glibc-stdint.h, config/newlib-stdint.h,
5310         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
5311         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
5312         * config/score/score.h (UINTPTR_TYPE): Define.
5313         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
5314         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
5315         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5316         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5317         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5318         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5319         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5320         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
5321         * config/spu/spu.h (STDINT_LONG32): Define.
5322         * configure.ac (use_gcc_stdint): Substitute.
5323         * configure: Regenerate.
5324         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
5325         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
5326         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
5327         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
5328         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
5329         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
5330         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
5331         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
5332         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
5333         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
5334         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
5335         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
5336         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
5337         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
5338         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
5339         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
5340         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
5341         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
5342         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
5343         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
5344         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
5345         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
5346         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
5347         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
5348         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
5349         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
5350         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
5351         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
5352         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
5353
5354 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
5355
5356         * loop-iv.c (suitable_set_for_replacement): Renamed from
5357         simplify_using_assignment; changed to return bool and to accept new
5358         args DEST and SRC.  Return true iff we find a source/destination pair
5359         that can be used to make a replacement, and fill SRC and DEST if so.
5360         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
5361         changed.
5362         (simplify_using_initial_values): Deal with altered regs here and track
5363         more precisely the effect they have on the validity of our expression.
5364
5365         * loop-iv.c (simplify_using_condition): A condition of the form
5366         (EQ REG CONST) can be used to simply make a substitution.
5367         (simplify_using_initial_values): Keep track of conditions we have seen
5368         and keep using them to simplify new expressions, while applying the
5369         same substitutions to them as to the expression.
5370
5371         * simplify-rtx.c (simplify_relational_operation_1): Simplify
5372         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
5373         GEU/LTU reversed.
5374
5375         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
5376         changed.  Use this when trying to improve the upper bound.
5377         Generate the comparison by using simplify_gen_relational.
5378
5379         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
5380
5381         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
5382         functions.
5383         (simplify_using_assignment, simplify_using_initial_values): Call
5384         replace_in_expr to make replacements.  Call replace_single_def_regs
5385         once on the initial version of the expression.
5386
5387 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5388
5389         PR target/27237
5390         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
5391
5392 2009-03-31  Richard Guenther  <rguenther@suse.de>
5393
5394         PR middle-end/31029
5395         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
5396         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
5397
5398 2009-03-31  Richard Guenther  <rguenther@suse.de>
5399
5400         * tree.h (div_if_zero_remainder): Declare.
5401         * fold-const.c (div_if_zero_remainder): Export.
5402         * tree-ssa-forwprop.c
5403         (forward_propagate_addr_into_variable_array_index): Handle
5404         constant array index addition outside of the variable index.
5405
5406 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5407
5408         PR target/39592
5409         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
5410         define_splits, floatunssi<mode>2): Require x87 conversions from
5411         DImode to be permitted.
5412
5413 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
5414
5415         PR preprocessor/15638
5416         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
5417
5418 2009-03-31  Richard Guenther  <rguenther@suse.de>
5419
5420         PR middle-end/23401
5421         PR middle-end/27810
5422         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
5423         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
5424         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
5425         a separate statement.
5426         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
5427         (lookup_tmp_var): Likewise.
5428         (is_gimple_formal_tmp_or_call_rhs): Remove.
5429         (is_gimple_reg_or_call_rhs): Rename to ...
5430         (is_gimple_reg_rhs_or_call): ... this.
5431         (is_gimple_mem_or_call_rhs): Rename to ...
5432         (is_gimple_mem_rhs_or_call): ... this.
5433         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
5434         DECL_GIMPLE_REG_P only if is_formal is true.
5435         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
5436         for non-proper post-modify expression gimplification.
5437         (gimplify_self_mod_expr): For post-modify expressions gimplify
5438         the lvalue to a minimal lvalue.
5439         (rhs_predicate_for): Remove formal temp case.
5440         (gimplify_modify_expr_rhs): Likewise.
5441         (gimplify_addr_expr): Use is_gimple_reg.
5442         (gimplify_expr): Remove formal temp cases.
5443         (gimple_regimplify_operands): Likewise.
5444         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
5445         and FILTER_EXPR like constants.
5446         * gimple.c (walk_gimple_op): Fix val_only initialization, use
5447         is_gimple_reg.
5448         (is_gimple_formal_tmp_rhs): Remove.
5449         (is_gimple_reg_rhs): Remove special casing.
5450         (is_gimple_mem_rhs): Fix.
5451         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
5452         (is_gimple_formal_tmp_var): Remove.
5453         (is_gimple_formal_tmp_reg): Likewise.
5454         (is_gimple_min_lval): Allow invariant component ref parts.
5455         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
5456         is_gimple_formal_tmp_reg): Remove declarations.
5457         * tree-cfg.c (verify_expr): Verify that variables with address
5458         taken do not have DECL_GIMPLE_REG_P set.
5459         * tree-mudflap.c (mf_build_check_statement_for): Use
5460         force_gimple_operand instead of gimplify_expr.
5461
5462 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
5463
5464         * modulo-sched.c (sms_schedule_by_order): Pass the actual
5465         schedulable rows to compute_split_row.
5466
5467 2009-03-31  Ben Elliston  <bje@au.ibm.com>
5468
5469         PR target/31635
5470         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
5471         OPT_mvrsave.
5472
5473 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
5474
5475         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
5476         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
5477         * configure: Regenerate.
5478         * config.in: Regenerate.
5479         * config/rs6000/rs6000.opt (mtls-markers): Add.
5480         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
5481         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
5482         (tls_ld_aix, tls_ld_sysv): Likewise.
5483         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
5484         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
5485
5486 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
5487
5488         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
5489
5490 2009-03-30  Jan Hubicka  <jh@suse.cz>
5491
5492         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
5493         out of RESX.
5494         (tree_remove_unreachable_handlers): Cleanup EH predecestor
5495         detection and label handling.
5496
5497 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5498
5499         * ira-int.h (ira_allocno): Rename left_conflicts_num to
5500         left_conflicts_size.
5501         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
5502         ALLOCNO_LEFT_CONFLICTS_SIZE.
5503
5504         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
5505         remove_allocno_from_bucket_and_push,
5506         allocno_spill_priority_compare, push_allocnos_to_stack,
5507         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5508         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
5509         (setup_allocno_left_conflicts_num): Ditto.  Rename to
5510         setup_allocno_left_conflicts_size.
5511         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
5512         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
5513         setup_allocno_left_conflicts_size instead of
5514         setup_allocno_left_conflicts_num.
5515
5516         * ira-build.c (ira_create_allocno): Use
5517         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
5518         ALLOCNO_LEFT_CONFLICTS_NUM.
5519
5520 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
5521
5522         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
5523         instead of DF_LR_OUT.
5524
5525         * ira-lives.c (process_bb_node_lives): Ditto.
5526
5527         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
5528         instead of DF_LR_{OUT,IN}.
5529
5530         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
5531
5532         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
5533
5534 2009-03-30  Jan Hubicka  <jh@suse.cz>
5535
5536         * except.c (label_to_region_map): Fix thinko.
5537
5538 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
5539
5540         PR middle-end/38237
5541         * tree.h (tree_find_value): New declaration.
5542         * tree.c (tree_find_value): New function.
5543         * varasm.c (assemble_external): Avoid duplicate entries on lists.
5544
5545 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
5546
5547         PR debug/39563
5548         * c-decl.c (struct c_binding): Add locus field.
5549         (bind): Add locus argument, set locus field from it.
5550         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
5551         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
5552         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
5553         implicitly_declare, undeclared_variable, lookup_label,
5554         declare_label, c_make_fname_decl, c_builtin_function,
5555         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
5556         bind callers.
5557
5558 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5559
5560         PR target/38781
5561         * config/i386/i386.c (classify_argument): Check total size of
5562         structure.
5563
5564 2009-03-30  Martin Jambor  <mjambor@suse.cz>
5565
5566         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
5567         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
5568         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
5569         respectively.
5570
5571         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
5572         seen_variable_array_ref while also traversing a union.
5573
5574         * tree-inline.c (optimize_inline_calls): Do not call
5575         cgraph_node_remove_callees.
5576         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
5577         (pass_remove_cgraph_callee_edges): New variable.
5578         * passes.c (init_optimization_passes): Add
5579         pass_remove_cgraph_callee_edges after early inlining and before all
5580         late intraprocedural passes.
5581
5582         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
5583
5584 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
5585
5586         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
5587         Fix typos in names.
5588
5589 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
5590
5591         * combine.c (simplify_comparison): Use have_insn_for.
5592         * dojump.c (do_jump): Likewise.
5593
5594 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
5595
5596         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
5597         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
5598         sparc_compare_op0 like sparc_compare_emitted used to be handled.
5599         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
5600         instead of sparc_compare_emitted.
5601         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
5602         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
5603         instead of sparc_compare_emitted.
5604
5605 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
5606
5607         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
5608         enter/exit cfglayout mode.
5609         (pass_partition_block): Require it.
5610         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
5611         (combine_instructions): Track basic blocks instead of labels.
5612         (update_cfg_for_uncondjump): New.
5613         (try_combine): Use it.  Update jumps after rescanning.
5614         (pass_combine): Require PROP_cfglayout.
5615         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
5616
5617 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
5618
5619         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
5620         Provide/destroy PROP_cfglayout respectively.
5621         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
5622         * tree-pass.h (PROP_cfglayout): New.
5623
5624 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
5625
5626         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
5627         fold_convert_const_fixed_from_fixed,
5628         fold_convert_const_fixed_from_int,
5629         fold_convert_const_fixed_from_real, fold_negate_const): Do not
5630         set TREE_CONSTANT_OVERFLOW.
5631         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
5632         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
5633
5634 2009-03-30  Ira Rosen  <irar@il.ibm.com>
5635
5636         * tree-vect-loop-manip.c: New file.
5637         * tree-vectorizer.c: Update documentation and included files.
5638         (vect_loop_location): Make extern.
5639         (rename_use_op): Move to tree-vect-loop-manip.c
5640         (rename_variables_in_bb, rename_variables_in_loop,
5641         slpeel_update_phis_for_duplicate_loop,
5642         slpeel_update_phi_nodes_for_guard1,
5643         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
5644         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
5645         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
5646         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
5647         find_loop_location): Likewise.
5648         (new_stmt_vec_info): Move to tree-vect-stmts.c.
5649         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
5650         get_vectype_for_scalar_type, vect_is_simple_use,
5651         supportable_widening_operation, supportable_narrowing_operation):
5652         Likewise.
5653         (bb_in_loop_p): Move to tree-vect-loop.c.
5654         (new_loop_vec_info, destroy_loop_vec_info,
5655         reduction_code_for_scalar_code, report_vect_op,
5656         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
5657         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
5658         (vect_supportable_dr_alignment): Likewise.
5659         * tree-vectorizer.h (tree-data-ref.h): Include.
5660         (vect_loop_location): Declare.
5661         Reorganize function declarations according to the new file structure.
5662         * tree-vect-loop.c: New file.
5663         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
5664         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
5665         * tree-vect-data-refs.c: New file.
5666         * tree-vect-patterns.c (timevar.h): Don't include.
5667         * tree-vect-stmts.c: New file.
5668         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
5669         tree-vect-slp.c, tree-vect-loop.c.
5670         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
5671         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
5672         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
5673         (tree-vect-analyze.o): Remove.
5674         (tree-vect-transform.o): Likewise.
5675         (tree-vect-data-refs.o): Add rule.
5676         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
5677         tree-vect-slp.o): Likewise.
5678         (tree-vect-patterns.o): Remove redundant dependencies.
5679         (tree-vectorizer.o): Likewise.
5680         * tree-vect-slp.c: New file.
5681
5682 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5683
5684         * optc-gen.awk: Warn if an option flag has multiple different
5685         help strings.
5686
5687 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
5688
5689         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
5690         -floop-block): Document dependences on PPL, CLooG and Graphite.
5691
5692 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
5693
5694         PR rtl-optimization/323
5695         * c-common.c (c_fully_fold, convert_and_check,
5696         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
5697         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
5698         * c-common.def (EXCESS_PRECISION_EXPR): New.
5699         * c-cppbuiltin.c (builtin_define_float_constants): Define
5700         constants with enough digits for long double.
5701         * c-lex.c (interpret_float): Interpret constant with excess
5702         precision where appropriate.
5703         * c-opts.c (c_common_post_options): Set
5704         flag_excess_precision_cmdline.  Give an error for
5705         -fexcess-precision=standard for C++ for processors where the
5706         option is significant.
5707         * c-parser.c (c_parser_conditional_expression): Handle excess
5708         precision in condition.
5709         * c-typeck.c (convert_arguments): Handle arguments with excess
5710         precision.
5711         (build_unary_op): Move excess precision outside operation.
5712         (build_conditional_expr): Likewise.
5713         (build_compound_expr): Likewise.
5714         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
5715         (build_modify_expr): Handle excess precision in RHS.
5716         (convert_for_assignment): Handle excess precision in converted
5717         value.
5718         (digest_init, output_init_element, process_init_element): Handle
5719         excess precision in initializer.
5720         (c_finish_return): Handle excess precision in return value.
5721         (build_binary_op): Handle excess precision in operands and add
5722         excess precision as needed for operation.
5723         * common.opt (-fexcess-precision=): New option.
5724         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
5725         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5726         For standard excess precision, output explicit conversion to and
5727         truncation from XFmode.
5728         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
5729         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
5730         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
5731         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
5732         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
5733         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
5734         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
5735         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
5736         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
5737         define_splits, sqrt<mode>2): Disable where appropriate for
5738         standard excess precision.
5739         * convert.c (convert_to_real): Do not shorten arithmetic to type
5740         for which excess precision would be used.
5741         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
5742         * doc/invoke.texi (-fexcess-precision=): Document option.
5743         (-mfpmath=): Correct index entry.
5744         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
5745         flag_excess_precision): New.
5746         * langhooks.c (lhd_post_options): Set
5747         flag_excess_precision_cmdline.
5748         * opts.c (common_handle_option): Handle -fexcess-precision=.
5749         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
5750         init_excess_precision): New.
5751         (lang_dependent_init_target): Call init_excess_precision.
5752         * tree.c (excess_precision_type): New.
5753         * tree.h (excess_precision_type): Declare.
5754
5755 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
5756
5757         PR c/35235
5758         * c-typeck.c (build_component_ref): Do not copy qualifiers from
5759         non-lvalue to component.
5760
5761 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
5762
5763         PR preprocessor/34695
5764         * Makefile.in (c-opts.o): Depend on c-tree.h.
5765         * c-common.c: Move down include of diagnostic.h.
5766         (done_lexing, c_cpp_error): New.
5767         * c-common.h (done_lexing): Declare.
5768         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
5769         (parse_in).
5770         * c-opts.c: Include c-tree.h.
5771         (c_common_init_options): Set preprocessor error callback.
5772         (c_common_handle_option): Do not set preprocessor
5773         inhibit_warnings, warnings_are_errors, warn_system_headers,
5774         pedantic_errors or inhibit_warnings flags.
5775         (c_common_post_options): Do not check cpp_errors (parse_in).
5776         (c_common_finish): Do not output dependencies if there were
5777         errors.  Do not check return value of cpp_finish.
5778         * c-ppoutput.c (pp_file_change): Set input_location.
5779         * c-tree.h (c_cpp_error): Declare.
5780         * diagnostic.c (diagnostic_set_info_translated): Also initialize
5781         override_column.
5782         (diagnostic_build_prefix): Check override_column.
5783         * diagnostic.h (diagnostic_info): Add override_column field.
5784         (diagnostic_override_column): Define.
5785
5786 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
5787
5788         * c-common.c (c_expand_expr, c_staticp): Remove.
5789         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
5790         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
5791         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
5792         * c-gimplify.c (gimplify_compound_literal_expr,
5793         optimize_compound_literals_in_ctor): Remove.
5794         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
5795         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
5796         * c-semantics.c (emit_local_var): Remove.
5797
5798         * langhooks-def.h (lhd_expand_expr): Remove.
5799         * langhooks.c (lhd_expand_expr): Remove.
5800         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
5801
5802         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
5803         handling from c-semantics.c; don't call into langhook.
5804         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
5805         * gimplify.c (gimplify_compound_literal_expr,
5806         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
5807         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
5808         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
5809         as was done in c-gimplify.c.
5810         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
5811         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
5812         Move from c-common.h.
5813         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
5814
5815         * tree.c (staticp): Do not call langhook.
5816         * langhooks.c (lhd_staticp): Delete.
5817         * langhooks-def.h (lhd_staticp): Delete prototype.
5818         (LANG_HOOKS_STATICP): Delete.
5819         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
5820
5821         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
5822         instead of DECL_STMTs.
5823
5824 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
5825
5826         PR c/456
5827         PR c/5675
5828         PR c/19976
5829         PR c/29116
5830         PR c/31871
5831         PR c/35198
5832         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
5833         void_type_node.
5834         (fold_call_expr): Return a NOP_EXPR from folding rather than the
5835         contained expression.
5836         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
5837         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
5838         conditional expressions for C.
5839         (decl_constant_value_for_optimization): Move from
5840         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
5841         whether optimizing and that the expression is a VAR_DECL not of
5842         array type instead of doing such checks in the caller.  Do not
5843         check pedantic.  Call gcc_unreachable for C++.
5844         * c-common.def (C_MAYBE_CONST_EXPR): New.
5845         * c-common.h (c_fully_fold, c_save_expr,
5846         decl_constant_value_for_optimization): New prototypes.
5847         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5848         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5849         EXPR_INT_CONST_OPERANDS): Define.
5850         * c-convert.c (convert): Strip nops from expression.
5851         * c-decl.c (groktypename): Take extra parameters expr and
5852         expr_const_operands.  Update call to grokdeclarator.
5853         (start_decl): Update call to grokdeclarator.  Add statement for
5854         expressions used in type of decl.
5855         (grokparm): Update call to grokdeclarator.
5856         (push_parm_decl): Update call to grokdeclarator.
5857         (build_compound_literal): Add parameter non_const and build a
5858         C_MAYBE_COSNT_EXPR if applicable.
5859         (grokdeclarator): Take extra parameters expr and
5860         expr_const_operands.  Track expressions used in declaration
5861         specifiers and declarators.  Fold array sizes and track whether
5862         they are constant expressions and whether they are integer
5863         constant expressions.
5864         (parser_xref_tag): Set expr and expr_const_operands fields in
5865         return value.
5866         (grokfield): Update call to grokdeclarator.
5867         (start_function): Update call to grokdeclarator.
5868         (build_null_declspecs): Set expr and expr_const_operands fields in
5869         return value.
5870         (declspecs_add_type): Handle expressions in typeof specifiers.
5871         * c-parser.c (c_parser_declspecs): Set expr and
5872         expr_const_operands fields for declaration specifiers.
5873         (c_parser_enum_specifier): Likewise.
5874         (c_parser_struct_or_union_specifier): Likewise.
5875         (c_parser_typeof_specifier): Likewise.  Update call to
5876         groktypename.  Fold expression as needed.  Return expressions with
5877         type instead of adding statements.
5878         (c_parser_attributes): Update calls to c_parser_expr_list.
5879         (c_parser_statement_after_labels): Fold expression before passing
5880         to objc_build_throw_stmt.
5881         (c_parser_condition): Fold expression.
5882         (c_parser_asm_operands): Fold expression.
5883         (c_parser_conditional_expression): Use c_save_expr.  Update call
5884         to build_conditional_expr.
5885         (c_parser_alignof_expression): Update call to groktypename.
5886         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
5887         original_code.  Fold expression argument of va_arg.  Create
5888         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
5889         argument to va_arg.  Update calls to groktypename.  Fold array
5890         index for offsetof.  Verify that first argument to
5891         __builtin_choose_expr has integer type.
5892         (c_parser_postfix_expression_after_paren_type): Update calls to
5893         groktypename and build_compound_literal.  Handle expressions with
5894         side effects in type name.
5895         (c_parser_postfix_expression_after_primary): Update call to
5896         c_parser_expr_list.  Set original_code for calls to
5897         __builtin_constant_p.
5898         (c_parser_expr_list): Take extra parameter fold_p.  Fold
5899         expressions if requested.
5900         (c_parser_objc_type_name): Update call to groktypename.
5901         (c_parser_objc_synchronized_statement): Fold expression.
5902         (c_parser_objc_receiver): Fold expression.
5903         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
5904         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
5905         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
5906         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
5907         (struct c_typespec): Add elements expr and expr_const_operands.
5908         (struct c_declspecs): Add elements expr and expr_const_operands.
5909         (groktypename, build_conditional_expr, build_compound_literal):
5910         Update prototypes.
5911         (in_late_binary_op): Declare.
5912         * c-typeck.c (note_integer_operands): New function.
5913         (in_late_binary_op): New variable.
5914         (decl_constant_value_for_broken_optimization): Move to c-common.c
5915         and rename to decl_constant_value_for_optimization.
5916         (default_function_array_conversion): Do not strip nops.
5917         (default_conversion): Do not call
5918         decl_constant_value_for_broken_optimization.
5919         (build_array_ref): Do not fold result.
5920         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
5921         result when operand is a VLA.
5922         (c_expr_sizeof_type): Update call to groktypename.  Handle
5923         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
5924         result when operand names a VLA type.
5925         (build_function_call): Update call to build_compound_literal.
5926         Only fold result for calls to __builtin_* functions.  Strip
5927         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
5928         the function designator.
5929         (convert_arguments): Fold arguments.  Update call to
5930         convert_for_assignment.
5931         (build_unary_op): Handle increment and decrement of
5932         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
5933         decrement earlier.  Fold operand of increment and decrement.
5934         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
5935         built for integer operand.  Wrap returns that are INTEGER_CSTs
5936         without being integer constant expressions or that have integer
5937         constant operands without being INTEGER_CSTs.
5938         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
5939         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
5940         result is an integer constant expression or can be used in
5941         unevaluated parts of one and avoid folding and wrap as
5942         appropriate.  Fold operands before possibly doing -Wsign-compare
5943         warnings.
5944         (build_compound_expr): Wrap result for C99 if operands can be used
5945         in integer constant expressions.
5946         (build_c_cast): Update call to digest_init.  Do not ignore
5947         overflow from casting floating-point constants to integers.  Wrap
5948         results that could be confused with integer constant expressions,
5949         null pointer constants or floating-point constants.
5950         (c_cast_expr): Update call to groktypename.  Handle expressions
5951         included in type name.
5952         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
5953         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
5954         Update calls to convert_for_assignment.
5955         (convert_for_assignment): Take new parameter
5956         null_pointer_constant.  Do not strip nops or call
5957         decl_constant_value_for_broken_optimization.  Set
5958         in_late_binary_op for conversions to boolean.
5959         (store_init_value): Update call to digest_init.
5960         (digest_init): Take new parameter null_pointer_constant.  Do not
5961         call decl_constant_value_for_broken_optimization.  pedwarn for
5962         initializers not constant expressions.  Update calls to
5963         convert_for_assignment.
5964         (constructor_nonconst): New.
5965         (struct constructor_stack): Add nonconst element.
5966         (really_start_incremental_init, push_init_level, pop_init_level):
5967         Handle constructor_nonconst and nonconst element.
5968         (set_init_index): Call constant_expression_warning for array
5969         designators.
5970         (output_init_element): Fold value.  Set constructor_nonconst as
5971         applicable.  pedwarn for initializers not constant expressions.
5972         Update call to digest_init.  Call constant_expression_warning
5973         where constant initializers are required.
5974         (process_init_element): Use c_save_expr.
5975         (c_finish_goto_ptr): Fold expression.
5976         (c_finish_return): Fold return value.  Update call to
5977         convert_for_assignment.
5978         (c_start_case): Fold switch expression.
5979         (c_process_expr_stmt): Fold expression.
5980         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
5981         ensure statement expression is not evaluated in constant expression.
5982         (build_binary_op): Track whether results are integer constant
5983         expressions or may occur in such, disable folding and wrap results
5984         as applicable.  Fold operands for -Wsign-compare warnings unless
5985         in_late_binary_op.
5986         (c_objc_common_truthvalue_conversion): Handle results folded to
5987         integer constants that are not integer constant expressions.
5988         * doc/extend.texi: Document when typeof operands are evaluated,
5989         that condition of __builtin_choose_expr is an integer constant
5990         expression, and more about use of __builtin_constant_p in
5991         initializers.
5992
5993 2009-03-29  Richard Guenther  <rguenther@suse.de>
5994
5995         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
5996         propagate addresses of array references.
5997
5998 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
5999
6000         * regmove.c (perhaps_ends_bb_p): Remove.
6001         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
6002         from INSN and check that the main loop stays within that basic block.
6003         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
6004         (regmove_forward_pass): Split out from regmove_optimize.  Use
6005         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
6006         (regmove_backward_pass): Split out from regmove_optimize.  Use
6007         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
6008         (regmove_optimize): Simplify.
6009
6010 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6011
6012         PR target/39545
6013         * config/i386/i386.c (classify_argument): Ignore flexible array
6014         member in struct and warn ABI change.
6015
6016 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
6017
6018         * config/i386/i386-protos.h (ix86_agi_dependent): New.
6019
6020         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
6021         (ix86_adjust_cost): Updated.
6022
6023 2009-03-29  Jan Hubicka  <jh@suse.cz>
6024
6025         PR middle-end/28850
6026         * tree-pass.h (pass_cleanup_eh): New function.
6027         (remove_unreachable_regions): Break code handling RTL
6028         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
6029         that can not be reached by runtime.
6030         (can_be_reached_by_runtime): New function.
6031         (label_to_region_map): New function.
6032         (num_eh_regions): New function.
6033         (rtl_remove_unreachable_regions): New function.
6034         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
6035         (remove_eh_region): New function.
6036         * except.h: Include sbitmap and vecprim.
6037         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
6038         num_eh_regions): Declare.
6039         * passes.c (init_optimization_passes): Schedule cleanup_eh.
6040         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
6041         * tree-eh.c (tree_remove_unreachable_handlers): New function.
6042         (tree_empty_eh_handler_p): New function.
6043         (cleanup_empty_eh): New function.
6044         (cleanup_eh): New function.
6045         (pass_cleanup_eh): New function.
6046
6047 2009-03-29  Jan Hubicka  <jh@suse.cz>
6048
6049         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
6050         for removed regions.
6051
6052 2009-03-29  Jan Hubicka  <jh@suse.cz>
6053
6054         * except.c (dump_eh_tree): Dump all datastructures.
6055
6056 2009-03-29  Jan Hubicka  <jh@suse.cz>
6057
6058         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
6059         (duplicate_eh_regions_1): Likewise.
6060         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
6061         vector; call EH verification.
6062         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6063         Be ready for region being removed.
6064
6065 2009-03-29  Jan Hubicka  <jh@suse.cz>
6066
6067         * bitmap.c (bitmap_last_set_bit): New function.
6068         * bitmap.h (bitmap_last_set_bit): Declare.
6069
6070 2009-03-29  David Ayers  <ayers@fsfe.org>
6071
6072         PR objc/27377
6073         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
6074         by calling objc_compare_types and surpress warnings about
6075         incompatible C pointers that are compatible ObjC pointers.
6076
6077 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
6078
6079         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
6080         call initialize_inline_failed.
6081         (initialize_inline_failed): Move it from here ...
6082         * cgraph.c (initialize_inline_failed): ... to here.
6083         (cgraph_create_edge): Call initialize_inline_failed rather than
6084         setting inline_failed directly.
6085
6086 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6087
6088         PR target/32542
6089         * sysv4.opt (msdata): Improve comment.
6090         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
6091         * sysv4.h (SVR4_ASM_SPEC): Likewise.
6092
6093 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6094
6095         PR target/30451
6096         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
6097         load and store attributes.
6098
6099 2009-03-29  Ben Elliston  <bje@au.ibm.com>
6100
6101         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
6102         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
6103         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
6104         * doc/extend.texi (X86 Built-in Functions): Add index entries for
6105         __builtin_infq and __builtin_huge_valq.
6106
6107 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
6108
6109         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
6110         atmega8m1 devices.
6111         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
6112         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
6113
6114 2009-03-28  Xinliang David Li  <davidxl@google.com>
6115
6116         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
6117         (do_dbg_cnt): New function.
6118
6119 2009-03-28  Jan Hubicka  <jh@suse.cz>
6120
6121         Merge from pretty-ipa:
6122
6123         2009-03-27  Jan Hubicka  <jh@suse.cz>
6124
6125         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6126         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
6127         * passes.c (function_called_by_processed_nodes_p): New.
6128         * ipa-pure-const.c (check_call): Fix handling of operands.
6129         (analyze_function): Dump debug output for skipped bodies.
6130         (local_pure_const): Use function_called_by_processed_nodes_p.
6131         * dwarf2out.c (reference_to_unused): Use output.
6132         * passes.c (do_per_function_toporder): Likewise.
6133
6134         2008-11-12  Jan Hubicka  <jh@suse.cz>
6135
6136         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
6137         * ipa-pure-const.c (funct_state_d): Add can throw field; make
6138         state_set_in_source enum
6139         (check_decl): Ignore memory tags; do not set fake looping flags;
6140         dump diagnostics.
6141         (check_operand, check_tree, check_rhs_var, check_lhs_var,
6142         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
6143         (check_call, analyze_function): Rewrite.
6144         (check_stmt): New.
6145         (add_new_function): Update call of analyze_function.
6146         (generate_summary): Add call of analyze_function.
6147         (propagate): Propagate can_throw; handle state_set_in_source correctly.
6148         (local_pure_const): New function.
6149         (pass_local_pure_const): New pass.
6150         * ipa-inline.c (inline_transform): Set after_inlining.
6151         * tree-eh.c (stmt_can_throw_external): New.
6152         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
6153         work with aliasing built.
6154         * tree-flow.h (stmt_can_throw_external): New.
6155         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
6156         and local pure/const pass in early and late optimization queue.
6157
6158 2009-03-28  Martin Jambor  <mjambor@suse.cz>
6159
6160         * fold-const.c (get_pointer_modulus_and_residue): New parameter
6161         allow_func_align.
6162         (fold_binary): Allow function decl aligment consideration is the
6163         second argument is integer constant one.
6164         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
6165         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
6166         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
6167
6168 2009-03-28  Jan Hubicka  <jh@suse.cz>
6169
6170         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
6171         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
6172         * function.h (rtl_data): Add nothrow flag.
6173         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
6174         set DECL_NOTHROW for AVAILABLE functions.
6175
6176 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
6177
6178         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
6179         following vector keyword has expansion starting with pixel or bool
6180         keyword, expand vector to __vector and pixel or bool to __pixel or
6181         __bool.
6182
6183         PR c++/39554
6184         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
6185         warn_if_disallowed_function_p): Removed.
6186         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
6187         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
6188         warning_if_disallowed_function_p.
6189         * flags.h (warn_if_disallowed_function_p,
6190         warn_disallowed_functions): Removed.
6191         * common.opt (Wdisallowed-function-list=): Removed.
6192         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
6193
6194 2009-03-28  Richard Guenther  <rguenther@suse.de>
6195
6196         PR tree-optimization/38723
6197         * tree-ssa-pre.c (compute_avail): Add all default definitions to
6198         the entry block.
6199
6200 2009-03-28  Jan Hubicka  <jh@suse.cz>
6201
6202         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
6203         test introduced by my previous patch.
6204
6205 2009-03-28  Richard Guenther  <rguenther@suse.de>
6206
6207         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
6208         the PHIs value undefined.
6209
6210 2009-03-28  Jan Hubicka  <jh@suse.cz>
6211
6212         * tree-pass.h (pass_fixup_cfg): New pass.
6213         * ipa-inline.c (inline_transform): Set
6214         always_inline_functions_inlined/after_inlining.
6215         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
6216         (pass_fixup_cfg): New pass.
6217         * passes.c (init_optimization_passes): Add fixup_cfg.
6218
6219 2009-03-28  Richard Guenther  <rguenther@suse.de>
6220
6221         PR tree-optimization/38458
6222         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
6223         argument use the arguments copy-of value.
6224
6225 2009-03-28  Richard Guenther  <rguenther@suse.de>
6226
6227         PR tree-optimization/38180
6228         * tree-ssa-ccp.c (get_default_value): Simplify.
6229         (likely_value): Likewise.
6230         (surely_varying_stmt_p): Properly handle VOP case.
6231         (ccp_initialize): Likewise.
6232         (ccp_fold): Handle propagating through *&.
6233         (fold_const_aggregate_ref): Also handle decls.
6234
6235 2009-03-28  Jan Hubicka  <jh@suse.cz>
6236
6237         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
6238         * cgraph.h (cgraph_node): Likewise.
6239         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
6240         (cgraph_reset_node): Use process flag.
6241         (cgraph_mark_functions_to_output): Likewise.
6242         (cgraph_expand_function): Likewise.
6243         (cgraph_expand_all_functions): Likewise.
6244         (cgraph_output_in_order): Likewise.
6245         * dwarf2out.c (reference_to_unused): Likewise.
6246         * passes.c do_per_function_toporder): Likewise.
6247
6248 2009-03-28  Jan Hubicka  <jh@suse.cz>
6249
6250         Bring from lto-branch:
6251
6252         2008-09-03  Doug Kwan  <dougkwan@google.com>
6253
6254         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
6255         enums instead of reason strings.
6256         * cgraph.c (cgraph_create_edge): Same.
6257         (cgraph_inline_failed_string): New function.
6258         * cgraph.h (cgraph_inline_failed_t): New enum type.
6259         (cgraph_inline_failed_string): New prototype.
6260         (struct cgraph_edge): Change type of INLINED_FAILED from constant
6261         char pointer to cgraph_inline_failed_t.
6262         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
6263         (cgraph_default_inline_p): Ditto.
6264         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
6265         to cgraph_inline_failed_t pointer.
6266         * cif-code.def: New file.
6267         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
6268         reason string.
6269         (cgraph_check_inline_limits): Change type of REASON to pointer to
6270         cgraph_inline_failed_t.  Replace reason strings with enums.
6271         (cgraph_default_inline_p): Ditto.
6272         (cgraph_recursive_inlining_p): Ditto.
6273         (update_caller_keys): Change type of FAILED_REASON to
6274         cgraph_inline_failed_t.
6275         (cgraph_set_inline_failed): Change type of REASON to pointer to
6276         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
6277         convert enums to strings for text output.
6278         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
6279         to be of type cgraph_inline_failed_t.  Replace reason strings with
6280         enums.  Call cgraph_inline_failed_string to covert enums
6281         to strings for text output.
6282         (cgraph_decide_inlining): Replace reason strings with enums.
6283         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
6284         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
6285         for text output.
6286         * tree-inline.c (expand_call_inline): Change type of REASON
6287         to cgraph_inline_failed_t.  Replace reason strings with enums.
6288         Call cgraph_inline_failed_string for text output.
6289         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
6290         (cgraph.o): Ditto.
6291
6292 2009-03-28  Jan Hubicka  <jh@suse.cz>
6293
6294         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
6295         cgraph_clone_node): Remove master clone handling.
6296         (cgraph_is_master_clone, cgraph_master_clone): Remove.
6297         * cgraph.h (master_clone): Remove.
6298         (cgraph_is_master_clone, cgraph_master_clone): Remove.
6299         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
6300         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6301
6302 2009-03-28  Jan Hubicka  <jh@suse.cz>
6303
6304         * cgraph.c (cgraph_function_body_availability): Functions declared
6305         inline are always safe to assume that it is not going to be replaced.
6306
6307 2009-03-28  Richard Guenther  <rguenther@suse.de>
6308
6309         PR tree-optimization/38513
6310         * tree-ssa-pre.c (eliminate): Remove redundant stores.
6311         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
6312         EXC_PTR_EXPR and FILTER_EXPR.
6313         (get_ref_from_reference_ops): Likewise.
6314
6315 2009-03-28  Richard Guenther  <rguenther@suse.de>
6316
6317         PR tree-optimization/38968
6318         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
6319         Use FLOOR_MOD_EXPR to compute misalignment.
6320
6321 2009-03-28  Richard Guenther  <rguenther@suse.de>
6322
6323         PR tree-optimization/37795
6324         * tree.h (combine_comparisons): Declare.
6325         * fold-const.c (combine_comparisons): Export.
6326         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
6327         comparisons.
6328         (ifcombine_iforif): Use combine_comparisons.
6329
6330 2009-03-28  Jan Hubicka  <jh@suse.cz>
6331
6332         * tree-eh.c (inlinable_call_p): New function.
6333         (make_eh_edges): Use it.
6334         (verify_eh_edges): Use it.
6335         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
6336         * except.c (reachable_next_level): Add inlinable_function argument
6337         (sjlj_find_directly_reachable_regions): Update.
6338         (add_reachable_handler): Do not set saw_any_handlers.
6339         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
6340         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
6341         Add new inlinable call parameter.
6342         (can_throw_internal, can_throw_external): Update.
6343         * except.h (can_throw_internal_1, can_throw_external_1,
6344         foreach_reachable_handler): Update declaration.
6345
6346 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
6347
6348         * config/arm/t-arm-coff, config/h8300/coff.h,
6349         config/i386/i386-aout.h, config/i386/i386-coff.h,
6350         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
6351         config/pdp11/2bsd.h, config/rs6000/aix41.h,
6352         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
6353         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
6354         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
6355         sys-types.h: Remove.
6356         * Makefile.in: Remove protoize and fixproto support and references
6357         in comments.
6358         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
6359         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
6360         Remove.
6361         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
6362         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
6363         unprotoize$(exeext).
6364         (rest.encap): Don't depend on $(STMP_FIXPROTO)
6365         (.PHONY): Don't depend on proto.
6366         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
6367         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
6368         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
6369         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
6370         build/gen-protos.o, build/scan.o, xsys-protos.h,
6371         build/fix-header$(build_exeext), build/fix-header.o,
6372         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
6373         stmp-install-fixproto): Remove.
6374         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
6375         SYSCALLS.c or fixproto files.
6376         (install-common): Don't install protoize.
6377         (install-headers-tar, install-headers-cpio, install-headers-cp):
6378         Don't depend on $(STMP_FIXPROTO).
6379         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
6380         install fixproto files or write out fixproto settings.
6381         (uninstall): Don't uninstall protoize.
6382         * config.gcc (use_fixproto): Remove.
6383         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
6384         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
6385         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
6386         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
6387         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
6388         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
6389         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
6390         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
6391         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
6392         * config/t-vxworks (STMP_FIXPROTO): Remove.
6393         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
6394         STMP_FIXPROTO): Remove.
6395         * config.in, configure: Regenerate.
6396         * crtstuff.c (gid_t, uid_t): Don't undefine.
6397         * doc/install.texi: Change m68k-coff to m68k-elf in example.
6398         (arm-*-coff, arm-*-aout: Remove target entries.
6399         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
6400         Remove mention of AIX 4.1.
6401         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
6402         * doc/invoke.texi (Running Protoize): Remove.
6403         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
6404         (Protoize Caveats): Remove.
6405         * tsystem.h: Update comments on headers assumed to exist.
6406
6407 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
6408
6409         * genautomata.c: Add a new year to the copyright.  Add a new
6410         reference.
6411         (struct insn_reserv_decl): Add comments for member bypass_list.
6412         (find_bypass): Remove.
6413         (insert_bypass): New.
6414         (process_decls): Use insert_bypass.
6415         (output_internal_insn_latency_func): Output all bypasses with the
6416         same input insn in one switch case.
6417
6418         * rtl.def (define_bypass): Describe bypass choice.
6419         * doc/md.texi (define_bypass): Ditto.
6420
6421 2009-03-27  Richard Guenther  <rguenther@suse.de>
6422
6423         * gimplify.c (mark_addressable): Export.
6424         * tree-flow.h (mark_addressable): Declare.
6425         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
6426         * tree-ssa.c (verify_phi_args): Verify that address taken
6427         variables have TREE_ADDRESSABLE set.
6428
6429 2009-03-27  Richard Guenther  <rguenther@suse.de>
6430
6431         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
6432         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
6433         Do not mark decls TREE_ADDRESSABLE.
6434         (build_fold_addr_expr): Adjust.
6435         (fold_addr_expr): Remove.
6436         (fold_unary): Use build_fold_addr_expr.
6437         (fold_comparison): Likewise.
6438         (split_address_to_core_and_offset): Likewise.
6439         * coverage.c (tree_coverage_counter_addr): Mark the array decl
6440         TREE_ADDRESSABLE.
6441         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
6442         (gimplify_modify_expr_to_memcpy): Mark source and destination
6443         addressable.
6444         * omp-low.c (create_omp_child_function): Mark the object decl
6445         TREE_ADDRESSABLE.
6446         (lower_rec_input_clauses): Mark the var we take the address of
6447         TREE_ADDRESSABLE.
6448         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
6449
6450 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6451
6452         PR middle-end/39315
6453         * cfgexpand.c (expand_one_stack_var_at): Change alignment
6454         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
6455
6456 2009-03-27  Richard Guenther  <rguenther@suse.de>
6457
6458         PR tree-optimization/39120
6459         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
6460         constraints.
6461         (handle_lhs_call): Process return constraints.  Add escape
6462         constraints if necessary.
6463         (handle_const_call): Fill out return constraints.  Make nested
6464         case more precise.  Avoid consttmp if possible.
6465         (handle_pure_call): Fill out return constraints.  Avoid
6466         callused if possible.
6467         (find_func_aliases): Simplify call handling.
6468
6469 2009-03-27  Richard Guenther  <rguenther@suse.de>
6470
6471         PR tree-optimization/39120
6472         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
6473         as a representative.
6474         (solve_graph): Do propagate CALLUSED.
6475         (handle_pure_call): Use a scalar constraint from CALLUSED for
6476         the return value.
6477         (find_what_p_points_to): CALLUSED shall not appear in poins-to
6478         solutions.
6479
6480 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6481
6482         PR c/39323
6483         * c-common.c (handle_aligned_attribute): Properly check alignment
6484         overflow.  Use (1U << i) instead of (1 << i).
6485
6486         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
6487
6488         * expr.h (get_mem_align_offset): Updated.
6489
6490         * tree.h (tree_decl_common): Change align to "unsigned int" and
6491         move it before pointer_alias_set.
6492
6493 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6494             Jakub Jelinek  <jakub@redhat.com>
6495
6496         PR target/38034
6497         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
6498         gr_register_operand with gr_reg_or_0_operand.
6499         (cmpxchg_rel_di): Likewise.
6500         (sync_lock_test_and_set<mode>): Likewise.
6501
6502 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6503
6504         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
6505         (true_regnum): Likewise.
6506
6507         * rtlanal.c (subreg_info): Moved to ...
6508         * rtl.h (subreg_info): Here.  New.
6509         (subreg_get_info): New.
6510
6511         * rtlanal.c (subreg_get_info): Make it extern.
6512
6513 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6514
6515         PR target/39472
6516         * config/i386/i386.c (ix86_abi): New.
6517         (override_options): Handle -mabi=.
6518         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
6519         (ix86_call_abi_override): Likewise.
6520         (init_cumulative_args): Likewise.
6521         (function_arg_advance): Likewise.
6522         (function_arg_64): Likewise.
6523         (function_arg): Likewise.
6524         (ix86_pass_by_reference): Likewise.
6525         (ix86_function_value_regno_p): Likewise.
6526         (ix86_build_builtin_va_list_abi): Likewise.
6527         (setup_incoming_varargs_64): Likewise.
6528         (is_va_list_char_pointer): Likewise.
6529         (ix86_init_machine_status): Likewise.
6530         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
6531         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
6532         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
6533         (ix86_function_abi): Make it static and return enum calling_abi.
6534         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
6535         with ix86_abi.
6536         (ix86_fn_abi_va_list): Updated.
6537
6538         * config/i386/i386.h (ix86_abi): New.
6539         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
6540         (CONDITIONAL_REGISTER_USAGE): Likewise.
6541         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
6542         (machine_function): Likewise.
6543
6544         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
6545         with ix86_abi.
6546         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
6547         (STACK_BOUNDARY): Likewise.
6548         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
6549
6550         * config/i386/i386.opt (mabi=): New.
6551
6552         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
6553         return enum calling_abi.
6554         (ix86_function_type_abi): Likewise.
6555         (ix86_function_abi): Removed.
6556
6557         * doc/invoke.texi: Document -mabi= option for x86.
6558
6559 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6560
6561         * builtins.c (real_dconstp): Delete.
6562         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
6563
6564 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
6565             Jakub Jelinek  <jakub@redhat.com>
6566
6567         PR debug/37959
6568         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
6569         (gen_subprogram_die): When a function is explicit, generate the
6570         DW_AT_explicit attribute.
6571         * langhooks.h (struct lang_hooks_for_decls): Add
6572         function_decl_explicit_p langhook.
6573         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
6574         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
6575
6576 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
6577
6578         * builtins.c (fold_builtin_memory_op): Optimize memmove
6579         into memcpy if we can prove source and destination don't overlap.
6580
6581         * tree-inline.c: Include gt-tree-inline.h.
6582         (clone_fn_id_num): New variable.
6583         (clone_function_name): New function.
6584         (tree_function_versioning): Use it.
6585         * Makefile.in (GTFILES): Add tree-inline.c.
6586
6587 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
6588
6589         * BASE-VER: Change to 4.5.0.
6590
6591 2009-03-27  Xinliang David Li  <davidxl@google.com>
6592
6593         PR tree-optimization/39557
6594         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
6595
6596 2009-03-27  Xinliang David Li  <davidxl@google.com>
6597
6598         PR tree-optimization/39548
6599         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
6600         candidate check.
6601
6602 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6603
6604         * c-common.c (pointer_int_sum): Use %wd on return from
6605         tree_low_cst.
6606
6607 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
6608
6609         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
6610         on return from tree_low_cst.
6611
6612 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
6613
6614         PR c++/36799
6615         * ginclude/stdarg.h (va_copy): Define also for
6616         __GXX_EXPERIMENTAL_CXX0X__.
6617
6618 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6619
6620         PR c++/35652
6621         * builtins.h (c_strlen): Do not warn here.
6622         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
6623         * c-common.c (pointer_int_sum): Take an explicit location.
6624         Warn about offsets out of bounds.
6625         * c-common.h (pointer_int_sum): Adjust declaration.
6626
6627 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6628
6629         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
6630         markup glitch.
6631
6632 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
6633
6634         PR c++/39554
6635         * opts.c (warn_if_disallowed_function_p): Don't assume
6636         get_callee_fndecl must return non-NULL.
6637
6638 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
6639
6640         PR rtl-optimization/39522
6641         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
6642         when reg_reloaded_valid is set.
6643
6644 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6645
6646         * config/spu/divv2df3.c: New file.
6647         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
6648         (DPBIT_FUNCS): Filter out _div_df.
6649
6650 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
6651
6652         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
6653         a jump insn, count that jump in the distance to the loop start.
6654
6655 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
6656
6657         PR target/39523
6658         * config/sh/sh.c (calc_live_regs): Fix condition for global
6659         registers except PIC_OFFSET_TABLE_REGNUM.
6660
6661 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
6662
6663         PR/39518
6664         * doc/invoke.texi (-mconsole): New.
6665         (-mcygwin): New.
6666         (-mno-cygwin): New.
6667         (-mdll): New.
6668         (-mnop-fun-dllimport): New.
6669         (-mthread): New.
6670         (-mwin32): New.
6671         (-mwindows): New.
6672         (sub section "i386 and x86-64 Windows Options"): New.
6673
6674 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
6675
6676         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
6677         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
6678
6679 2009-03-25  Richard Guenther  <rguenther@suse.de>
6680
6681         PR middle-end/39497
6682         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
6683         of -Wno-error.
6684
6685 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
6686
6687         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
6688         neither of haifa/selective schedulers are working.
6689
6690 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6691
6692         * doc/invoke.texi (Debugging Options): Fix description of
6693         -fno-merge-debug-strings.
6694
6695 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
6696
6697         * config/cris/libgcc.ver: New version-script.
6698         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
6699
6700         * configure.ac <GAS features, nop mnemonic>: Add pattern
6701         crisv32-*-* for "nop".
6702         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
6703         * configure: Regenerate.
6704
6705 2009-03-24  Ira Rosen  <irar@il.ibm.com>
6706
6707         PR tree-optimization/39529
6708         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
6709         mark_sym_for_renaming for the tag copied to the new vector
6710         pointer.
6711
6712 2009-03-24  Arthur Loiret  <aloiret@debian.org>
6713
6714         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
6715         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
6716         EXTRA_SPEC_FUNCTIONS.
6717         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
6718         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
6719         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
6720         -march and -mtune options.
6721
6722 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
6723
6724         * config/m68k/t-rtems: Add m5329 multilib.
6725
6726 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
6727             Jakub Jelinek  <jakub@redhat.com>
6728
6729         PR debug/39524
6730         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
6731         nodes.
6732
6733 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
6734
6735         PR c/39495
6736         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
6737         instead of c_parser_expression_conv, if original_code isn't one of the
6738         4 allowed comparison codes, fail.
6739
6740 2009-03-23  Richard Guenther  <rguenther@suse.de>
6741
6742         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
6743         * tree.h (struct tree_type): Likewise.
6744         * reload.h (struct insn_chain): Likewise.
6745         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
6746         * function.h (struct function): Likewise.
6747         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
6748
6749 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
6750
6751         PR tree-optimization/39516
6752         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
6753
6754 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
6755
6756         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
6757         should be set true if BITS_PER_WORD of target is bigger than 32
6758
6759 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
6760
6761         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
6762         Translate -B-options to -rpath-link.  Correct existing
6763         rpath-link and conditionalize on !nostdlib.
6764
6765 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6766
6767         * doc/extend.texi (Function Attributes, Variable Attributes):
6768         Fix typos.
6769         * doc/invoke.texi (Debugging Options, Optimize Options)
6770         (i386 and x86-64 Options, MCore Options): Likewise.
6771
6772 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
6773
6774         PR debug/37890
6775         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
6776         it for block local namespace aliases.
6777         (gen_decl_die): Pass context_die to gen_namespace_die.
6778
6779 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
6780
6781         PR c/39495
6782         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
6783         minimum or maximum value.
6784
6785 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
6786
6787         * reginfo.c (globalize_reg): Recompute derived reg sets.
6788
6789 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
6790
6791         PR target/39063
6792         * libgcc2.c (mprotect): Do not use signed arguments for
6793         VirtualProtect, use DWORD arguments.  Also fix the 'may
6794         be used uninitialized' warning for the np variable.
6795
6796 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
6797
6798         PR target/39496
6799         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
6800         functions using regparm calling conventions when not optimizing.
6801         (ix86_function_sseregparm): Similarly for sseregparm calling
6802         conventions.
6803
6804 2009-03-19  Li Feng  <nemokingdom@gmail.com>
6805
6806         PR middle-end/39500
6807         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
6808         dependence if the first conflict is after niter iterations.
6809
6810 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
6811
6812         PR middle-end/38609
6813         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
6814         functions with dynamic stack-pointer adjustments.
6815
6816 2009-03-19  Ben Elliston  <bje@au.ibm.com>
6817
6818         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
6819         option; change to -msdata=data.
6820
6821 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6822
6823         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
6824         and -fopenmp.
6825
6826 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
6827
6828         PR target/35180
6829         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
6830
6831 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
6832
6833         * doc/invoke.texi (Code Gen Options): Expand discussion of
6834         -fno-common.
6835
6836 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
6837
6838         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
6839         * matrix-reorg.c (struct matrix_info): Likewise.
6840         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
6841         * rtl.h (struct mem_attrs): Likewise.
6842         * df.h (struct df): Likewise.
6843         * tree-data-ref.h (struct data_dependence_relation): Likewise.
6844         * ira-int.h (struct ira_allocno): Likewise.
6845         * df-scan.c (struct df_collection_rec): Likewise.
6846         * ira.c (struct equivalence): Likewise.
6847         * function.c (struct temp_slot): Likewise.
6848         * cfgloop.h (struct loop): Likewise.
6849
6850         PR debug/39485
6851         * function.c (use_register_for_decl): When not optimizing, disregard
6852         register keyword for variables with types containing methods.
6853
6854 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
6855
6856         PR middle-end/39447
6857         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
6858         (is_simple_operand): Call contains_component_ref_p before calling data
6859         reference analysis that would fail on COMPONENT_REFs.
6860
6861         * tree-vrp.c (search_for_addr_array): Fix formatting.
6862
6863 2009-03-18  Richard Guenther  <rguenther@suse.de>
6864
6865         * tree-vect-transform.c (vect_loop_versioning): Fold the
6866         generated comparisons.
6867         * tree-vectorizer.c (set_prologue_iterations): Likewise.
6868         (slpeel_tree_peel_loop_to_edge): Likewise.
6869
6870 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6871
6872         PR middle-end/37805
6873         * opts.c (print_specific_help): In addition to `undocumented',
6874         accept `separate' and `joined' flags if passed alone.  Describe
6875         output by the first matched one of those.
6876         (common_handle_option): Skip over empty strings.
6877         * gcc.c (display_help): Fix help string for `--help='.
6878         * doc/invoke.texi (Option Summary, Overall Options): With
6879         `--help=', classes and qualifiers can both be repeated, but
6880         only the latter can be negated.  One should not pass only
6881         negated qualifiers.  Fix markup and examples.
6882
6883         Revert
6884         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
6885         PR middle-end/37805
6886         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
6887         and -fhelp=separate.
6888
6889 2009-03-17  Jing Yu  <jingyu@google.com>
6890
6891         PR middle-end/39378
6892         * function.h (struct rtl_data): Move is_thunk from here...
6893         (struct function): ...to here.
6894         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
6895         * varasm.c (assemble_start_function): Change is_thunk from crtl to
6896         cfun.
6897         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
6898         cfun.
6899         (alpha_does_function_need_gp, alpha_start_function): Likewise.
6900         (alpha_output_function_end_prologue): Likewise.
6901         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
6902         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
6903         (rs6000_output_function_epilogue): Likewise.
6904         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
6905
6906 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
6907
6908         PR target/39482
6909         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
6910         from different units in a single alternative.
6911         (*truncdfsf_i387): Ditto.
6912         (*truncxfsf2_mixed): Ditto.
6913         (*truncxfdf2_mixed): Ditto.
6914
6915 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
6916
6917         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
6918         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
6919
6920         PR debug/39474
6921         * tree-ssa-live.c (remove_unused_locals): Don't remove local
6922         unused non-artificial variables when not optimizing.
6923
6924         PR debug/39471
6925         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
6926         DW_TAG_imported_module even if decl is IMPORTED_DECL with
6927         NAMESPACE_DECL in its DECL_INITIAL.
6928
6929         PR middle-end/39443
6930         * optabs.c (set_user_assembler_libfunc): New function.
6931         * expr.h (set_user_assembler_libfunc): New prototype.
6932         * c-common.c: Include libfuncs.h.
6933         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
6934         for memcmp, memset, memcpy, memmove and abort.
6935         * Makefile.in (c-common.o): Depend on libfuncs.h.
6936
6937         PR debug/39412
6938         * dwarf2out.c (gen_inlined_enumeration_type_die,
6939         gen_inlined_structure_type_die, gen_inlined_union_type_die,
6940         gen_tagged_type_instantiation_die): Removed.
6941         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
6942         do nothing.
6943
6944 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
6945
6946         PR testsuite/38526
6947         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
6948         its use.
6949         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
6950         (check-parallel-%): Ditto.
6951         (check-consistency): Ditto.
6952
6953 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
6954
6955         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
6956         local variable rhs by NULL_TREE.
6957
6958 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6959
6960         PR target/39477
6961         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
6962
6963 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6964
6965         PR target/39476
6966         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
6967
6968 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6969
6970         PR target/39473
6971         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
6972         for ms->sysv ABI calls only in 64bit mode.
6973
6974         * config/i386/i386.md (untyped_call): Support 32bit.
6975
6976 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
6977
6978         * doc/extend.texi: Replace x86_65 with x86_64.
6979
6980 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
6981
6982         PR tree-optimization/39455
6983         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
6984         mismatches for POINTER_TYPE_P (type).
6985         (number_of_iterations_le): Likewise.
6986
6987 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
6988
6989         * config/picochip/picochip.c: Removed profiling support.
6990         * config/picochip/picochip.md: Removed profiling instruction.
6991         * config/picochip/picochip.h: Removed profiling builtin.
6992
6993 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
6994
6995         * doc/install.texi (--with-host-libstdcxx): Document.
6996
6997 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
6998
6999         PR target/34299
7000         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
7001         generate a warning if the function name does not begin with
7002         "__vector" and the function has either the 'signal' or 'interrupt'
7003         attribute, from here to ...
7004         (avr_declare_function_name): ...here. New function.
7005         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
7006         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
7007
7008 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
7009
7010         PR bootstrap/39454
7011         * cse.c (fold_rtx): Don't modify original const_arg1 when
7012         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
7013         separate variable instead.
7014         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
7015         from out of range shift counts.
7016         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
7017
7018 2009-03-13  Catherine Moore  <clm@codesourcery.com>
7019
7020         * config/i386/x-mingw32 (host-mingw32.o): Replace
7021         diagnostic.h with $(DIAGNOSTIC_H).
7022
7023 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
7024
7025         PR target/39431
7026         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
7027         predicate.
7028         * config/i386/sync.md (sync_compare_and_swap<mode>,
7029         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
7030         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
7031         into a register.
7032         (sync_double_compare_and_swapdi_pic,
7033         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
7034         cmpxchg8b_pic_memory_operand instead of just memory_operand.
7035
7036 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7037
7038         PR target/39445
7039         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7040
7041 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7042
7043         PR target/39327
7044         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7045         (avx_addsubv4df3): Likewise.
7046         (*avx_addsubv4sf3): Likewise.
7047         (sse3_addsubv4sf3): Likewise.
7048
7049 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
7050
7051         PR target/38824
7052         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
7053
7054 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
7055
7056         PR debug/39432
7057         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
7058         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
7059         registers for allocnos created from user-defined variables.
7060
7061 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7062
7063         PR target/39181
7064         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
7065         of non-integer mode as well.
7066
7067 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
7068
7069         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
7070         for functions for which the parameter types are unknown.
7071
7072 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
7073
7074         PR target/39137
7075         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
7076         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
7077         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
7078         * config/i386/i386.c (ix86_local_alignment): For
7079         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
7080         long long variables on the stack to avoid dynamic realignment.
7081         Allow the first argument to be a decl rather than type.
7082         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
7083
7084 2009-03-11  Nick Clifton  <nickc@redhat.com>
7085
7086         PR target/5362
7087         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
7088         options.
7089         Add description to mno-lsim option.
7090         * config/mcore/mcore.h: Remove comment about deprecated m4align
7091         option.
7092         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
7093         * doc/invoke.texi: Add description of mno-lsim and
7094         mstack-increment options.
7095
7096         * config/fr30/fr30.opt: Document the -mno-lsim option.
7097         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
7098         and -mno-lsim options.
7099
7100 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7101
7102         * fold-const.c (fold_comparison): Only call fold_inf_compare
7103         if the mode supports infinities.
7104
7105 2009-03-11  Jason Merrill  <jason@redhat.com>
7106
7107         PR debug/39086
7108         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
7109         end already did.  Notice GIMPLE_CALL modifications of the result.
7110         Don't copy debug information from an ignored decl or a decl from
7111         another function.
7112
7113 2009-03-10  Richard Guenther  <rguenther@suse.de>
7114             Nathan Froyd  <froydnj@codesourcery.com>
7115
7116         PR middle-end/37850
7117         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
7118         (__divMODE3): Likewise.
7119
7120 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
7121
7122         PR tree-optimization/39394
7123         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
7124         DECL_SIZE_UNIT of variable length FIELD_DECLs.
7125
7126 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7127
7128         * recog.c (verfiy_changes): Disallow renaming of hard regs in
7129         inline asms for register asm ("") declarations.
7130
7131 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7132
7133         * fold-const.c (fold_unary): Fix comment.
7134
7135 2009-03-07  Jan Hubicka  <jh@suse.cz>
7136
7137         PR target/39361
7138         * tree-inline.c (setup_one_parameter): Do replacement of const
7139         argument by constant in SSA form.
7140
7141 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7142
7143         PR middle-end/38028
7144         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
7145         determine alignment passed to assign_stack_local.
7146         (assign_parms_unsplit_complex): Likewise.
7147         * except.c (sjlj_build_landing_pads): Likewise.
7148
7149 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7150
7151         PR middle-end/39360
7152         * tree-flow.h (add_referenced_var): Return bool instead of void.
7153         * tree-dfa.c (add_referenced_var): Return result of
7154         referenced_var_check_and_insert call.
7155         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
7156         of referenced_var_check_and_insert.
7157
7158         PR debug/39372
7159         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
7160         (gen_variable_die): Emit DW_AT_location on abstract static variable's
7161         DIE, don't emit it if abstract origin already has it.
7162         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
7163         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
7164
7165 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7166
7167         * genpreds.c (needs_variable): Fix parentheses at variable name
7168         detection.
7169         (write_tm_constrs_h): Indent generated code.
7170
7171 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7172
7173         * doc/extend.texi (Function Attributes): Add documentation
7174         for isr attributes.
7175
7176 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
7177
7178         PR debug/39387
7179         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
7180         take locus from its DECL_SOURCE_LOCATION instead of input_location.
7181
7182 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
7183
7184         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
7185         the loop as bad.
7186
7187 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
7188
7189         PR debug/39379
7190         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
7191         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
7192
7193 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
7194
7195         * config/i386/i386.md (R8_REG, R9_REG): New constants.
7196         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
7197         constants instead of magic numbers.
7198         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
7199         (QI_REG_P): Ditto.
7200         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
7201         (x86_64_ms_abi_int_parameter_registers): Ditto.
7202         (x86_64_int_return_registers): Ditto.
7203         (ix86_maybe_switch_abi): Ditto.
7204         (ix86_expand_call): Ditto for clobbered_registers array.
7205         (ix86_hard_regno_mode_ok): Ditto.
7206         (x86_extended_QIreg_mentioned_p): Ditto.
7207
7208 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
7209
7210         PR tree-optimization/39349
7211         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
7212
7213         * combine.c (gen_lowpart_for_combine): Use omode when generating
7214         clobber.
7215
7216 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
7217
7218         PR rtl-optimization/39235
7219         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
7220
7221 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7222
7223         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
7224
7225 2009-03-04  Richard Guenther  <rguenther@suse.de>
7226
7227         PR tree-optimization/39362
7228         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
7229         that occur in abnormal PHIs should be varying.
7230
7231 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
7232
7233         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
7234         Extend comments.
7235         (simple_iv):  Take loop as an argument instead of statement.
7236         * tree-scalar-evolution.h (simple_iv): Declaration changed.
7237         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
7238         to simple_iv.
7239         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
7240         Ditto.
7241         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
7242         * matrix-reorg.c (analyze_transpose): Ditto.
7243         * tree-data-ref.c (dr_analyze_innermost): Ditto.
7244         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
7245         * tree-predcom.c (ref_at_iteration): Ditto.
7246         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
7247
7248 2009-03-04  Richard Guenther  <rguenther@suse.de>
7249
7250         PR tree-optimization/39358
7251         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
7252         escaped_id and callused_id.
7253         (solve_graph): Likewise.
7254
7255 2009-03-04  Richard Guenther  <rguenther@suse.de>
7256
7257         PR tree-optimization/39339
7258         * tree-sra.c (try_instantiate_multiple_fields): Make it
7259         no longer ICE on the above.
7260
7261 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
7262
7263         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
7264         that fits within Pmode.
7265
7266 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7267
7268         PR middle-end/10109
7269         * tm.texi (LIBCALL_VALUE): Update description.
7270
7271 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
7272
7273         PR middle-end/34443
7274         * doc/extend.texi (section): Update description.
7275
7276 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
7277
7278         PR middle-end/39345
7279         * tree-inline.c (remapped_type): New.
7280         (can_be_nonlocal): Call remapped_type instead of remap_type.
7281
7282 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7283
7284         PR fortran/39354
7285         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
7286         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
7287
7288 2009-03-03  Richard Guenther  <rguenther@suse.de>
7289
7290         PR middle-end/39272
7291         * tree.c (tree_nonartificial_location): New function.
7292         * tree.h (tree_nonartificial_location): Declare.
7293         * builtins.c (expand_builtin_memory_chk): Provide location
7294         of the call location for artificial function pieces.
7295         (maybe_emit_chk_warning): Likewise.
7296         (maybe_emit_sprintf_chk_warning): Likewise.
7297         (maybe_emit_free_warning): Likewise.
7298         * expr.c (expand_expr_real_1): Likewise.
7299
7300 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
7301
7302         PR tree-optimization/39343
7303         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
7304         COMPONENT_REF t has ARRAY_TYPE.
7305
7306 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
7307
7308         PR middle-end/39335
7309         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
7310         when the type precision of the induction variable should be
7311         larger than the type precision of nit.
7312         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
7313         * graphite.c (graphite_loop_normal_form): Same.
7314         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
7315
7316 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
7317
7318         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
7319         (*call_1_rex64_ms_sysv): Use named constants instead of magic
7320         numbers to describe clobbered registers.
7321         (*call_value_0_rex64_ms_sysv): Ditto.
7322         * config/i386/mmx.md (mmx_emms): Ditto.
7323         (mmx_femms): Ditto.
7324
7325 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
7326
7327         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
7328         of ABI_64.
7329
7330 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7331
7332         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
7333         (spu_section_type_flags): New function.
7334
7335 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
7336
7337         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
7338         reg_class_contents of FLOAT_REGS into a temporary.
7339
7340 2009-03-02  Richard Guenther  <rguenther@suse.de>
7341             Ira Rosen  <irar@il.ibm.com>
7342
7343         PR tree-optimization/39318
7344         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
7345         information to the vectorized statement.
7346
7347 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
7348
7349         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
7350         variable.  Use defined names instead of magic constants for REX SSE
7351         registers.
7352
7353 2009-03-01  Richard Guenther  <rguenther@suse.de>
7354
7355         PR tree-optimization/39331
7356         * omp-low.c (lower_send_shared_vars): Do not receive new
7357         values for the reference of DECL_BY_REFERENCE parms or results.
7358
7359 2009-03-01  Jan Hubicka  <jh@suse.cz>
7360
7361         PR debug/39267
7362         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
7363         BLOCK_NONLOCALIZED_VAR): New macros.
7364         (tree_block): Add nonlocalized_vars.
7365         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
7366         gen_decl_die): Add origin argument.  Allow generation of die with
7367         origin at hand only.
7368         (gen_member_die, gen_type_die_with_usage, force_decl_die,
7369         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
7370         of gen_*.
7371         (gen_block_die): Fix checking for unused blocks.
7372         (process_scope_var): Break out from .... ; work with origins only.
7373         (decls_for_scope) ... here; process nonlocalized list.
7374         (dwarf2out_ignore_block): Look for nonlocalized vars.
7375         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
7376         vars.
7377         (dump_scope_block): Dump them.
7378         * tree-inline.c (remap_decls): Handle nonlocalized vars.
7379         (remap_block): Likewise.
7380         (can_be_nonlocal): New predicate.
7381         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
7382
7383 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7384
7385         * configure: Regenerate.
7386
7387 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7388
7389         * optc-gen.awk: No need to duplicate option flags twice.
7390         Reuse help texts for duplicate options which do not have any.
7391
7392         * gcc.c (display_help): Document --version.
7393
7394         * gcc.c (main): If print_help_list and verbose_flag, ensure
7395         driver output comes before subprocess output.
7396
7397         * optc-gen.awk: Assign all remaining fields to help string,
7398         space-separated, for multi-line help in *.opt.
7399
7400         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
7401         -Wno-pedantic-ms-format is for MinGW targets only.
7402
7403         * doc/options.texi (Option file format): Fix bad indentation,
7404         restoring dropped sentence.
7405
7406 2009-02-28  Jan Hubicka  <jh@suse.cz>
7407
7408         * tree-inline.c (tree_function_versioning): Output debug info.
7409
7410 2009-02-28  Jan Hubicka  <jh@suse.cz>
7411
7412         PR debug/39267
7413         * tree-inline.c (setup_one_parameter): Do not copy propagate
7414         arguments when not optimizing.
7415
7416 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
7417
7418         PR target/39327
7419         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
7420         (avx_addsubv4df3): Likewise.
7421         (*avx_addsubv4sf3): Likewise.
7422         (sse3_addsubv4sf3): Likewise.
7423         (*avx_addsubv2df3): Likewise.
7424         (sse3_addsubv2df3): Likewise.
7425         (avx_unpckhps256): Correct item selectors.
7426         (avx_unpcklps256): Likewise.
7427         (avx_unpckhpd256): Likewise.
7428         (avx_unpcklpd256): Likewise.
7429
7430 2009-02-28  Jan Hubicka  <jh@suse.cz>
7431
7432         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
7433         static vars.
7434         (copy_arguments_for_versioning): If var is declared don't declare it.
7435         (tree_function_versioning): First setup substitutions and then copy
7436         args.
7437
7438 2009-02-27  Jan Hubicka  <jh@suse.cz>
7439
7440         PR debug/39267
7441         * cgraph.h (varpool_output_debug_info): Remove.
7442         * cgraphunit.c (varpool_output_debug_info): Remove.
7443         * dwarf2out.c (deferred_locations_struct): New struct
7444         (deferred_locations): New type.
7445         (deferred_locations_list): New static var.
7446         (deffer_location): New function.
7447         (gen_variable_die): Use it.
7448         (decls_for_scope): Output info on local static vars.
7449         (dwarf2out_finish): Process deferred locations.
7450         * varpool.c (varpool_output_debug_info): Remove.
7451
7452 2009-02-27  Jan Hubicka  <jh@suse.cz>
7453
7454         PR debug/39267
7455         * tree.h (TREE_PROTECTED): Fix comment.
7456         (BLOCK_HANDLER_BLOCK): Remove.
7457         (struct tree_block): Remove handler_block add body_block.
7458         (inlined_function_outer_scope_p): New.
7459         (is_body_block): Remove.
7460         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
7461         * dwarf2out.c (is_inlined_entry_point): Remove.
7462         (add_high_low_attributes): Use inlined_function_outer_scope_p.
7463         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
7464         code.
7465         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
7466         * gimplify.c (gimplify_expr): Gimplify body blocks.
7467         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
7468         block with multiple subblocks.
7469         (dump_scope_block): Prettier output; dump more flags and info.
7470         (dump_scope_blocks): New.
7471         (remove_unused_locals): Use dump_scope_blocks.
7472         * tree-flow.h (dump_scope_blocks): Declare.
7473         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
7474         * stmt.c (is_body_block): Remove.
7475         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
7476         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
7477
7478 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
7479
7480         PR middle-end/39308
7481         * graphite.c (graphite_loop_normal_form): Do not call
7482         number_of_iterations_exit from a gcc_assert.
7483
7484 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7485
7486         * config/s390/s390.c (s390_swap_cmp): Look for conditional
7487         jumps if COND is NULL.
7488         (find_cond_jump): New function.
7489         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
7490         * config/s390/s390.md: Remove z10_cobra attribute value.
7491
7492 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
7493
7494         * config/alpha/alpha.h (alpha_expand_mov): Return false if
7495         force_const_mem returns NULL_RTX.
7496
7497 2009-02-26  Jan Hubicka  <jh@suse.cz>
7498
7499         PR debug/39267
7500         * cgraph.h (varpool_output_debug_info): Remove.
7501         * cgraphunit.c (varpool_output_debug_info): Remove.
7502         * dwarf2out.c (deferred_locations_struct): New struct
7503         (deferred_locations): New type.
7504         (deferred_locations_list): New static var.
7505         (deffer_location): New function.
7506         (gen_variable_die): Use it.
7507         (decls_for_scope): Output info on local static vars.
7508         (dwarf2out_finish): Process deferred locations.
7509         * varpool.c (varpool_output_debug_info): Remove.
7510
7511 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
7512
7513         PR rtl-optimization/39241
7514         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
7515         to subreg_offset_representable_p.
7516
7517 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
7518
7519         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
7520         execute function prototype.  Get f and nregs from max_reg_num
7521         and get_insns.  Remove the first backward pass as it's dead,
7522         guard the forward pass by flag_expensive_optimizations.
7523         (rest_of_handle_regmove): Delete.
7524         (pass_regmove): Replace it with regmove_optimize.
7525
7526 2009-02-25  Martin Jambor  <mjambor@suse.cz>
7527
7528         PR tree-optimization/39259
7529         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
7530         calls_alloca function flags.
7531         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
7532         calls are detected.
7533
7534 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
7535
7536         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
7537         flags_set_1_rtx, flags_set_1_set): Delete.
7538         (regmove_optimize): Do not call mark_flags_life_zones.
7539
7540 2009-02-24  Julian Brown  <julian@codesourcery.com>
7541
7542         PR target/35965
7543         * config/arm/arm.c (require_pic_register): Only set
7544         cfun->machine->pic_reg once per function.
7545
7546 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
7547
7548         * doc/invoke.texi (Link Options): Document an easier way to pass
7549         options that take arguments to the GNU linker using -Xlinker and -Wl.
7550
7551 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
7552
7553         PR target/33785
7554         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
7555
7556 2009-02-24  Richard Guenther  <rguenther@suse.de>
7557
7558         PR debug/39285
7559         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
7560
7561 2009-02-24  Richard Guenther  <rguenther@suse.de>
7562             Zdenek Dvorak  <ook@ucw.cz>
7563
7564         PR tree-optimization/39233
7565         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
7566         from converting them to a generic type.
7567
7568 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
7569
7570         PR tree-optimization/39260
7571         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
7572         contains a condition with a real type.
7573         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
7574
7575 2009-02-23  Jason Merrill  <jason@redhat.com>
7576
7577         PR c++/38880
7578         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
7579         narrowing_initializer_constant_valid_p.
7580         (narrowing_initializer_constant_valid_p): Don't return
7581         null_pointer_node for adding a pointer to itself.
7582
7583 2009-02-23  Jan Hubicka  <jh@suse.cz>
7584
7585         PR c/12245
7586         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
7587         resizing.
7588
7589 2009-02-23  Jan Hubicka  <jh@suse.cz>
7590
7591         PR tree-optimization/37709
7592         * tree.c (block_ultimate_origin): Move here from dwarf2out.
7593         * tree.h (block_ultimate_origin): Declare.
7594         * dwarf2out.c (block_ultimate_origin): Move to tree.c
7595         * tree-ssa-live.c (remove_unused_scope_block_p):
7596         Eliminate blocks containig no instructions nor live variables nor
7597         nested blocks.
7598         (dump_scope_block): New function.
7599         (remove_unused_locals): Enable removal of dead blocks by default;
7600         enable dumping at TDF_DETAILS.
7601
7602 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
7603
7604         * config/i386/i386.c (classify_argument): Don't allow COImode
7605         and OImode.
7606         (function_arg_advance_32): Don't allow OImode.
7607         (function_arg_32): Likewise.
7608         (function_value_32): Likewise.
7609         (return_in_memory_32): Likewise.
7610         (function_arg_64): Remove OImode comment.
7611
7612 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
7613
7614         PR target/39261
7615         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
7616         ix86_expand_vector_set for V4DImode in 64bit mode only.
7617         (ix86_expand_vector_init_one_var): Likewise.
7618
7619 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
7620
7621         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
7622
7623 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
7624
7625         PR bootstrap/39257
7626         * loop-iv.c: Revert last change.
7627         * emit-rtl.c: Likewise.
7628
7629 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
7630
7631         PR target/39256
7632         * config/i386/i386.c (type_natural_mode): Remove an extra
7633         space in the warning message.
7634         (function_value_32): Handle 32-byte vector modes.
7635         (return_in_memory_32): Likewise.
7636
7637 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
7638
7639         * loop-iv.c (truncate_value): New function.
7640         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
7641         of lowpart_subreg.
7642         (lowpart_subreg): Move to...
7643         * emit-rtl.c: ...here.
7644
7645 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
7646
7647         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
7648         accidental and undocumented change at revision 140860.
7649
7650 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
7651
7652         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
7653         take gimple_seq * arguments.
7654         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
7655         types_compatible_p langhook.
7656
7657 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
7658             Joseph Myers  <joseph@codesourcery.com>
7659
7660         * config/arm/arm.c (arm_builtin_va_list): New function.
7661         (arm_expand_builtin_va_start): Likewise.
7662         (arm_gimplify_va_arg_expr): Likewise.
7663         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
7664         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
7665         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
7666         (va_list_type): New variable.
7667         (arm_mangle_type): Mangle va_list_type appropriately.
7668
7669 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
7670
7671         PR middle-end/39157
7672         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
7673         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
7674         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
7675         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
7676         parameter to 1000 for -O1 by default.
7677         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
7678         parameter.
7679         * loop-invariant.c: Include params.h.
7680         (move_loop_invariants): Don't call move_single_loop_invariants on
7681         very large loops.
7682
7683 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
7684
7685         * calls.c (emit_library_call_value_1): Use slot_offset instead of
7686         offset when calculating bounds for indexing stack_usage_map.  Fixes
7687         a buffer overflow with certain target setups.
7688
7689 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
7690
7691         PR target/39240
7692         * calls.c (expand_call): Clear try_tail_call if caller and callee
7693         disagree in promotion of function return value.
7694
7695 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
7696
7697         PR target/39175
7698         * c-common.c (c_determine_visibility): If visibility changed and
7699         DECL_RTL has been already set, call make_decl_rtl to update symbol
7700         flags.
7701
7702 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7703
7704         PR c++/39188
7705         * varasm.c (assemble_variable): Don't check DECL_NAME when
7706         globalizing a variable.
7707
7708 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
7709
7710         PR c/38483
7711         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
7712         expression before any __builtin_trap call.
7713         * c-typeck.c (build_function_call): Convert and check function
7714         arguments before generating a call to a trap.  Evaluate the
7715         function arguments before the trap.
7716
7717 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
7718
7719         PR target/39228
7720         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
7721         (UNSPEC_FXAM_MEM): New unspec.
7722         (fxam<mode>2_i387_with_temp): New insn and split pattern.
7723         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
7724         memory using fxam<mode>2_i387_with_temp to remove excess precision.
7725
7726 2009-02-19  Richard Guenther  <rguenther@suse.de>
7727
7728         PR tree-optimization/39207
7729         PR tree-optimization/39074
7730         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
7731         storedanything_tree): New.
7732         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
7733         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
7734         (build_succ_graph): Add edges from STOREDANYTHING to all
7735         non-direct nodes.
7736         (init_base_vars): Initialize STOREDANYTHING.
7737         (compute_points_to_sets): Free substitution info after
7738         building the succ graph.
7739         (ipa_pta_execute): Likewise.
7740
7741         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
7742         field.
7743         (do_ds_constraint): Do not add to special var or non-pointer
7744         field solutions.
7745         (type_could_have_pointers): Split out from ...
7746         (could_have_pointers): ... here.  For arrays use the element type.
7747         (create_variable_info_for): Initialize may_have_pointers.
7748         (new_var_info): Likewise.
7749         (handle_lhs_call): Make the HEAP variable unknown-sized.
7750         (intra_create_variable_infos): Use a type with pointers for
7751         PARM_NOALIAS, make it unknown-sized.
7752
7753 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7754
7755         PR target/39224
7756         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
7757
7758 2009-02-18  Jason Merrill  <jason@redhat.com>
7759
7760         PR target/39179
7761         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
7762         value if DECL_EXTERNAL.
7763         * tree-sra.c (sra_walk_gimple_assign): Likewise.
7764         * target.h (gcc_target::binds_local_p): Clarify "module".
7765         * tree.h (TREE_PUBLIC): Clarify "module".
7766
7767 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
7768
7769         PR target/38891
7770         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
7771         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
7772
7773 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
7774
7775         PR target/39082
7776         * c.opt (Wabi): Support C and ObjC.
7777         (Wpsabi): New.
7778
7779         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
7780
7781         * config/i386/i386.c (classify_argument): Warn once about the ABI
7782         change when passing union with long double.
7783
7784         * doc/invoke.texi: Update -Wabi for warning psABI changes.
7785
7786 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
7787
7788         PR c/35447
7789         * c-parser.c (c_parser_compound_statement): Always enter and leave
7790         a scope.
7791
7792 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7793
7794         PR target/34587
7795         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
7796
7797 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
7798
7799         PR tree-optimization/36922
7800         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
7801         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
7802         Likewise.
7803
7804 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
7805
7806         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
7807         to 0 for EABI64.
7808
7809 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
7810
7811         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
7812
7813 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
7814
7815         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
7816         tree sharing.
7817
7818 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
7819             Richard Sandiford  <rdsandiford@googlemail.com>
7820
7821         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
7822         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
7823         (loongson_biadd): ...this.
7824
7825 2009-02-17  Richard Guenther  <rguenther@suse.de>
7826
7827         PR tree-optimization/39202
7828         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
7829         a var make sure to follow existing collapses.
7830
7831 2009-02-17  Richard Guenther  <rguenther@suse.de>
7832
7833         PR middle-end/39214
7834         * langhooks.c (lhd_print_error_function): Check for NULL block.
7835
7836 2009-02-17  Richard Guenther  <rguenther@suse.de>
7837
7838         PR tree-optimization/39204
7839         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
7840         of the PHI arg.
7841
7842 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
7843
7844         * config/soft-fp/double.h: Update from glibc CVS.
7845
7846 2009-02-17  Richard Guenther  <rguenther@suse.de>
7847
7848         PR tree-optimization/39207
7849         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
7850         strict-aliasing warnings for pointers pointing to NULL.
7851
7852 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
7853
7854         PR c/35446
7855         * c-parser.c (c_parser_braced_init): Call pop_init_level when
7856         skipping until next close brace.
7857
7858 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
7859
7860         PR target/37049
7861         * config/i386/i386.c (ix86_expand_push): Set memory alignment
7862         to function argument boundary.
7863
7864 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7865
7866         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
7867         in the lea_add. Reload eventually constraints it properly.
7868         * config/picochip/constraints.md : Remove the target constraint
7869         "b", since it is not needed anymore.
7870
7871 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
7872
7873         * gthr-dce.h: Uglify function parameter and local variable names.
7874         * gthr-gnat.h: Likewise.
7875         * gthr-mipssde.h: Likewise.
7876         * gthr-nks.h: Likewise.
7877         * gthr-posix95.h: Likewise.
7878         * gthr-posix.h: Likewise.
7879         * gthr-rtems.h: Likewise.
7880         * gthr-single.h: Likewise.
7881         * gthr-solaris.h: Likewise.
7882         * gthr-tpf.h: Likewise.
7883         * gthr-vxworks.h: Likewise.
7884         * gthr-win32.h: Likewise.
7885
7886 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7887
7888         PR target/39196
7889         * config/i386/i386.md: Restrict the new peephole2 to move
7890         between MMX/SSE registers.
7891
7892 2009-02-15  Richard Guenther  <rguenther@suse.de>
7893
7894         Revert
7895         2009-02-13  Richard Guenther  <rguenther@suse.de>
7896
7897         * configure.ac: Enable LFS.
7898         * configure: Re-generate.
7899         * config.in: Likewise.
7900
7901 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7902
7903         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
7904         spu_srqwbyte, spu_srqwbytebc): Define.
7905         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
7906         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
7907         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
7908         "shrqby_<mode>"): New insn-and-split patterns.
7909         * config/spu/spu.c (expand_builtin_args): Determine and return
7910         number of operands using spu_builtin_description data.
7911         (spu_expand_builtin_1): Use it.
7912
7913 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
7914
7915         PR target/38056
7916         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
7917         TARGET_CONST_GP.
7918
7919 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
7920
7921         PR target/39149
7922         * config/i386/i386.c (override_options): Correct warning
7923         messages for -malign-loops, -malign-jumps and -malign-functions.
7924
7925 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
7926
7927         PR target/39152
7928         * config/i386/i386.md: Restrict the new peephole2 to move
7929         between the general purpose registers.
7930
7931 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
7932
7933         PR target/39162
7934         * config/i386/i386.c (type_natural_mode): Add a new argument.
7935         Return the original mode and warn ABI change if vector size is 32byte.
7936         (function_arg_advance): Updated.
7937         (function_arg): Likewise.
7938         (ix86_function_value): Likewise.
7939         (ix86_return_in_memory): Likewise.
7940         (ix86_sol10_return_in_memory): Likewise.
7941         (ix86_gimplify_va_arg): Likewise.
7942         (function_arg_32): Don't warn ABX ABI change here.
7943         (function_arg_64): Likewise.
7944
7945 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
7946
7947         * loop-iv.c (implies_p): In the final case, test that operands 0
7948         of the two comparisons match.
7949
7950         * config/bfin/bfin.c (find_prev_insn_start): New function.
7951         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
7952         (find_next_insn_start): Move.
7953
7954 2009-02-13  Richard Guenther  <rguenther@suse.de>
7955
7956         * configure.ac: Enable LFS.
7957         * configure: Re-generate.
7958         * config.in: Likewise.
7959
7960 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
7961
7962         PR c/35444
7963         * c-parser.c (c_parser_parms_list_declarator): Discard pending
7964         sizes on syntax error after some arguments have been parsed.
7965
7966 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
7967
7968         * doc/invoke.texi (-fira): Remove.
7969
7970 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7971
7972         * caller-save.c: Replace regclass.c with reginfo.c in comments.
7973         * recog.c: Likewise.
7974         * rtl.h: Likewise.
7975
7976 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
7977
7978         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
7979         (umul_ppmm): Likewise.
7980         (count_leading_zeros): Likewise.
7981         (count_trailing_zeros): Likewise.
7982         (UMUL_TIME): Likewise.
7983
7984 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7985
7986         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
7987         soft-fp/t-softfp to tmake_file.
7988
7989         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
7990         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
7991         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
7992         IA64_BUILTIN_INFQ]: New.
7993         (ia64_init_builtins): Initialize __builtin_infq,
7994         __builtin_fabsq and __builtin_copysignq if not HPUX.
7995         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
7996         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
7997
7998         * config/ia64/lib1funcs.asm (__divtf3): Define only if
7999         SHARED is defined.
8000         (__fixtfti): Likewise.
8001         (__fixunstfti): Likewise.
8002         (__floattitf): Likewise.
8003
8004         * config/ia64/libgcc-glibc.ver: New.
8005         * config/ia64/t-fprules-softfp: Likewise.
8006         * config/ia64/sfp-machine.h: Likewise.
8007
8008         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
8009         (LIBGCC2_TF_CEXT): Likewise.
8010         (TF_SIZE): Likewise.
8011         (TARGET_INIT_LIBFUNCS): Likewise.
8012
8013         * config/ia64/t-glibc (SHLINB_MAPFILES):
8014         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8015
8016 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
8017
8018         * config/i386/i386.c (construct_container): Rewrite processing
8019         BLKmode with X86_64_SSE_CLASS.
8020
8021 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
8022
8023         PR target/39152
8024         * config/i386/i386.md: Replace simplify_replace_rtx with
8025         replace_rtx in the new peephole2.
8026
8027 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
8028
8029         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
8030         loop unrolling do not happen at -O2.
8031
8032 2009-02-12  Michael Matz  <matz@suse.de>
8033
8034         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
8035
8036 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
8037
8038         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
8039         for -g3.
8040
8041 2009-02-12  Ben Elliston  <bje@au.ibm.com>
8042
8043         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
8044         patterns when updating the back chain.  Missed in the 2009-02-10
8045         change.
8046
8047 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
8048
8049         * doc/extend.texi (Decimal Floating Types): Update identifier of
8050         draft TR and list of missing support.
8051
8052 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
8053
8054         PR middle-end/39154
8055         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
8056         bit to variable length decl's flags, add it also to its
8057         pointer replacement variable.
8058
8059 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
8060             Jakub Jelinek  <jakub@redhat.com>
8061
8062         PR target/39118
8063         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
8064         (memory_blockage): New expander.
8065         (*memory_blockage): New insn pattern.
8066         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
8067         instead of general blockage at the end of function prologue when
8068         frame pointer is used to access red zone area.  Do not emit blockage
8069         when profiling, it is emitted in generic code.
8070         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
8071         function epilogue when frame pointer is used to access red zone area.
8072
8073 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
8074
8075         PR target/38824
8076         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
8077         by arithmetic with memory operands.
8078         * config/i386/predicates.md (commutative_operator): New.
8079
8080 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
8081
8082         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
8083         bulleted lists.
8084
8085 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8086
8087         * alias.h (record_alias_subset): Declare.
8088         * alias.c (record_alias_subset): Make global.
8089
8090 2009-02-10  Nick Clifton  <nickc@redhat.com>
8091
8092         * tree-parloops.c: Change license to GPLv3.
8093         * ipa-struct-reorg.c: Change license to GPLv3.
8094         * ipa-struct-reorg.h: Change license to GPLv3.
8095
8096 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
8097
8098         PR c/39084
8099         * c-decl.c (start_struct): Return NULL on error.
8100
8101 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
8102
8103         PR middle-end/39124
8104         * cfgloopmanip.c (remove_path): Call remove_bbs after
8105         cancel_loop_tree, not before it.
8106
8107         PR target/39139
8108         * function.h (struct function): Add has_local_explicit_reg_vars bit.
8109         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
8110         VAR_DECLs were seen.
8111         * tree-ssa-live.c (remove_unused_locals): Recompute
8112         cfun->has_local_explicit_reg_vars.
8113         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
8114         copies or clearings if cfun->has_local_explicit_reg_vars.
8115
8116 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
8117
8118         PR target/39118
8119         * config/i386/i386.c (expand_prologue): Emit blockage at the end
8120         of function prologue when frame pointer is used to access
8121         red zone area.
8122
8123 2009-02-10  Richard Guenther  <rguenther@suse.de>
8124
8125         PR middle-end/39127
8126         * gimplify.c (gimple_regimplify_operands): Always look if
8127         we need to create a temporary.
8128
8129 2009-02-10  Richard Guenther  <rguenther@suse.de>
8130
8131         PR tree-optimization/39132
8132         * tree-loop-distribution.c (todo): New global var.
8133         (generate_memset_zero): Trigger TODO_rebuild_alias.
8134         (tree_loop_distribution): Return todo.
8135
8136 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
8137
8138         PR target/39119
8139         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
8140         (x86_64_reg_class_name): Removed.
8141         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
8142         first one isn't X86_64_SSE_CLASS or any other ones aren't
8143         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
8144         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
8145         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
8146         and 3 X86_64_SSEUP_CLASS.
8147         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
8148         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
8149
8150 2009-02-10  Ben Elliston  <bje@au.ibm.com>
8151
8152         * config/rs6000/rs6000.md (allocate_stack): Always use an update
8153         form instruction to update the stack back chain word, even if the
8154         user has disabled the generation of update instructions.
8155         (movdi_<mode>_update_stack): New.
8156         (movsi_update_stack): Likewise.
8157         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
8158         always use an update form instruction to update the stack back
8159         chain word.
8160
8161 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
8162
8163         PR middle-end/38953
8164         * graphite.c (if_region_set_false_region): After moving a region in
8165         the false branch of a condition, remove the empty dummy basic block.
8166         (gloog): Remove wrong fix for PR38953.
8167
8168 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8169
8170         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
8171         generation due to implicit sign extension.
8172
8173 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8174
8175         PR middle-end/38981
8176         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
8177         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
8178
8179 2009-02-09  Richard Guenther  <rguenther@suse.de>
8180
8181         PR middle-end/35202
8182         * convert.c (convert_to_real): Disable (float)fn((double)x)
8183         to fnf(x) conversion if errno differences may occur and
8184         -fmath-errno is set.
8185
8186 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
8187
8188         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
8189         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8190         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
8191
8192 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8193
8194         PR c/35434
8195         * c-common.c (handle_alias_attribute): Disallow attribute for
8196         anything not a FUNCTION_DECL or VAR_DECL.
8197
8198 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
8199
8200         PR c/39035
8201         * real.c (do_compare): Special-case compare of zero against
8202         decimal float value.
8203
8204 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
8205
8206         PR c/36432
8207         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
8208         as indicating flexible array members unless the field itself is
8209         being declarared as the incomplete array.
8210
8211 2009-02-06  Jan Hubicka  <jh@suse.cz>
8212
8213         PR tree-optimization/38844
8214         * ipa-inline.c (try_inline): Stop inlining recursion when edge
8215         is already inlined.
8216
8217 2009-02-06  Richard Guenther  <rguenther@suse.de>
8218
8219         PR middle-end/38977
8220         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
8221         fork because we may expand it as __gcov_fork.
8222
8223 2009-02-06  Nick Clifton  <nickc@redhat.com>
8224
8225         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
8226
8227 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
8228
8229         PR tree-optimization/35659
8230         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
8231         vn_phi_eq): Shortcut if hashcode does not match.
8232         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
8233         NULL operands.
8234         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
8235         and avoid iterative_hash_expr.
8236         (FOR_EACH_VALUE_ID_IN_SET): New.
8237         (value_id_compare): Remove.
8238         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
8239         sort expressions by value id.
8240
8241 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
8242
8243         PR target/38991
8244         * config/sh/predicates.md (general_movsrc_operand): Don't check
8245         the subreg of system registers here.
8246
8247 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
8248
8249         PR c++/39106
8250         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
8251         on the copied decl.
8252
8253 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
8254
8255         PR rtl-optimization/39110
8256         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
8257         addresses, not aligned ones.
8258
8259 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
8260             Richard Guenther  <rguenther@suse.de>
8261
8262         PR tree-optimization/39100
8263         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
8264         comment says and add edges.
8265
8266 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
8267
8268         PR c/35435
8269         * c-common.c (handle_tls_model_attribute): Ignore attribute for
8270         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
8271
8272 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
8273
8274         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
8275         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
8276         register_bb_in_sese, new_sese, free_sese): Moved.
8277         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
8278         outermost_loop_in_scop, build_scop_iteration_domain,
8279         expand_scalar_variables_ssa_name, get_vdef_before_scop,
8280         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
8281         Use loop_in_sese_p instead of loop_in_scop_p.
8282         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
8283         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
8284         (scopdet_basic_block_info): Fix bug in scop detection.
8285         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
8286         eq_loop_to_cloog_loop): Remove.
8287         (nb_loops_around_loop_in_scop, nb_loop
8288         ref_nb_loops): Moved here...
8289         * graphite.h (ref_nb_loops): ... from here.
8290         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
8291         (loop_domain_dim, loop_iteration_vector_dim): Remove.
8292         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
8293         * testsuite/gcc.dg/graphite/scop-19.c: New
8294
8295 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
8296             Hans-Peter Nilsson  <hp@axis.com>
8297
8298         PR rtl-optimization/37889
8299         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
8300         Move offset handling from PLUS to before the switch.  Use new
8301         arguments when considering SYMBOL_REFs too.
8302         (rtx_addr_can_trap_p): Pass dummy offset and size.
8303         (enum may_trap_p_flags): Remove.
8304         (may_trap_p_1): Pass size from MEM_SIZE.
8305
8306         PR rtl-optimization/38921
8307         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
8308         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
8309         * rtlanal.c (may_trap_after_code_motion_p): Delete.
8310         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
8311
8312 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
8313
8314         AVX Programming Reference (January, 2009)
8315         * config/i386/sse.md (*vpclmulqdq): New.
8316
8317 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
8318
8319         PR tree-optimization/38977
8320         PR gcov-profile/38292
8321         * calls.c (special_function_p): Disregard __builtin_ prefix.
8322
8323 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
8324
8325         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
8326         non-indexable addresses even before reload.
8327
8328 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
8329
8330         PR c/29129
8331         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
8332         as having variable size.  Do not give an error for unnamed
8333         parameters with [*] declarators.  Give a warning for type names
8334         with [*] declarators and mark them as variable size.
8335         * c-parser.c (c_parser_sizeof_expression): Do not give an error
8336         for sizeof applied to [*] type names.
8337
8338 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8339
8340         PR C++/36607
8341         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
8342
8343 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
8344
8345         * gcc.c (process_command): Update copyright notice dates.
8346         * gcov.c (print_version): Likewise.
8347         * gcov-dump.c (print_version): Likewise.
8348         * mips-tfile.c (main): Likewise.
8349         * mips-tdump.c (main): Likewise.
8350
8351 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
8352
8353         PR c/35433
8354         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
8355         for composite type involving a zero-length array type.
8356
8357 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
8358
8359         PR target/35318
8360         * function.c (match_asm_constraints_1): Skip over
8361         initial optional % in the constraint.
8362
8363         PR inline-asm/39059
8364         * c-parser.c (c_parser_postfix_expression): If fixed point is not
8365         supported, don't accept FIXED_CSTs.
8366         * c-decl.c (finish_declspecs): Error if fixed point is not supported
8367         and _Sat is used without _Fract/_Accum.  Set specs->type to
8368         integer_type_node for cts_fract/cts_accum if fixed point is not
8369         supported.
8370
8371 2009-02-02  Catherine Moore  <clm@codesourcery.com>
8372
8373         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
8374
8375 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
8376
8377         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
8378         (ABI_HAS_64BIT_SYMBOLS): Use it.
8379         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
8380
8381 2009-02-02  Paul Brook  <paul@codesourcery.com>
8382
8383         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
8384
8385 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
8386
8387         PR inline-asm/39058
8388         * recog.h (asm_operand_ok): Add constraints argument.
8389         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
8390         recurse on matching constraint.
8391         (check_asm_operands): Pass constraints as 3rd argument to
8392         asm_operand_ok.  Don't look up matching constraint here.
8393         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
8394         to asm_operand_ok.
8395
8396 2009-02-02  Ben Elliston  <bje@au.ibm.com>
8397
8398         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
8399         TARGET_NARROW_VOLATILE_BITFIELD macro names.
8400
8401 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8402
8403         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
8404         information.  Remove some obsolete information.  Reorganize.
8405
8406         * config/pa/fptr.c: Revert license to GPL 2.
8407         * config/pa/milli64.S: Likewise.
8408
8409 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
8410
8411         PR target/38904
8412         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
8413         LIBRARY name in, instead of hard-coding it.
8414         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
8415         extra target make frag to tmake_files according to EH model.
8416         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
8417         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
8418         frags that define makefile variable EH_MODEL appropriately.
8419         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
8420         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
8421         to "-sjlj" according to type of EH configured.
8422         (LIBGCC_SONAME):  Concatenate it to shared library base name.
8423         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
8424         to "_sjlj" according to type of EH configured.
8425         (LIBGCC_SONAME):  Concatenate it to shared library base name.
8426         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
8427         (SHLIB_LINK):  Add missing semicolon to if-else construct.
8428         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
8429         string value of "pe_dll" command-line option.
8430         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
8431         (SHLIB_SONAME):  Use it when overriding t-cygming default.
8432         (SHLIB_IMPLIB):  Override t-cygming default.
8433         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
8434         string value of "pe_dll" command-line option.
8435
8436 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
8437
8438         PR target/38952
8439         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
8440         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
8441
8442 2009-01-31  Richard Guenther  <rguenther@suse.de>
8443
8444         PR tree-optimization/38937
8445         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
8446         computing the transitive closure.
8447
8448 2009-01-30  Richard Guenther  <rguenther@suse.de>
8449
8450         PR tree-optimization/39041
8451         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
8452         Propagate variable indices only if the types match for this stmt.
8453
8454 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
8455
8456         PR target/39013
8457         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
8458         inline but never defined.
8459
8460 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
8461
8462         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
8463         (*insv_h_di_reg_extimm): New insn.
8464         (*insv_l<mode>_reg_extimm): New insn.
8465
8466 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8467
8468         * config/picochip/picochip.c (flag_conserve_stack): set
8469         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
8470         fconserve-stack. Reduce call-overhead used by inliner.
8471
8472 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
8473
8474         PR/38157
8475         * common.opt (flag_conserve_stack): Initialised to zero.
8476
8477 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
8478
8479         PR/39002
8480         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
8481         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
8482         method.
8483
8484 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
8485
8486         * ira-color.c (allocno_reload_assign): Update comments.
8487         * regmove.c (regmove_optimize): Likewise.
8488
8489         * ra.h: Removed.
8490
8491 2009-01-29  Robert Millan  <rmh@aybabtu.com>
8492
8493         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
8494         * config/i386/kopensolaris-gnu.h: New file.  Undefine
8495         `MD_UNWIND_SUPPORT'.
8496         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
8497
8498 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
8499
8500         PR tree-optimization/39007
8501         * tree-loop-distribution.c (generate_builtin): Use
8502         recompute_dominator to compute the immediate dominator of the
8503         basic block just after the loop.
8504
8505 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8506
8507         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
8508         (ASM_OUTPUT_DWARF_PCREL): Define.
8509
8510 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
8511
8512         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
8513         * doc/passes.texi: Remove entries about regclass, local-alloc, and
8514         global.  Modify entries about regmove and IRA.
8515
8516         * ra-conflict.c: Remove the file.
8517
8518         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
8519
8520         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
8521         (pass_regclass_init): Rename to pass_reginfo_init.
8522
8523         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
8524
8525         * toplev.h (flag_ira): Remove.
8526
8527         * caller-save.c (setup_save_areas): Remove flag_ira.
8528
8529         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
8530
8531         * global.c: Remove the file.
8532
8533         * opts.c (decode_options): Remove flag_ira.
8534
8535         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
8536
8537         * regmove.c: Modify file description.
8538         (find_use_as_address, try_auto_increment): Define them only if
8539         AUTO_INC_DEC is defined.
8540         (replacement_quality, replace_in_call_usage, fixup_match_1,
8541         stable_and_no_regs_but_for_p): Remove.
8542         (reg_set_in_bb): Make it static.
8543         (regmove_optimize): Remove flag_ira and code which worked for
8544         !flag_ira.
8545
8546         * local-alloc.c: Remove the file.
8547
8548         * common.opt (fira): Remove.
8549
8550         * ira.c: Include except.h.
8551         (eliminable_regset): Move from global.c.
8552         (mark_elimination): Ditto.  Remove flag_ira.
8553         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
8554         equiv_mem_modified, validate_equiv_mem_from_store,
8555         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
8556         contains_replace_regs, memref_referenced_p, memref_used_between_p,
8557         no_equiv, recorded_label_ref): Move from local-alloc.c.
8558         (update_equiv_regs): Ditto.  Make it static.
8559         (print_insn_chain, print_insn_chains): Move it from global.c.
8560         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
8561         (build_insn_chain): Ditto.  Make it static.
8562         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
8563         Rename to init_live_subregs.
8564         (gate_ira): Remove flag_ira.
8565
8566         * regclass.c: Rename reginfo.c.  Change file description.
8567         (FORBIDDEN_INC_DEC_CLASSES): Remove.
8568         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
8569         (init_reg_sets_1): Remove code for evaluation of
8570         reg_class_superclasses and losing_caller_save_reg_set.
8571         (init_regs): Remove init_reg_autoinc.
8572         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
8573         ok_for_base_p_nonstrict): Remove.
8574         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
8575         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
8576         corresponding entries.
8577         (dump_regclass, record_operand_costs, scan_one_insn,
8578         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
8579         record_address_regs, auto_inc_dec_reg_p): Remove.
8580         (gt-regclass.h): Rename to gt-reginfo.h.
8581
8582         * rtl.h (dump_global_regs, retry_global_alloc,
8583         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
8584
8585         * Makefile.in (RA_H): Remove.
8586         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
8587         Rename regclass.o to reginfo.o.
8588         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
8589         gt-reginfo.h.
8590         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
8591         (GTFILES): Rename regclass.c to reginfo.c.
8592
8593         * passes.c (init_optimization_passes): Remove pass_local_alloc and
8594         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
8595
8596         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
8597         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
8598         Remove flag_ira.
8599         (finish_spills): Ditto.  Remove code for !flag_ira.
8600
8601 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
8602
8603         PR middle-end/35854
8604         * doc/invoke.texi (rtl debug options): Complete rewrite.
8605         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
8606         to auto_inc_dec".
8607         * mode-switching.c (pass_mode_switching): Rename pass from
8608         "mode-sw" to "mode_sw".
8609         * except.c (pass_convert_to_eh_ranges): Rename pass from
8610         "eh-ranges" to "eh_ranges".
8611         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
8612         to "subreg1".
8613
8614
8615 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
8616             Alexander Monakov  <amonakov@ispras.ru>
8617
8618         PR middle-end/38857
8619         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
8620         register.
8621         (move_exprs_to_boundary): Change return type and pass through
8622         should_move from move_op.  Relax assert.  Update usage ...
8623         (schedule_expr_on_boundary): ... here.  Use should_move instead of
8624         cant_move.
8625         (move_op_orig_expr_found): Indicate that insn was disconnected from
8626         stream.
8627         (code_motion_process_successors): Do not call after_merge_succs
8628         callback if original expression was not found when traversing any of
8629         the branches.
8630         (code_motion_path_driver): Change return type.  Update prototype.
8631         (move_op): Update comment.  Add a new parameter (should_move).  Update
8632         prototype.  Set *should_move based on indication provided by
8633         move_op_orig_expr_found.
8634
8635 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
8636
8637         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
8638         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
8639         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
8640         * config/rs6000/rs6000.c (rs6000_override_options): Default
8641         avoid-indexed-addresses on for Power6, off for everything else.
8642         (avoiding_indexed_address_p): New function.
8643         (rs6000_legitimize_address): Use it.
8644         (rs6000_legitimate_address): Likewise.
8645         * config/rs6000/rs6000.md (movXX_updateX): Likewise
8646
8647 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
8648
8649         PR tree-optimization/38997
8650         * tree-loop-distribution.c (generate_memset_zero): Use
8651         POINTER_PLUS_EXPR for a pointer addition.
8652
8653 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
8654
8655         * config/s390/s390.md (bswap<mode>2): New pattern added.
8656
8657 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
8658
8659         * config/s390/s390.md (*tls_load_31): Added type attribute.
8660
8661 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
8662
8663         * config/s390/s390.md: Fix a few comments.
8664
8665 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
8666
8667         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
8668         (*tm<mode>_full): Fixed z10prop attribute.
8669         (*tst<mode>_extimm): Fixed z10prop attribute.
8670         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
8671         (*tstqiCCT_cconly): Fixed z10prop attribute.
8672         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
8673         (*movsi_larl): Fixed z10prop attribute.
8674         (*movsi_zarch): Fixed z10prop attribute.
8675         (*movsi_eas): Fixed z10prop attribute.
8676         (*movhi): Fixed z10prop attribute.
8677         (*movqi): Fixed z10prop attribute.
8678         (*movstrictqi): Fixed z10prop attribute.
8679         (*mov<mode>): Fixed z10prop attribute.
8680         (*movcc): Fixed z10prop attribute.
8681         (*sethighpartdi_64): Fixed z10prop attribute.
8682         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
8683         (*negdi2_sign_cc): Fixed z10prop attribute.
8684         (*negdi2_sign): Fixed z10prop attribute.
8685         (*absdi2_sign_cc): Fixed z10prop attribute.
8686         (*absdi2_sign): Fixed z10prop attribute.
8687         (*negabsdi2_sign_cc): Fixed z10prop attribute.
8688         (*negabsdi2_sign): Fixed z10prop attribute.
8689         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
8690         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
8691         (doloop_si64): Fixed z10prop attribute.
8692         (doloop_si31): Fixed z10prop attribute.
8693         (doloop_long): Fixed z10prop attribute.
8694         (indirect_jump): Fixed z10prop attribute.
8695         (nop): Fixed z10prop attribute.
8696         (main_base_64): Fixed z10prop attribute.
8697         (reload_base_64): Fixed z10prop attribute.
8698
8699 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
8700
8701         PR rtl-optimization/38740
8702         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
8703         if !optimize.
8704         * config/mips/mips.c (mips_reorg): Likewise.
8705
8706 2009-01-28  Richard Guenther  <rguenther@suse.de>
8707
8708         PR tree-optimization/38926
8709         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
8710         with the correct value id to a value.
8711         (do_regular_insertion): Use the value number of edoubleprime
8712         for the value number of the expr.
8713
8714         Revert
8715         2008-08-21  Richard Guenther  <rguenther@suse.de>
8716
8717         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
8718         a PHI ask VN if it is already available.
8719         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
8720         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
8721
8722 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
8723
8724         PR middle-end/38934
8725         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
8726         set to varying whenever max has TREE_OVERFLOW set, similarly
8727         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
8728
8729 2009-01-28  Richard Guenther  <rguenther@suse.de>
8730
8731         PR middle-end/38908
8732         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
8733         uninitialized aggregate uses in call arguments.
8734
8735 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
8736
8737         PR tree-optimization/38984
8738         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
8739         the nothing_id variable if -fno-delete-null-pointer-checks.
8740
8741 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
8742
8743         PR target/38988
8744         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
8745         (set_got_offset_rex64): Ditto.
8746
8747 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
8748
8749         PR target/38941
8750         * doc/extend.texi: Improve local variable with asm reg.
8751
8752 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
8753
8754         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
8755         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
8756         was not supplied then set warn_packed_bitfield_compat to the
8757         default value of 1.
8758         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
8759         against 1.
8760
8761 2009-01-27  Richard Guenther  <rguenther@suse.de>
8762
8763         PR tree-optimization/38503
8764         * cfgexpand.c (expand_gimple_basic_block): Ignore
8765         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
8766         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
8767         variables that cannot have TBAA applied.
8768         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
8769         statements.
8770
8771 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
8772
8773         PR middle-end/38969
8774         * calls.c (initialize_argument_information): Do not wrap complex
8775         arguments in SAVE_EXPR.
8776
8777 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
8778
8779         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
8780         (INSTALL_LIBGCC): Revert typo commit.
8781
8782 2009-01-26  Richard Guenther  <rguenther@suse.de>
8783
8784         PR tree-optimization/38745
8785         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
8786         from special handling.
8787
8788 2009-01-26  Richard Guenther  <rguenther@suse.de>
8789
8790         PR tree-optimization/38745
8791         * tree-ssa.c (execute_update_addresses_taken): Do not include
8792         variables that cannot possibly be a register in not_reg_needs.
8793         Do not clear TREE_ADDRESSABLE on vars that may not become
8794         registers.
8795         * tree-ssa.c (update_alias_info_1): Include those in the set
8796         of addressable vars.
8797
8798 2009-01-26  Richard Guenther  <rguenther@suse.de>
8799
8800         PR middle-end/38851
8801         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
8802         * tree-ssa-dse.c: Include langhooks.h
8803         (execute_simple_dse): Remove stores with zero size.
8804
8805 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
8806
8807         PR c/38957
8808         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
8809         as PLUS_EXPR.
8810
8811 2009-01-24  Julian Brown  <julian@codesourcery.com>
8812
8813         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
8814         config/arm/linux-atomic.c.
8815         * config/arm/linux-atomic.c: New.
8816
8817 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
8818
8819         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
8820         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
8821         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
8822
8823 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8824
8825         PR c/38938
8826         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8827         properly.
8828
8829 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
8830
8831         PR tree-optimization/38953
8832         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
8833         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
8834         (gloog): Split the exit of the scop when the scop exit is a loop exit.
8835         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
8836         changed the CFG.
8837
8838 2009-01-24  Paul Brook  <paul@codesourcery.com>
8839
8840         * config/arm/neon.md (neon_type): Move to arm.md.
8841         (neon_mov<VSTRUCT>): Add neon_type attribute.
8842         * config/arm/arm.md (neon_type): Move to here.
8843         (conds): Add "unconditioal" and use as default for NEON insns.
8844
8845 2009-01-24  Ben Elliston  <bje@au.ibm.com>
8846
8847         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
8848         void *' warning from -Wc++-compat.
8849         * Makefile.in (dominance.o-warn): Remove.
8850
8851 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
8852
8853         PR tree-optimization/38932
8854         * fold-const.c (fold_unary_ignore_overflow): New.
8855         * tree.h (fold_unary_ignore_overflow): Declare.
8856         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
8857         * tree-ssa-sccvn.c (visit_reference_op_load,
8858         simplify_unary_expression): Likewise.
8859
8860 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
8861
8862         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
8863         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
8864         regardless of their type.
8865         * c-common.c (handle_packed_attribute): Don't ignore packed on
8866         bitfields.
8867         * c.opt (Wpacked-bitfield-compat): New warning option.
8868         * stor-layout.c (place_field): Warn if offset of a field changed.
8869         * doc/extend.texi (packed): Mention the ABI change.
8870         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
8871         (Warning Options): Add it to the list.
8872
8873 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8874
8875         * c-opts.c (c_common_post_options): Fix a typo in comments.
8876
8877 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
8878
8879         PR middle-end/38615
8880         * gimplify.c (gimplify_init_constructor): Fix promotion of const
8881         variables to static.
8882         * doc/invoke.texi (-fmerge-all-constants): Update description.
8883
8884 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
8885
8886         PR target/38931
8887         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
8888         (*movdi_1_rex64): Use type "mmx" for alternative 5.
8889
8890 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
8891
8892         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
8893         a word boundary.
8894         (LOCAL_ALIGNMENT): Similarly.
8895
8896 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
8897             Joseph Myers  <joseph@codesourcery.com>
8898
8899         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
8900         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
8901         * config/arm/arm-tune.md: Regenerate.
8902         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
8903         -march=iwmmxt2.
8904
8905 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
8906
8907         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
8908         version number to five.
8909
8910 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
8911
8912         PR c++/38930
8913         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
8914         * c-common.c (set_underlying_type): Likewise.
8915         (is_typedef_decl ): Likewise
8916         * tree.h: Likewise
8917         (set_underlying_type): Likewise.
8918         (is_typedef_type): Likewise.
8919
8920 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
8921
8922         PR middle-end/38587
8923         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
8924         crossing setjmps.
8925
8926 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
8927
8928         PR bootstrap/37660
8929         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
8930         (LIBGCC_SPEC):  Don't define.
8931         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
8932
8933 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
8934
8935         PR rtl-optimization/38879
8936         * alias.c (base_alias_check): Unaligned access via AND address can
8937         alias all surrounding object types except those with sizes equal
8938         or wider than the size of unaligned access.
8939
8940 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
8941
8942         PR c++/26693
8943         * c-decl.c (clone_underlying_type): Move this ...
8944         * c-common.c (set_underlying_type): ... here.
8945         Also, make sure the function properly sets TYPE_STUB_DECL() on
8946         the newly created typedef variant type.
8947         (is_typedef_decl ): New entry point.
8948         * tree.h: Added a new member member_types_needing_access_check to
8949         struct tree_decl_non_common.
8950         (set_underlying_type): New entry point.
8951         (is_typedef_type): Likewise.
8952
8953 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
8954
8955         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
8956         Check whether two instructions have memory references that
8957         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
8958         are helper functions for traversing.
8959         * alias.h (insn_alias_sets_confilict_p): New prototypes.
8960         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
8961         not to draw dependency edge for instructions with non-conflicting
8962         alias sets.
8963
8964 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
8965
8966         PR other/38758
8967         * longlong.h: Update copyright years.  Use soft-fp license notice.
8968         Sync __clz_tab declaration with glibc.
8969
8970 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
8971
8972         PR target/30687
8973         * doc/extend.texi (syscall_linkage): New.
8974         (version_id): Modify.
8975
8976 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8977             Richard Guenther  <rguenther@suse.de>
8978
8979         PR tree-optimization/38747
8980         PR tree-optimization/38748
8981         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
8982         conversion if the base address is an indirect reference and the
8983         aliasing sets could cause issues.
8984
8985 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
8986
8987         * common.opt (fgraphite, fgraphite-identity): Add comment for
8988         explaining why these options are not documented.
8989
8990 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
8991
8992         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
8993         gimple_call_lhs is NULL.
8994
8995 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
8996
8997         PR target/38868
8998         * emit-rtl.c (adjust_address_1): Make sure memref is never
8999         overwritten.
9000
9001 2009-01-20  Ben Elliston  <bje@au.ibm.com>
9002
9003         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9004         const qualifier from arg parameter. Remove unnecessary cast to char *.
9005         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
9006         const qualifier from arg 2.
9007
9008 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
9009
9010         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
9011
9012 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
9013
9014         PR c/38869
9015         * rtl.h (reinit_regs): New prototype.
9016         * regclass.c: Include ira.h.
9017         (reinit_regs): New.
9018         * Makefile.in (regclass.o): Add ira.h.
9019         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
9020
9021 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
9022
9023         PR target/38736
9024         * c-common.c (handle_aligned_attribute): Use
9025         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
9026         default alignment value.
9027
9028         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
9029
9030         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
9031         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
9032
9033         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
9034         __BIGGEST_ALIGNMENT__.
9035
9036         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
9037
9038 2009-01-18  Richard Guenther  <rguenther@suse.de>
9039
9040         PR tree-optimization/38819
9041         * tree-flow.h (operation_could_trap_helper_p): Declare.
9042         * tree-eh.c (operation_could_trap_helper_p): Export.
9043         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
9044         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
9045         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
9046         are about to insert a possibly trapping instruction and fail
9047         in this case.
9048
9049 2009-01-18  Andreas Schwab  <schwab@suse.de>
9050
9051         * doc/install.texi (Configuration): Remove obsolete paragraph
9052         about use of --with-gnu-ld with --with-gnu-as.
9053
9054 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
9055
9056         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
9057         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
9058         Follow spelling conventions.
9059
9060 2009-01-18  Ben Elliston  <bje@au.ibm.com>
9061
9062         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
9063         C++ warning about implicit conversion from void * to struct
9064         bitmap_head_def *.
9065         (bitmap_obstack_free): Likewise for bitmap_element *.
9066         * Makefile.in (bitmap.o-warn): Remove.
9067
9068 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9069
9070         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
9071
9072 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
9073             Tobias Grosser  <tobi.grosser@amd.com>
9074
9075         * graphite.c (graphite_trans_scop_block): Do not block single
9076         nested loops.
9077
9078 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
9079
9080         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
9081         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
9082         test with assertion.
9083
9084 2009-01-16  Richard Guenther  <rguenther@suse.de>
9085
9086         PR tree-optimization/38835
9087         PR middle-end/36227
9088         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
9089         and INT + PTR -> (INT)(PTR p+ INT) folding.
9090         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
9091
9092 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
9093
9094         PR target/38554
9095         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
9096         the subreg from a lowpart subreg if it is also casting the value.
9097
9098 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9099             Tobias Grosser  <tobi.grosser@amd.com>
9100
9101         * graphite.c (compare_prefix_loops): New.
9102         (build_scop_canonical_schedules): Rewritten.
9103         (graphite_transform_loops): Move build_scop_canonical_schedules
9104         after build_scop_iteration_domain.
9105
9106 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
9107             Tobias Grosser  <tobi.grosser@amd.com>
9108
9109         * graphite.c (add_conditions_to_domain): Add the loops to
9110         the dimension of the iteration domain.  Do copy the domain
9111         only when it exists.
9112         (build_scop_conditions_1): Do not call add_conditions_to_domain.
9113         (add_conditions_to_constraints): New.
9114         (can_generate_code_stmt, can_generate_code): Removed.
9115         (gloog): Do not call can_generate_code.
9116         (graphite_transform_loops): Call add_conditions_to_constraints
9117         after building the iteration domain.
9118
9119 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
9120
9121         PR tree-optimization/38789
9122         * tree-ssa-threadedge.c
9123         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
9124         __builtin_constant_p.
9125
9126 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
9127
9128         * dce.c (delete_unmarked_insns): Reversed the order that insns are
9129         examined before deleting them.
9130
9131 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
9132
9133         * function.c (aggregate_value_p): Correctly extract the function
9134         type from CALL_EXPR_FN lookup.
9135
9136 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9137
9138         * config/picochip/picochip.c (picochip_override_options): Revert
9139         CFI asm flag disable commited previously.
9140
9141 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
9142             Tobias Grosser  <tobi.grosser@amd.com>
9143             Jan Sjodin  <jan.sjodin@amd.com>
9144
9145         * graphite.c (scan_tree_for_params): On substractions negate
9146         all the coefficients of the term.
9147         (clast_to_gcc_expression_red): New.  Handle reduction expressions
9148         of more than two operands.
9149         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
9150         (get_vdef_before_scop): Handle also the case of default definitions.
9151
9152 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
9153
9154         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
9155         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
9156         Also use them when walking CALL_INSN_FUNCTION_USAGE.
9157
9158 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
9159             Joey Ye  <joey.ye@intel.com>
9160
9161         PR middle-end/37843
9162         * cfgexpand.c (expand_stack_alignment): Don't update stack
9163         boundary nor check incoming stack boundary here.
9164         (gimple_expand_cfg): Update stack boundary and check incoming
9165         stack boundary here.
9166
9167 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
9168
9169         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
9170
9171 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
9172
9173         PR rtl-optimization/38245
9174         * calls.c (expand_call): Add stack arguments to
9175         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9176         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
9177         in regs and partially in memory or BLKmode arguments.
9178         (emit_library_call_value_1): Add stack arguments to
9179         CALL_INSN_FUNCTION_USAGE even for pure calls (when
9180         ACCUMULATE_OUTGOING_ARGS).
9181         * dce.c: Include tm_p.h.
9182         (find_call_stack_args): New function.
9183         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
9184         argument.
9185         (mark_insn): Call find_call_stack_args for CALL_Ps.
9186         (prescan_insns_for_dce): Walk insns backwards in bb rather than
9187         forwards.  Allocate and free arg_stores bitmap if needed, pass it
9188         down to deletable_insn_p, don't mark stores set in arg_stores
9189         bitmap, clear the bitmap at the beginning of each bb.
9190         * Makefile.in (dce.o): Depend on $(TM_P_H).
9191
9192 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
9193
9194         PR target/22599
9195         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
9196         to make sure the insn is a conditional test (bug 22599).  Reformat a
9197         few long lines.
9198
9199 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
9200
9201         PR middle-end/38431
9202         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
9203         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
9204         (gloog): Do not call cleanup_tree_cfg.
9205         (graphite_transform_loops): Call cleanup_tree_cfg after all
9206         scops have been code generated.
9207
9208 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
9209         * doc/gty.texi (Invoking the garbage collector): Added new node
9210         and section documenting ggc_collect.
9211
9212 2009-01-14  Richard Guenther  <rguenther@suse.de>
9213
9214         PR tree-optimization/38826
9215         PR middle-end/38477
9216         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
9217         initialization notes only if we actually emitted a warning.
9218         (intra_create_variable_infos): Add constraints for a result decl
9219         that is passed by hidden reference.
9220         (build_pred_graph): Mark all related variables non-direct on
9221         address-taking.
9222
9223 2009-01-14  Nick Clifton  <nickc@redhat.com>
9224
9225         * ira-conflicts.c: Include addresses.h for the definition of
9226         base_reg_class.
9227         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
9228         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
9229
9230 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
9231
9232         PR target/38811
9233         * Makefile.in (ira-lives.o): Add except.h.
9234
9235         * ira-lives.c: Include except.h.
9236         (process_bb_node_lives): Process can_throw_internal.
9237
9238 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
9239
9240         PR rtl-optimization/38774
9241         * combine.c (simplify_set): When undoing cc_use change, don't do
9242         PUT_CODE on the newly created comparison, but instead put back the
9243         old comparison.
9244
9245 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
9246
9247         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
9248         values.  Remove duplicate arm8 entry.
9249
9250 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9251
9252         PR tree-optimization/38786
9253         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
9254         the SSA_NAME case of expand_scalar_variables_expr.
9255         Set the type of an expression to the type of its assign statement.
9256         (expand_scalar_variables_expr): Also gather the scalar computation
9257         used to index the memory access.  Do not pass loop_p.
9258         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
9259         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
9260         the gimple_stmt_iterator where it inserts new code.
9261         Do not pass loop_p.
9262         (copy_bb_and_scalar_dependences): Do not pass loop_p.
9263         (translate_clast): Update call to copy_bb_and_scalar_dependences.
9264
9265 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
9266
9267         * graphite.h (debug_value): Removed.
9268         * graphite.c (debug_value): Removed.
9269
9270 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9271
9272         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
9273         ldrd/strd with two 32-bit instructions.
9274
9275 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
9276
9277         * config/arm/arm.c (struct processors): Pass for speed down into
9278         cost helper functions.
9279         (const_ok_for_op): Handle COMPARE and inequality nodes.
9280         (arm_rtx_costs_1): Rewrite.
9281         (arm_size_rtx_costs): Update prototype.
9282         (arm_rtx_costs): Pass speed down to helper functions.
9283         (arm_slowmul_rtx_costs): Rework cost calculations.
9284         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
9285         (arm_9e_rtx_costs): Likewise.
9286
9287 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
9288
9289         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
9290         relocations of local symbols wider than UNITS_PER_WORD are not valid.
9291         (alpha_legitimize_address): Do not split local symbols wider than
9292         UNITS_PER_WORD into HIGH/LO_SUM parts.
9293
9294 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
9295
9296         PR bootstrap/38580
9297         * gcc.c (process_command): Replace call to execvp with calls
9298         to pex_one and exit.
9299
9300 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
9301
9302         PR target/29141
9303         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
9304         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
9305         variant for devices with 3-byte PC.
9306         (__tablejump_elpm__): New.
9307
9308 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
9309
9310         PR c/32041
9311         * c-parser.c (c_parser_postfix_expression): Allow `->' in
9312         offsetof member-designator, handle it as `[0].'.
9313
9314 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9315
9316         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
9317         function when not using named sections on targets with named sections
9318         if branch distance is less than 262132.
9319
9320 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
9321
9322         * combine.c (combine_instructions):  Recompute
9323         optimize_this_for_speed_p  for each BB in the main combine loop.
9324
9325 2009-01-12  Tomas Bily  <tbily@suse.cz>
9326
9327         PR middlend/38385
9328         * tree-loop-distribution.c (prop_phis): New function.
9329         (generate_builtin): Call prop_phis.
9330         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
9331
9332 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
9333
9334         PR tree-optimization/38807
9335         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
9336         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
9337
9338 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
9339
9340         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
9341         subreg of op0 to the original op0.
9342
9343 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
9344
9345         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
9346
9347 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
9348
9349         PR debug/7055
9350         * mips-tfile.c (parse_def): Fix parsing of def strings
9351         starting with digits.
9352
9353 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
9354
9355         PR target/38695
9356         * config/arm/arm.c (arm_is_long_call_p): Don't call
9357         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
9358
9359 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
9360
9361         * regrename.c (regrename_optimize): Fix dumping.
9362         (find_oldest_value_reg): Preserve REG_POINTER.
9363         (copy_hardreg_forward_1): Likewise.
9364
9365 2009-01-09  Diego Novillo  <dnovillo@google.com>
9366
9367         * gimple.h (struct gimple_statement_base) <uid>: Document
9368         the restrictions on its use.
9369         (gimple_uid): Tidy.
9370         (gimple_set_uid): Tidy.
9371
9372 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
9373
9374         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
9375         zero guard even if align_bytes != 0 and count is smaller than
9376         size_needed.
9377
9378 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
9379
9380         PR rtl-optimization/38495
9381         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
9382         (add_range_and_copies_from_move_list): Print all added ranges.
9383         Add ranges to memory optimized destination.
9384
9385 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
9386
9387         PR target/38686
9388         PR target/38708
9389         * config/i386/i386.c (override_options): Reject
9390         -mstringop-strategy=rep_8byte with -m32.
9391         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
9392         to 1.  Do count comparison against epilogue_size_needed at compile
9393         time even when count_exp was constant forced into register.  For
9394         size_needed don't jump to epilogue, instead just avoid aligning
9395         and invoke the body algorithm.  If need_zero_guard, add zero guard
9396         even if count is non-zero, but smaller than size_needed + number of
9397         bytes that could be stored for alignment.
9398         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
9399         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
9400         but smaller than size_needed + number of bytes that could be stored
9401         for alignment.  Compare size_needed with epilogue_size_needed instead
9402         of desired_align - align, don't adjust size_needed, pass
9403         epilogue_size_needed to the epilogue expanders.
9404
9405         PR c/35742
9406         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
9407
9408 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9409
9410         * pa.c (last_address): Change to unsigned.
9411         (update_total_code_bytes): Change argument to unsigned.  Don't
9412         check if insn addresses are set.
9413         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
9414         addresses are not set.
9415         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
9416
9417 2009-01-09  Nick Clifton  <nickc@redhat.com>
9418
9419         * config/sh/symbian.c: Replace uses of DECL_INLINE with
9420         DECL_DECLARED_INLINE_P.
9421
9422 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
9423
9424         PR middle-end/38347
9425         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
9426         GET_MODE (op0) in operand_subword_force calls.
9427
9428         PR middle-end/38771
9429         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
9430         fold_convert arg0 operands to TREE_TYPE (op0) first.
9431
9432 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
9433
9434         * params.def (ira-max-conflict-table-size): Decrease default value
9435         to 1000.
9436
9437 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
9438
9439         PR tree-optimization/37031
9440         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
9441         on parameter_set.
9442         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
9443         allocate it using gc instead of heap, use VEC_quick_push instead of
9444         VEC_safe_push.
9445         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
9446         instead of heap, use VEC_quick_push instead of VEC_safe_push.
9447         * tree-data-ref.h (struct access_matrix): Change matrix to gc
9448         allocated vector from heap allocated.
9449         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
9450         * tree-loop-linear.c (linear_transform_loops): Allocate nest
9451         vector only after perfect_loop_nest_depth call.
9452
9453 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
9454             Jan Sjodin  <jan.sjodin@amd.com>
9455
9456         PR tree-optimization/38559
9457         * graphite.c (debug_value, copy_constraint,
9458         swap_constraint_variables, scale_constraint_variable, ): New.
9459         (get_lower_bound, get_upper_bound): Removed.
9460         (graphite_trans_bb_strip_mine): Clean up this code that works
9461         only for constant number of iterations.  Fully copy upper and
9462         lower bound constraints, not only the constant part of them.
9463         * graphite.h (debug_value): Declared.
9464
9465 2009-01-08  Ira Rosen  <irar@il.ibm.com>
9466
9467         PR tree-optimization/37194
9468         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
9469         Don't add the cost of cost model guard in prologue to scalar
9470         outside cost in case of known number of iterations.
9471
9472 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
9473             Alan Modra  <amodra@bigpond.net.au>
9474
9475         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
9476         non-word-aligned REG+CONST addressing.
9477
9478 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
9479
9480         PR target/38706
9481         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
9482         free_after_compilation when outputting a thunk.
9483         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
9484         Do not call free_after_compilation here.
9485
9486 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
9487
9488         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
9489         (ix86_valid_target_attribute_inner_p): Ditto.
9490
9491 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
9492
9493         PR tree-optimization/38492
9494         PR tree-optimization/38498
9495         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
9496         * tree-chrec.h (scev_is_linear_expression): Declared.
9497         * graphite.c (graphite_cannot_represent_loop_niter): New.
9498         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
9499         (graphite_loop_normal_form): Use gcc_assert.
9500         (scan_tree_for_params): Use CASE_CONVERT.
9501         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
9502         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
9503         Use gcc_assert.  Discard scops that contain unhandled cases.
9504         (build_scop_conditions): Return a boolean status for unhandled cases.
9505         (strip_mine_profitable_p): Print the loop number, not its depth.
9506         (is_interchange_valid): Pass the depth of the loop nest, don't
9507         recompute it wrongly.
9508         (graphite_trans_bb_block): Same.
9509         (graphite_trans_bb_block): Print tentative of loop blocking.
9510         (graphite_trans_scop_block): Do not print that the loop has been
9511         blocked.
9512         (graphite_transform_loops): Do not handle scops that contain condition
9513         scalar phi nodes.
9514
9515 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
9516
9517         AVX Programming Reference (December, 2008)
9518         * config/i386/avxintrin.h (_mm256_stream_si256): New.
9519         (_mm256_stream_pd): Likewise.
9520         (_mm256_stream_ps): Likewise.
9521
9522         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
9523         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
9524         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
9525         (bdesc_special_args): Add __builtin_ia32_movntdq256,
9526         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
9527         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
9528         (ix86_expand_special_args_builtin): Likewise.
9529
9530         * config/i386/sse.md (AVXMODEDI): New.
9531         (avx_movnt<mode>): Likewise.
9532         (avx_movnt<mode>): Likewise.
9533         (<sse>_movnt<mode>): Remove AVX support.
9534         (sse2_movntv2di): Likewise.
9535
9536 2009-01-07  Richard Guenther  <rguenther@suse.de>
9537
9538         PR middle-end/38751
9539         * fold-const.c (extract_muldiv): Remove obsolete comment.
9540         (fold_plusminus_mult_expr): Undo MINUS_EXPR
9541         to PLUS_EXPR canonicalization for the canonicalization.
9542
9543 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
9544
9545         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
9546         hosted cross-compilers generating less efficient code.
9547
9548 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
9549
9550         * function.h (rtl_data): Add a dbr_scheduled_p field.
9551         * reorg.c (dbr_schedule): Set it.
9552         (gate_handle_delay_slots): Check it.
9553         * config/mips/mips.c (mips_base_delayed_branch): Delete.
9554         (mips_reorg): Check flag_delayed_branch instead of
9555         mips_base_delayed_branch.
9556         (mips_override_options): Don't set mips_base_delayed_branch
9557         or flag_delayed_branch.
9558
9559 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
9560
9561         PR rtl-optimization/38426.
9562         * ira.c (ira): Set current_function_is_leaf earlier.
9563
9564 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
9565
9566         PR rtl-optimization/38722
9567         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
9568         too early, only set a flag and modify after last possible
9569         undo_all point.
9570
9571 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
9572
9573         PR c/34252
9574         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
9575         * real.c (decimal_single_format): Correct values of emin and emax.
9576         (decimal_double_format): Ditto.
9577         (decimal_quad_format): Ditto.
9578         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
9579         computation of DECnn_MIN and DECnn_MAX for corrected values of
9580         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
9581         __DECnn_MIN__, and adjust its computation for the corrected value
9582         of emin.
9583
9584 2009-01-06  Jan Hubicka  <jh@suse.cz>
9585
9586         PR target/38744
9587         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
9588
9589 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
9590
9591         * doc/contrib.texi (Contributors): Slightly adjust the end note.
9592         Add Robert Clark to the list of testers.
9593
9594 2009-01-06  Jan Hubicka  <jh@suse.cz>
9595             Kai Tietz  <kai.tietz@onevision.com>
9596
9597         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
9598         * config/i386/i386.c (ix86_expand_call): Add clobbers.
9599
9600 2009-01-06  Jan Hubicka  <jh@suse.cz>
9601             Kai Tietz  <kai.tietz@onevision.com>
9602
9603         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
9604         for w64 ABI.
9605         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
9606         (ix86_nsaved_regs): Count only general purpose regs.
9607         (ix86_nsaved_sseregs): New.
9608         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
9609         to 16 for w64; compute padding and size of sse reg save area.
9610         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
9611         general purpose regs.
9612         (ix86_emit_save_sse_regs_using_mov): New.
9613         (ix86_expand_prologue): Save SSE regs if needed.
9614         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
9615         (ix86_emit_restore_sse_regs_using_mov): New.
9616         (ix86_expand_epilogue): Save SSE regs if needed.
9617
9618 2009-01-06  Jan Hubicka  <jh@suse.cz>
9619             Kai Tietz  <kai.tietz@onevision.com>
9620
9621         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
9622         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
9623         functions when accumulate outgoing args is off.
9624
9625 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
9626
9627         PR bootstrap/38742
9628         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
9629         before using pseudos_have_intersected_live_ranges_p.
9630
9631         * ira-int.h (ira_assert): Always define.
9632
9633 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
9634
9635         AVX Programming Reference (December, 2008)
9636         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
9637         (_mm256_permute2_pd): Likewise.
9638         (_mm_permute2_ps): Likewise.
9639         (_mm256_permute2_ps): Likewise.
9640         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
9641         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
9642
9643         * config/i386/i386.c (ix86_builtins): Remove
9644         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
9645         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
9646         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
9647         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
9648         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
9649         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
9650         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
9651         __builtin_ia32_vpermil2ps256.
9652         (ix86_init_mmx_sse_builtins): Updated.
9653         (ix86_expand_args_builtin): Likewise.
9654
9655 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9656
9657         * pa.c (output_call): Relocate non-jump insns in the delay slot of
9658         long absolute calls when generating PA 2.0 code.
9659
9660 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
9661
9662         PR rtl-optimization/38583
9663         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
9664
9665         * params.def (ira-max-conflict-table-size): New.
9666
9667         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
9668
9669         * ira.h (ira_conflicts_p): New external definition.
9670
9671         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
9672         table.  Report this.  Return result of building.
9673         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
9674         building conflict table.
9675
9676         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
9677         (ira_color): Use ira_conflicts_p.
9678
9679         * global.c: Include ira.h.
9680         (pseudo_for_reload_consideration_p, build_insn_chain): Use
9681         ira_conflicts_p.
9682
9683         * Makefile.in (global.o): Add ira.h.
9684
9685         * ira-build.c (mark_all_loops_for_removal,
9686         propagate_some_info_from_allocno): New.
9687         (remove_unnecessary_allocnos): Call
9688         propagate_some_info_from_allocno.
9689         (remove_low_level_allocnos): New.
9690         (remove_unnecessary_regions): Add parameter.  Call
9691         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
9692         parameter to remove_unnecessary_regions.
9693         (ira_build): Remove all regions but root if the conflict table was
9694         not built.  Update conflict hard regs for allocnos crossing calls.
9695
9696         * ira.c (ira_conflicts_p): New global.
9697         (ira): Define and use ira_conflicts_p.
9698
9699         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9700         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
9701         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
9702
9703 2009-01-06  Ben Elliston  <bje@au.ibm.com>
9704
9705         * gengtype-lex.l (YY_NO_INPUT): Define.
9706
9707 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9708
9709         PR c/34911
9710         * c-common.c (handle_vector_size_attribute): Also reject
9711         BOOLEAN_TYPE types.
9712
9713 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
9714
9715         PR tree-optimization/38492
9716         * graphite.c (rename_map_elt, debug_rename_elt,
9717         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
9718         rename_map_elt_info, eq_rename_map_elts,
9719         get_new_name_from_old_name, bb_in_sese_p): Moved around.
9720         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
9721         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
9722         (sese_build_livein_liveouts): New.
9723         (new_sese, free_sese): New.
9724         (new_scop): Call new_sese.
9725         (free_scop): Call free_sese.
9726         (rename_variables_from_edge, rename_phis_end_scop): Removed.
9727         (register_old_new_names): Renamed register_old_and_new_names.
9728         (register_scop_liveout_renames, add_loop_exit_phis,
9729         insert_loop_close_phis, struct igp,
9730         default_liveout_before_guard, add_guard_exit_phis,
9731         insert_guard_phis, copy_renames): New.
9732         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
9733         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
9734         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
9735         (scop_adjust_phis_for_liveouts): New.
9736         (gloog): Call scop_adjust_phis_for_liveouts.
9737
9738         * graphite.h (struct sese): Documented.  Added fields liveout,
9739         num_ver and livein.
9740         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
9741         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
9742         (struct scop): Added field liveout_renames.
9743         (SCOP_LIVEOUT_RENAMES): New.
9744
9745 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
9746
9747         PR tree-optimization/38510
9748         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
9749         (translate_clast): Call recompute_all_dominators before
9750         graphite_verify.
9751         (gloog): Call recompute_all_dominators before graphite_verify.
9752
9753 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
9754             Jan Sjodin  <jan.sjodin@amd.com>
9755
9756         PR tree-optimization/38500
9757         * graphite.c (create_sese_edges): Call fix_loop_structure after
9758         splitting blocks.
9759
9760 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
9761
9762         * config.gcc: Add m32r*-*-rtems*.
9763         * config/m32r/rtems.h: New file.
9764
9765 2009-01-05  Ben Elliston  <bje@au.ibm.com>
9766
9767         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
9768         (.po.pox): Likewise.
9769         (po/gcc.pot): Likewise.
9770
9771 2009-01-04  David S. Miller  <davem@davemloft.net>
9772
9773         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
9774         (STARTING_FRAME_OFFSET): Always set to zero.
9775
9776 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
9777
9778         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
9779         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
9780         fixed-point types, and vectors of the same.
9781
9782 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
9783
9784         * config/mips/sync.md (*mb_barrier): Rename to...
9785         (*memory_barrier): ...this.
9786
9787 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
9788
9789         * doc/extend.texi (Function Attributes): Move @cindex after @item
9790         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
9791         and put in alphabetical order. Fix 'target' name and put in order.
9792         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
9793         typos.
9794
9795 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
9796
9797         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
9798         (memory_barrier): Expand as unspec instead of unspec_volatile.
9799         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9800         (*memory_barrier): Define as unspec instead of unspec_volatile.
9801         Use (match_dup 0) as input operand.
9802
9803         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
9804         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
9805         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
9806         scratch register.  Remove operand 1.
9807         (*stbar): Define as unspec instead of unspec_volatile.
9808         Use (match_dup 0) as input operand, remove (const_int 8).
9809         (*membar): Define as unspec instead of unspec_volatile.
9810         Use (match_dup 0) as input operand, remove input operand 2.
9811
9812         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
9813         (memory_barrier): Expand as unspec instead of unspec_volatile.
9814         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9815         (*memory_barrier): Define as unspec instead of unspec_volatile.
9816         Use (match_dup 0) as input operand.
9817
9818         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
9819         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9820         Set volatile flag on operand 0.
9821         (*memory_barrier): New insn pattern.
9822
9823         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
9824         insn operands.
9825         (*memory_barrier): Use (match_dup 0) as input operand.
9826
9827         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
9828         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9829         Set volatile flag on operand 0.
9830         (*mb_internal): New insn pattern.
9831
9832         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
9833
9834 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
9835
9836         PR middle-end/38586
9837         * function.c (struct temp_slot): Move to the section of the file
9838         that deals with temp slots.  Remove field 'address'.
9839         (temp_slot_address_table): New hash table of address -> temp slot.
9840         (struct temp_slot_address_entry): New struct, items for the table.
9841         (temp_slot_address_compute_hash, temp_slot_address_hash,
9842         temp_slot_address_eq, insert_temp_slot_address): Support functions
9843         for the new table.
9844         (find_temp_slot_from_address): Rewrite to use the new hash table.
9845         (remove_unused_temp_slot_addresses): Remove addresses of temp
9846         slots that have been made available.
9847         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
9848         worker function for remove_unused_temp_slot_addresses.
9849         (assign_stack_temp_for_type): Don't clear the temp slot address list.
9850         Add the temp slot address to the address -> temp slot map.
9851         (update_temp_slot_address): Update via insert_temp_slot_address.
9852         (free_temp_slots): Call remove_unused_temp_slot_addresses.
9853         (pop_temp_slots): Likewise.
9854         (init_temp_slots): Allocate the address -> temp slot map, or empty
9855         the map if it is already allocated.
9856         (prepare_function_start): Initialize temp slot processing.
9857
9858 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
9859
9860         PR middle-end/38584
9861         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
9862         Calculate the size of all stack vars assuming no packing of stack
9863         vars will happen, replacing a quadratic algorithm with a linear one.
9864
9865 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
9866
9867         PR target/38707
9868         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
9869         can't be used.
9870
9871 2009-01-03  Diego Novillo  <dnovillo@google.com>
9872
9873         * doc/contrib.texi: Update contributions.
9874
9875 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
9876
9877         PR c++/38705
9878         * builtins.c (fold_builtin_memory_op): Give up if either operand
9879         is volatile.  Set srctype or desttype to non-qualified version
9880         of the other type.
9881
9882         PR c/38700
9883         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
9884         and FUNCTION_DECLs.
9885
9886 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
9887
9888         PR rtl-optimization/35805
9889         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
9890         problem if fast dce is able to remove any instructions.
9891         * dce.c (dce_process_block): Fix dump message.
9892
9893 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
9894
9895         PR 33649
9896         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
9897
9898 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
9899
9900         PR middle-end/38690
9901         * tree-flow.h (op_code_prio, op_prio): New prototypes.
9902         * tree-pretty-print.c (op_code_prio): New function.
9903         (op_prio): No longer static.  Use op_code_prio.
9904         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
9905         Use op_prio and op_code_prio to determine if () should be
9906         printed around operand(s) or not.
9907
9908         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
9909         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
9910         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
9911         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
9912         pp_character instead of pp_string for single letter printing.
9913
9914 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
9915
9916         * doc/extend.texi: Fix '#pragma GCC option' typo.
9917
9918 2009-01-02  Richard Guenther  <rguenther@suse.de>
9919
9920         * doc/install.texi (--enable-checking): Mention different
9921         default for stage1.
9922         (--enable-stage1-checking): Document.
9923
9924 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
9925
9926         PR middle-end/30142
9927         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
9928         case to be an error.
9929
9930 2009-01-02  Ben Elliston  <bje@au.ibm.com>
9931
9932         * config/fp-bit.h (pack_d): Constify argument.
9933         * config/fp-bit.c (makenan): Constify return type. Remove casts.
9934         (isnan): Constify argument.
9935         (isinf): Likewise.
9936         (iszero): Likewise.
9937         (pack_d): Likewise.
9938         (_fpadd_parts): Constify return type.
9939         (_fpmul_parts): Likewise.
9940         (_fpdiv_parts): Likewise.
9941
9942 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
9943
9944         PR c/36489
9945         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
9946         warn about overwriting initializer with side-effects or
9947         -Woverride-init if !IMPLICIT.
9948         (output_init_element): Likewise.  Pass IMPLICIT down to
9949         add_pending_init.
9950         (process_init_element): Add IMPLICIT argument.  Pass it down
9951         to output_init_element.
9952         (push_init_element, pop_init_level, set_designator): Adjust
9953         process_init_element callers.
9954         (set_nonincremental_init, set_nonincremental_init_from_string):
9955         Adjust add_pending_init callers.
9956         (output_pending_init_elements): Adjust output_init_element callers.
9957         * c-tree.h (process_init_element): Adjust prototype.
9958         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
9959         process_init_element callers.
9960
9961 \f
9962 Copyright (C) 2009 Free Software Foundation, Inc.
9963
9964 Copying and distribution of this file, with or without modification,
9965 are permitted in any medium without royalty provided the copyright
9966 notice and this notice are preserved.