OSDN Git Service

* varasm.c: Do not include c-pragma.h
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * varasm.c: Do not include c-pragma.h.
4         * attribs.c: Do not incude c-common.h.
5
6 2009-05-01  Michael Matz  <matz@suse.de>
7
8         * calls.c (initialize_argument_information): Handle SSA names like
9         decls with a non MEM_P DECL_RTL.
10
11 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
12
13         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
14         * ipa-utils.c: Likewise.
15         * ipa-type-escape.c: Likewise.
16         * cgraphunit.c Do not include c-common.h.
17         * ipa-pure-const.c: Likewise.
18         * tree-if-conv.c: Likewise.
19         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
20         * ipa-struct-reorg.c: Likewise.
21         * tree-nomudflap.c: Likewise.
22         * tree-ssa-structalias.c: Likewise.
23
24 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
25
26         * store-motion.c: Many cleanups to make this pass a first-class
27         citizen instead of an appendix to gcse load motion.  Add TODO list
28         to make this pass faster/cleaner/better.
29
30         (struct ls_expr): Post gcse.c-split cleanups.
31         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
32         "stores" field to "avail_stores".
33         (pre_ldst_mems): Rename to store_motion_mems.
34         (pre_ldst_table): Rename to store_motion_mems_table.
35         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
36         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
37         (ldst_entry): Rename to st_expr_entry, update users.
38         (free_ldst_entry): Rename to free_st_expr_entry, update users.
39         (free_ldst_mems): Rename to free_store_motion_mems, update users.
40         (enumerate_ldsts): Rename to enumerate_store_motion_mems, update caller.
41         (first_ls_expr): Rename to first_st_expr, update users.
42         (next_ls_expr): Rename to next_st_expr, update users.
43         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
44         fields properly for store motion instead of names inherited from load
45         motion in gcse.c.
46         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
47         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
48         are done with it.
49
50         (ae_kill): Rename to st_kill, update users.
51         (ae_gen): Rename to st_avloc, update users.
52         (transp): Rename to st_transp, update users.
53         (pre_insert_map): Rename to st_insert_map, update users.
54         (pre_delete_map): Rename to st_delete_map, update users.
55         (insert_store, build_store_vectors, free_store_memory,
56         one_store_motion_pass): Update for abovementioned changes.
57
58         (gcse_subst_count, gcse_create_count): Remove.
59         (one_store_motion_pass): New statistics counters "n_stores_deleted"
60         and "n_stores_created", local variables.
61
62         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
63         use for_each_rtx.
64
65         (regvec, compute_store_table_current_insn): Remove.
66         (reg_set_info, reg_clear_last_set): Remove.
67         (compute_store_table): Use DF caches instead of local dataflow
68         solvers.
69
70 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
71
72         * c-objc-common.c (c_tree_printer): Print identifiers with
73         pp_identifier, not pp_string.  Mark "({anonymous})" for
74         translation.
75         * c-pretty-print.c (pp_c_ws_string): New.
76         (pp_c_cv_qualifier, pp_c_type_specifier,
77         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
78         pp_c_storage_class_specifier, pp_c_function_specifier,
79         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
80         pp_c_primary_expression, pp_c_postfix_expression,
81         pp_c_unary_expression, pp_c_shift_expression,
82         pp_c_relational_expression, pp_c_equality_expression,
83         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
84         use pp_string and pp_c_ws_string in place of pp_identifier and
85         pp_c_identifier for non-identifiers.  Mark English strings for
86         translation.
87         * c-pretty-print.h (pp_c_ws_string): Declare.
88
89 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
90             Roland McGrath <roland@redhat.com>
91
92         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id
93         support.
94         (ENABLE_LD_BUILDID): New configuration option.
95         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
96         (LINK_BUILDID_SPEC): New macro.
97         (init_spec): If defined, prepend it between LINK_EH_SPEC and
98         link_spec.
99         * doc/install.texi: Document --enable-linker-build-id option.
100         * configure: Rebuild.
101         * config.in: Rebuild.
102
103 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
104
105         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
106         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
107         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
108         MIPS_GP_SAVE_AREA_SIZE.
109         * config/mips/mips.c (struct mips_frame_info): Update comment
110         before arg_pointer_offset and hard_frame_pointer_offset.
111         (mips_compute_frame_info): Update diagram before function: to
112         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
113         indicate the position of frame_pointer_rtx with -fstack-protector and
114         to show args_size.  Don't allocate cprestore area for leaf functions
115         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
116         cprestore_size.
117         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
118
119 2009-04-30  Michael Matz  <matz@suse.de>
120
121         PR tree-optimization/39955
122         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
123
124 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
125
126         * ira.c (setup_cover_and_important_classes):  Use safe macro
127         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
128         directly.
129         * genpreds.c (write_tm_preds_h):  Output suitable definition of
130         REG_CLASS_FOR_CONSTRAINT.
131
132 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
133
134         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
135         instead of an int.
136         * bitmap.c (bitmap_descriptor): Likewise.
137         * ggc-common.c (loc_descriptor): Likewise.
138         * varray.c (varray_descriptor): Likewise.
139         * vec.c (vec_descriptor): Likewise.
140
141 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
142
143         * Makefile.in (dce.o): Add $(EXCEPT_H).
144         * dce.c: Include except.h and delete redundant vector definitions.
145         (deletable_insn_p): Return false for non-call insns that can throw
146         if DF is running.
147
148 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
149
150         * gcse.c (ae_gen): Remove.
151         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
152         and make non-static function to make it available in store-motion.c.
153         Update call sites with search-and-replace.
154         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
155         extract_mentioned_regs, extract_mentioned_regs_helper,
156         find_moveable_store, compute_store_table, load_kills_store, find_loads,
157         store_killed_in_insn, store_killed_after, store_killed_before,
158         build_store_vectors, insert_insn_start_basic_block, insert-store,
159         remove_reachable_equiv_notes, replace_store_insn, delete_store,
160         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
161         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
162         * store-motion.c: ...new file.  Also copy data structures from gcse.c
163         and clean up to remove parts not used by store motion.
164         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
165         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
166
167 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
168
169         PR target/38571
170         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
171         when optimizing for size.
172
173 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
174
175         * gcse.c (gcse_constant_p): Fix typo in last change.
176
177 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
178
179         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
180
181 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
182
183         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
184
185 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
186
187         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
188         CONST_HIGH_PART result.
189
190 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
191
192         * config/avr/avr.c (initial_elimination_offset): Rename to
193         avr_initial_elimination_offset.
194         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
195         change return type to bool.
196         (avr_can_eliminate): New function.
197         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
198         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
199         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
200         * config/avr/avr-protos.h (initial_elimination_offset) : Rename to
201         avr_initial_elimination_offset.
202         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
203         (avr_initial_elimination_offset): Define.
204
205 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
206             Steven Bosscher  <steven@gcc.gnu.org>
207
208         PR rtl-optimization/39938
209         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
210         * cfgrtl.c: Include insn-attr.h.
211         (rest_of_pass_free_cfg): New function.
212         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
213         * resource.c (init_resource_info): Remove call to df_analyze.
214
215 2009-04-29  Richard Guenther  <rguenther@suse.de>
216
217         PR target/39943
218         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
219         allow conversion to signed integers.
220
221 2009-04-29  Richard Guenther  <rguenther@suse.de>
222
223         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
224         shifts of floating point vectors if the shift amount is
225         a constant multiple of the element size.
226
227 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
228             Michael Matz  <matz@suse.de>
229
230         PR middle-end/39927
231         PR bootstrap/39929
232         * tree-outof-ssa.c (emit_partition_copy): New function.
233         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
234         insert_part_to_rtx_on_edge): Perform the partition base var
235         copy using emit_partition_copy.
236         (insert_value_copy_on_edge): Convert constants to the right mode.
237         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
238         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
239
240 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
241
242         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
243         scan backwards to try to find a constant to initialize it.
244
245         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
246         insn before the loop_end instruction, don't look past labels.
247
248 2009-04-29  Richard Guenther  <rguenther@suse.de>
249
250         PR middle-end/39937
251         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
252         loose type conversions.
253         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
254         stmts only if there are no uses of its definition.
255
256 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
257
258         * config/bfin/bfin.h (splitting_loops): Declare.
259         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
260         Reorder bit definitions to be ascending.
261         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
262         * config/bfin/bfin.c (splitting_loops): New variable.
263         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
264         (struct loop_info): Remove members INIT and LOOP_INIT.
265         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
266         the LSETUP sequence.  Allow LC to be loaded from any register, but also
267         add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
268         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
269         set to 1.
270         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
271         of reload_completed.
272         From Jie Zhang:
273         * config/bfin/bfin.md (movsi_insn): Refine constraints.
274
275 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
276
277         * Makefile.in (PLUGIN_VERSION_H): New.
278         (OBJS-common): Remove plugin-version.o.
279         (plugin.o): Depend on (PLUGIN_VERSION_H).
280         (plugin-version.o): Remove.
281         * configure: Regenerate
282         * configure.ac: Create plugin-version.h.
283         * gcc-plugin.h (plugin_gcc_version): Remove.
284         (plugin_default_version_check): Change signature.
285         * plugin-version.c: Remove.
286         * plugin.c: Include plugin-version.h.
287         (str_plugin_gcc_version_name): Remove.
288         (try_init_one_plugin): Pass gcc version to plugin_init.
289         (plugin_default_version_check): Both gcc and plugin versions are now
290         arguments.
291
292 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
293         
294         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
295         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
296         Remove special case testing for last insn of inner loops. Don't fail if
297         the loop ends with a jump, emit an extra nop instead.
298
299         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
300         DREGS rather than comparing directly.  Remove code that tries to
301         account for latencies.
302
303 2009-04-29  Richard Guenther  <rguenther@suse.de>
304
305         PR tree-optimization/39941
306         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
307         eliminating an indirect call.
308
309 2009-04-29  Richard Guenther  <rguenther@suse.de>
310
311         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
312         parameter.  Allow invariants as base if !require_lvalue.
313         (verify_gimple_assign_single): Adjust.
314
315 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
316
317         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
318         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
319         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, ssubhi3,
320         ssaddhi3_parts and sssubhi3_parts.
321         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
322         a VEC_SELECT.
323         * config/bfin/bfin.c (bfin_expand_builtin, case BFIN_BUILTIN_CPLX_SQU):
324         Adjust accordingly.
325
326 2009-04-28  Richard Guenther  <rguenther@suse.de>
327
328         * tree-vect-loop.c (get_initial_def_for_induction): Use
329         correct types for pointer increment.
330
331 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
332
333         * toplev.c (print_version): Update GMP version string calculation.
334
335 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
336
337         PR rtl-optimization/39938
338         * resource.c (init_resource_info): Add call to df_analyze.
339
340 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
341
342         * config/alpha/alpha.md (usegp): Cast the result of
343         alpha_find_lo_sum_using_gp to enum attr_usegp.
344         * config/alpha/alpha.c (override_options): Remove end-of-structure
345         marker element from cpu_table.  Use array size of cpu_table to handle
346         -mcpu and -mtune options.
347         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
348
349 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
350
351         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
352         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
353         tune_32 and tune_64.
354         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
355         support on PowerPC.
356         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
357         * config/rs6000/option-defaults.h: ... here.  New file.
358         (OPT_64, OPT_32): Define.
359         (MASK_64BIT): Define to 0 if not already defined.
360         (OPT_ARCH64, OPT_ARCH32): Define.
361         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
362         and tune_64.
363
364 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
365
366         * config/arm/arm.c (arm_override_options): Emit error on using
367         fpa with AAPCS.
368
369 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
370
371         PR rtl-optimization/39914
372         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
373         registers for allocnos created from user-defined variables only
374         when not optimizing.
375
376 2009-04-28  Richard Guenther  <rguenther@suse.de>
377
378         PR middle-end/39937
379         * fold-const.c (fold_binary): Use distribute_real_division only
380         on float types.
381
382 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
383
384         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
385         add hpux-stdint.h to tm_file.
386         (hppa[12]*-*-hpux11*): Ditto.
387         (ia64*-*-hpux*): Ditto.
388         * config/hpux-stdint.h: New.
389         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
390         __STDC_EXT__ for all compiles.
391         * config/pa/pa-hpux.h: Ditto.
392         * config/pa/pa-hpux10.h: Ditto.
393         * config/pa/pa-hpux11.h: Ditto.
394
395 2009-04-28  Catherine Moore  <clm@codesourcery.com>
396
397         * debug.h (set_name): Add comment.
398
399 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
400
401         PR target/39929
402         * config/darwin.c (machopic_gen_offset): Check
403         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
404         * config/arm/arm.c (require_pic_register): Likewise.
405
406 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
407
408         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
409         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
410         m32c_promote_prototypes): Delete.
411
412 2009-04-28  Michael Matz  <matz@suse.de>
413
414         PR middle-end/39922
415         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
416         constants.
417
418 2009-04-28  Richard Guenther  <rguenther@suse.de>
419
420         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
421
422 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
423
424         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
425         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
426         * config/arm/arm-tune.md: Regenerate.
427
428 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
429
430         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
431         block if there are complex incoming edges.
432         (sel_merge_blocks): Remove useless assert.
433         (sel_redirect_edge_and_branch): Check that edge was redirected.
434         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
435         (sel_find_rgns): Delete declaration.
436         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
437         the region when it is not a preheader.
438
439 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
440
441         PR c/39323
442         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
443
444 2009-04-28  Richard Guenther  <rguenther@suse.de>
445
446         * tree.h (SSA_NAME_VALUE): Remove.
447         (struct tree_ssa_name): Remove value_handle member.
448         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
449         array for jump threading.
450         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
451         SSA_NAME_VALUEs.
452         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
453         * tree-flow.h (threadedge_initialize_values): Declare.
454         (threadedge_finalize_values): Likewise.
455         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
456         (SSA_NAME_VALUE): Define.
457         (threadedge_initialize_values): New function.
458         (threadedge_finalize_values): Likewise.
459         * tree-ssa-dom.c (ssa_name_values): New global variable.
460         (SSA_NAME_VALUE): Define.
461         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
462
463 2009-04-28  Ira Rosen  <irar@il.ibm.com>
464
465         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
466         Use REPORT_VECTORIZED_LOCATIONS instead 
467         REPORT_VECTORIZED_LOOPS.
468         * tree-vectorizer.c (vect_verbosity_level): Make static.
469         (vect_loop_location): Rename to vect_location.
470         (vect_set_verbosity_level): Update comment.
471         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
472         and vect_location.
473         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
474         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
475         instead REPORT_UNVECTORIZED_LOOPS.
476         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def and
477         vect_loop_def to vect_external_def and vect_internal_def.
478         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
479         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
480         REPORT_UNVECTORIZED_LOCATIONS.
481         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
482         and vect_used_in_loop and to vect_unused_in_scope and 
483         vect_used_in_scope.
484         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
485         (vect_verbosity_level): Remove declaration.
486         (vect_analyze_operations): Likewise.
487         (vect_analyze_stmt): Declare.
488         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
489         REPORT_UNVECTORIZED_LOCATIONS.
490         (vect_get_loop_niters): Fix indentation.
491         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
492         (vect_analyze_loop_operations): New function.
493         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
494         vect_analyze_operations.
495         (vect_is_simple_reduction): Use new names.
496         (vectorizable_live_operation, vect_transform_loop): Likewise.
497         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value to
498         specify whether the data references can be a part of interleaving chain.
499         (vect_analyze_data_ref_dependence): Use new names.
500         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
501         (vect_create_addr_base_for_vector_ref): Remove redundant code.
502         * tree-vect-patterns.c (widened_name_p): Use new names.
503         (vect_recog_dot_prod_pattern): Likewise.
504         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
505         (process_use, vect_mark_stmts_to_be_vectorized, 
506         vect_model_simple_cost, vect_model_store_cost,
507         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
508         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
509         vectorizable_operation, vectorizable_type_demotion,
510         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
511         vectorizable_condition): Likewise.
512         (vect_analyze_operations): Split into vect_analyze_loop_operations
513         and ...
514         (vect_analyze_stmt): ... new function.
515         (new_stmt_vec_info): Use new names.
516         (vect_is_simple_use): Use new names and fix comment.
517         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
518         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
519
520 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
521
522         PR target/39911
523         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
524         and integer modes for x87 operands.  Do not ICE for unsupported size,
525         generate error instead.  Generate error for unsupported operand types.
526         ['z']: Do not handle HImode memory operands specially.  Warning
527         for floating-point operands.  Fallthru to 'Z' for unsupported operand
528         types.  Do not ICE for unsupported size, generate error instead.
529         (output_387_binary_op): Use %Z to output operands.
530         (output_fp_compare): Ditto.
531         (output_387_reg_move): Ditto.
532
533 2009-04-28  Ben Elliston  <bje@au.ibm.com>
534
535         PR c++/35652
536         Revert:
537
538         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
539
540         * builtins.c (c_strlen): Do not warn here.
541         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
542         * c-common.c (pointer_int_sum): Take an explicit location.
543         Warn about offsets out of bounds.
544         * c-common.h (pointer_int_sum): Adjust declaration.
545
546 2009-04-27  Ian Lance Taylor  <iant@google.com>
547
548         * collect2.c (is_ctor_dtor): Change type of ret field in struct
549         names to symkind.
550         * dce.c (run_fast_df_dce): Change type of old_flags to int.
551         * df-core.c (df_set_flags): Change return type to int.  Change
552         type of old_flags to int.
553         (df_clear_flags): Likewise.
554         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
555         (df_get_conditional_uses): Likewise.
556         * df.h (df_set_flags, df_clear_flags): Update declarations.
557         * dwarf2out.c (struct indirect_string_node): Change type of form
558         field to enum dwarf_form.
559         (AT_string_form): Change return type to enum dwarf_form.
560         * fixed-value.c (fixed_compare): Add cast to enum type.
561         * fwprop.c (update_df): Change 0 to VOIDmode.
562         * gensupport.c: Change 0 to UNKNOWN.
563         * gimple.h (gimple_cond_code): Add cast to enum type.
564         * haifa-sched.c (reemit_notes): Add cast to enum type.
565         * hooks.c (hook_int_void_no_regs): Remove function.
566         * hooks.h (hook_int_void_no_regs): Remove declaration.
567         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
568         * predict.c (combine_predictions_for_insn): Add casts to enum type.
569         * real.c (real_arithmetic): Add cast to enum type.
570         (real_compare): Likewise.
571         * target.h (struct gcc_target): Change return type of
572         branch_target_register_class to enum reg_class.
573         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
574         default_branch_target_register_class.
575         * targhooks.c (default_branch_target_register_class): New function.
576         * targhooks.h (default_branch_target_register_class): Declare.
577         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
578         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
579         cast to int.
580         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
581         ERROR_MARK.
582         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
583         vect_uninitialized_def.  Change 0 to ERROR_MARK.
584         * tree-vect-stmts.c (supportable_widening_operation): Don't
585         initialize icode1 and icode2.
586         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
587         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
588         and to STD_C89.
589         (cmn_err_flag_specs): Change 0 to STD_C89.
590         (cmn_err_char_table): Likewise.
591         * config/arm/arm.c (get_arm_condition_code): Change type of code
592         to enum arm_cond_code.
593         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
594         (IWMMXT_BUILTIN2): Likewise.
595         (neon_builtin_type_bits): Don't define typedef.
596         (neon_builtin_datum): Change type of bits field to int.
597         (arm_expand_neon_args): Add cast to enum type.
598         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
599         TLS_MODEL_NONE.
600         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
601         casts to enum type.
602         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
603         MIPS_FP_COND_f.
604         * config/mips/mips.md (jal_macro): Return enum constant.
605         (single_insn): Likewise.
606         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
607         CODE_FOR_nothing.
608         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
609         casts to enum type.
610         * config/s390/s390.c (s390_tune_flags): Change type to int.
611         (s390_arch_flags): Likewise.
612         (s390_handle_arch_option): Change flags field of struct pta to int.
613         * config/s390/s390.h (s390_tune_flags): Update declaration.
614         (s390_arch_flags): Likewise.
615         * config/sh/sh.c (prepare_move_operands): Compare
616         tls_symbolic_operand result with enum constant.
617         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
618         (sh_expand_prologue): Add cast to enum type.
619         (sh_expand_epilogue): Likewise.
620         (tls_symbolic_operand): Change return type to enum tls_model.
621         (fpscr_set_from_mem): Add cast to enum type.
622         (legitimize_pic_address): Compare tls_symbolic_operand result with
623         enum constant.
624         (sh_target_reg_class): Change return type to enum reg_class.
625         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
626         PROCESSOR_xxx.
627         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
628         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
629         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
630         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
631         (delayed_branch, tls_call_delay): Likewise.
632         (eligible_for_sibcall_delay): Likewise.
633         (eligible_for_return_delay): Likewise. 
634         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
635         (spu_expand_builtin_1): Likewise.
636
637         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
638         for all types of conversions.
639         (output_init_element): Issue -Wc++-compat warning if needed when
640         initializing a bitfield with enum type.
641         * c-parser.c (c_parser_expression): Set original_type to
642         original_type of right hand operand of comman operator.
643
644 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
645
646         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
647         grammar nits.
648         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
649         * doc/cpp.texi (Standard Predefined Macros)
650         (Implementation-defined behavior): Likewise.
651         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
652         * doc/gimple.texi (GIMPLE Exception Handling)
653         (@code{GIMPLE_ASSIGN}): Likewise.
654         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
655         * doc/invoke.texi (Warning Options, Optimize Options)
656         (AVR Options, Darwin Options): Likewise.
657         (Optimize Options): Reformulate -fwhole-program description.
658         * doc/loop.texi (Lambda): Likewise.
659         * doc/md.texi (Output Template, Define Constraints)
660         (Standard Names, Insn Splitting): Likewise.
661         * doc/options.texi (Option properties): Likewise.
662         * doc/passes.texi (Tree-SSA passes): Likewise.
663         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
664         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
665         (File Names and DBX): Likewise.
666         * doc/trouble.texi (Incompatibilities): Likewise.
667
668 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
669
670         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
671         instruction is correct.
672
673 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
674
675         Allow non-constant arguments to conversion intrinsics.
676         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
677         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
678         * spu.c (print_operand): Handle 'v' and 'w'.
679         (exp2_immediate_p, spu_gen_exp2): Define.
680         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
681         spu_convtf_1): Update parameter descriptions.
682         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
683         * constraints.md ('v', 'w'): New.
684         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
685         Remove.
686         (i2f, I2F): New define_mode_attr.
687         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
688         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
689         fixuns_truncv4sfv4si2):  Update to use mode attribute.
690         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
691         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
692         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
693         patterns for combine.
694
695 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
696
697         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
698         (cprop, hoist, pre, store_motion): New debug counters.
699         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
700         is not an RTL pass anymore.
701         (pass_profiling): Remove extern decl for pass removed in 2005.
702         (pass_gcse, pass_jump_bypass): Remove.
703         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
704         to 0 for clean state.
705         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
706         * cse.c (gate_handle_cse_after_global_opts,
707         rest_of_handle_cse_after_global_opts): New functions.
708         (pass_cse_after_global_opts): New pass, does local CSE.
709         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
710         (TV_CPROP): New timevar.
711         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
712         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
713         (gcse_main, recompute_all_luids): Remove.
714         (compute_hash_table_work): Call max_reg_num instead of reading
715         max_gcse_regno.
716         (cprop_jump): Don't set run_jump_opt_after_gcse.
717         (constprop_register): Always allow to alter jumps.
718         (cprop_insn): Likewise.
719         (do_local_cprop): Likewise.
720         (local_cprop_pass): Likewise.  Return non-zero if something changed.
721         (cprop): Remove function, fold interesting bits into one_cprop_pass.
722         (find_implicit_sets): Add note about missed optimization opportunity.
723         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
724         pass_rtl_cprop execute function.
725         Don't bother tracking the pass number, each pass gets its own dumpfile
726         now anyway.
727         Always allow to alter jumpsand bypass jumps.
728         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
729         will just find no suitable set.
730         (pre_edge_insert): Fix dumping, this function is for PRE only.
731         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
732         pass_rtl_pre execute function.
733         (hoist_code): Return non-zero if something changed.  Keep track of
734         substitutions and insertions for statistics gathering similar to PRE.
735         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
736         called from the pass_rtl_hoist execute function.  Show pass statistics.
737         (compute_store_table): Use max_reg_num directly instead of using the
738         formerly global max_gcse_regno.
739         (build_store_vectors): Likewise.
740         (replace_store_insn): Fix dumping.
741         (store_motion): Rename to ...
742         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
743         pass, called from the pass_rtl_store_motion execute function.  Keep
744         track of substitutions and insertions for statistics gathering similar
745         to PRE.
746         (bypass_jumps): Remove, fold interesting bits into ...
747         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
748         from the pass_rtl_cprop execute function.
749         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
750         pass_jump_bypass): Remove.
751         (gate_handle_gcse, rest_of_handle_gcse): Remove.
752         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
753         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
754         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
755         (gate_rtl_store_motion, execute_rtl_store_motion,
756         pass_rtl_store_motion): New.
757         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
758         make it clear that -fcse-skip-blocks is a no-op for backward compat.
759         * passes.c (init_optimization_passes): Remove pass_gcse and
760         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
761         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
762         instead of pass_jump_bypass.
763
764 2009-04-27  Richard Guenther  <rguenther@suse.de>
765
766         PR middle-end/39928
767         * gimplify.c (gimplify_expr): If we are required to create
768         a temporary make sure it ends up as register.
769
770 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
771
772         PR target/39903
773         * config/i386/i386.c (construct_container): Don't call
774         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
775         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
776
777 2009-04-27  Michael Matz  <matz@suse.de>
778
779         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
780         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
781         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
782         (dump_replaceable_exprs): Take a bitmap.
783         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
784         array.
785         (expand_gimple_basic_block): Likewise.
786         * tree-ssa-ter.c (struct temp_expr_table_d): Make
787         replaceable_expressions member a bitmap.
788         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
789         (mark_replaceable): Likewise.
790         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
791         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
792
793 2009-04-27  Richard Guenther  <rguenther@suse.de>
794
795         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
796         (verify_stmts): Dispatch to gimple/type verification code.
797         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
798         issue with call argument types.
799
800 2009-04-27  Michael Matz  <matz@suse.de>
801
802         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
803         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
804         to above.
805
806 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
807             Eric Botcazou  <ebotcazou@adacore.com>
808
809         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
810         a label's basic block.
811         (mark_target_live_regs): Tidy and rework obsolete comments.
812         Change back DF problem to LIVE.  If a label starts a basic block,
813         assume that all registers that used to be live then still are.
814         (init_resource_info): If a label starts a basic block, set its
815         BLOCK_FOR_INSN accordingly.
816         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
817
818 2009-04-27  Richard Guenther  <rguenther@suse.de>
819
820         * tree-flow-inline.h (function_ann): Remove.
821         (get_function_ann): Likewise.
822         * tree-dfa.c (create_function_ann): Remove.
823         * tree-flow.h (struct static_var_ann_d): Remove.
824         (struct function_ann_d): Likewise.
825         (union tree_ann_d): Remove fdecl member.
826         (function_ann_t): Remove.
827         (function_ann, get_function_ann, create_function_ann): Remove
828         declarations.
829
830 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
831
832         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
833
834 2009-04-27  Jan Hubicka  <jh@suse.cz>
835
836         * ipa-pure-const.c (struct funct_state_d): New fields
837         state_previously_known, looping_previously_known; remove
838         state_set_in_source.
839         (analyze_function): Use new fields.
840         (propagate): Avoid assumption that state_set_in_source imply
841         nonlooping.
842
843         * tree-ssa-loop-niter.c (finite_loop_p): New function.
844         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
845         * cfgloop.h (finite_loop_p): Declare.
846
847 2009-04-26  Michael Matz  <matz@suse.de>
848
849         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
850
851 2009-04-26  Michael Matz  <matz@suse.de>
852
853         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
854         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
855         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
856         pass_mark_used_blocks): Remove.
857         * tree-optimize.c (pass_free_datastructures,
858         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
859         * passes.c (init_optimization_passes): Don't call
860         pass_mark_used_blocks, remove dead code.
861
862 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
863
864         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
865         * tree-ssa-live.h (register_ssa_partition): Likewise.
866
867 2009-04-26  Michael Matz  <matz@suse.de>
868
869         Expand from SSA.
870         * builtins.c (fold_builtin_next_arg): Handle SSA names.
871         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
872         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
873         SSA names. 
874         (compare_pairs): Swap cost comparison.
875         (coalesce_ssa_name): Don't use change_partition_var.
876         * tree-nrv.c (struct nrv_data): Add modified member.
877         (finalize_nrv_r): Set it.
878         (tree_nrv): Use it to update statements.
879         (pass_nrv): Require PROP_ssa.
880         * tree-mudflap.c (mf_decl_cache_locals,
881         mf_build_check_statement_for): Use make_rename_temp.
882         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
883         * alias.c (find_base_decl): Handle SSA names.
884         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
885         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
886         * rtl.h (set_reg_attrs_for_parm): Declare.
887         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
888         to "optimized", remove unused locals at finish.
889         (execute_free_datastructures): Make global, call
890         delete_tree_cfg_annotations.
891         (execute_free_cfg_annotations): Don't call
892         delete_tree_cfg_annotations.
893
894         * ssaexpand.h: New file.
895         * expr.c (toplevel): Include ssaexpand.h.
896         (expand_assignment): Handle SSA names the same as register variables.
897         (expand_expr_real_1): Expand SSA names.
898         * cfgexpand.c (toplevel): Include ssaexpand.h.
899         (SA): New global variable.
900         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
901         (SSAVAR): New macro.
902         (set_rtl): New helper function.
903         (add_stack_var): Deal with SSA names, use set_rtl.
904         (expand_one_stack_var_at): Likewise.
905         (expand_one_stack_var): Deal with SSA names.
906         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
907         before unique numbers.
908         (expand_stack_vars): Use set_rtl.
909         (expand_one_var): Accept SSA names, add asserts for them, feed them
910         to above subroutines.
911         (expand_used_vars): Expand all partitions (without default defs),
912         then only the local decls (ignoring those expanded already).
913         (expand_gimple_cond): Remove edges when jumpif() expands an
914         unconditional jump.
915         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
916         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
917         SSA name.
918         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
919         members of SA; deal with PARM_DECL partitions here; expand
920         all PHI nodes, free tree datastructures and SA.  Commit instructions
921         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
922         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
923         info and statements at start, collect garbage at finish.
924         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
925         (VAR_ANN_PARTITION) Remove.
926         (change_partition_var): Don't declare.
927         (partition_to_var): Always return SSA names.
928         (var_to_partition): Only accept SSA names.
929         (register_ssa_partition): Only check argument.
930         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
931         member.
932         (delete_var_map): Don't free it.
933         (var_union): Only accept SSA names, simplify.
934         (partition_view_init): Mark only useful SSA names as used.
935         (partition_view_fini): Only deal with SSA names.
936         (change_partition_var): Remove.
937         (dump_var_map): Use ssa_name instead of partition_to_var member.
938         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
939         basic blocks.
940         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
941         (struct _elim_graph): New member const_dests; nodes member vector of
942         ints.
943         (set_location_for_edge): New static helper.
944         (create_temp): Remove.
945         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
946         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
947         (new_elim_graph): Allocate const_dests member.
948         (clean_elim_graph): Truncate const_dests member.
949         (delete_elim_graph): Free const_dests member.
950         (elim_graph_size): Adapt to new type of nodes member.
951         (elim_graph_add_node): Likewise.
952         (eliminate_name): Likewise.
953         (eliminate_build): Don't take basic block argument, deal only with
954         partition numbers, not variables.
955         (get_temp_reg): New static helper.
956         (elim_create): Use it, deal with RTL temporaries instead of trees.
957         (eliminate_phi): Adjust all calls to new signature.
958         (assign_vars, replace_use_variable, replace_def_variable): Remove.
959         (rewrite_trees): Only do checking.
960         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
961         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
962         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
963         contains_tree_r, MAX_STMTS_IN_LATCH,
964         process_single_block_loop_latch, analyze_edges_for_bb,
965         perform_edge_inserts): Remove.
966         (expand_phi_nodes): New global function.
967         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
968         functions, initialize new parameter, remember partitions having a
969         default def.
970         (finish_out_of_ssa): New global function.
971         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
972         don't reset in_ssa_p here, don't disable TER when mudflap.
973         (pass_del_ssa): Remove.
974         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
975         partition members.
976         (execute_free_datastructures): Declare.
977         * Makefile.in (SSAEXPAND_H): New variable.
978         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
979         * basic-block.h (commit_one_edge_insertion): Declare.
980         * passes.c (init_optimization_passes): Move pass_nrv and
981         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
982         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
983         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
984         (redirect_branch_edge): Deal with super block when expanding, split
985         out jump patching itself into ...
986         (patch_jump_insn): ... here, new static helper.
987
988 2009-04-26  Michael Matz  <matz@suse.de>
989
990         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
991         beyond num_ssa_names.
992         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
993         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
994
995 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
996
997         PR inline-asm/39543
998         * fwprop.c (forward_propagate_asm): New function.
999         (forward_propagate_and_simplify): Propagate also into __asm, if it
1000         doesn't increase the number of referenced registers.
1001
1002         PR c/39889
1003         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
1004
1005 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
1006
1007         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
1008         note_nonlocal_vla_type for nonlocal VLAs.
1009         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
1010         contains_remapped_vars, remap_vla_decls): New functions.
1011         (convert_nonlocal_reference_stmt): If not optimizing, call
1012         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
1013         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
1014         if it wasn't found in var_map.
1015         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
1016         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
1017         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
1018         declare_vars.
1019         * gimplify.c (nonlocal_vlas): New variable.
1020         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
1021         referenced VLAs.
1022         (gimplify_body): Create and destroy nonlocal_vlas.
1023
1024         * dwarf2out.c (loc_descr_plus_const): New function.
1025         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
1026         mem_loc_descriptor, loc_descriptor_from_tree_1,
1027         descr_info_loc, gen_variable_die): Use it.
1028
1029         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
1030         !TREE_STATIC VAR_DECLs.
1031         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
1032         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
1033         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
1034         DECL_BY_REFERENCE is valid.
1035         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
1036         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
1037         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
1038         Copy DECL_BY_REFERENCE.
1039         (struct nesting_copy_body_data): New type.
1040         (nesting_copy_decl): New function.
1041         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
1042         if they have variable length.
1043
1044 2009-04-26  Michael Matz  <matz@suse.de>
1045
1046         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
1047         mark new temporaries for renaming.
1048
1049 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1050
1051         PR c/39581
1052         * c-decl.c (global_bindings_p): Return negative value.
1053         (c_variable_size): New.  Based on variable_size from
1054         stor-layout.c.
1055         (grokdeclarator): Call c_variable_size not variable_size.
1056
1057 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
1058
1059         * config/i386/i386.c (print_operand) ['z']: Fix typo.
1060
1061 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
1062
1063         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
1064         Redefine it to just use mingw/include.
1065         (ASM_SPEC): Rules for -m32 and -m64.
1066         (LINK_SPEC): Use Likewise.
1067         (SPEC_32): New define.
1068         (SPEC_64): Likewise.
1069         (SUB_LINK_SPEC): Likewise.
1070         (MULTILIB_DEFAULTS): New define.
1071         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
1072         Add multilib options.
1073         (MULTILIB_DIRNAMES): Likewise.
1074         (MULTILIB_OSDIRNAMES): Likewise.
1075         (LIBGCC): Likewise.
1076         (INSTALL_LIBGCC): Likewise.
1077
1078 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
1079
1080         PR c/39556
1081         * c-tree.h (enum c_inline_static_type): New.
1082         (record_inline_static): Declare.
1083         * c-decl.c (struct c_inline_static, c_inline_statics,
1084         record_inline_static, check_inline_statics): New.
1085         (pop_file_scope): Call check_inline_statics.
1086         (start_decl): Call record_inline_static instead of pedwarning
1087         directly for static in inline function.
1088         * c-typeck.c (build_external_ref): Call record_inline_static
1089         instead of pedwarning directly for static referenced in inline
1090         function.
1091
1092 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
1093
1094         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
1095         not new but only being rescanned.
1096         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
1097         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
1098         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
1099         record_set_info, compute_set, grealloc): Remove.
1100         (recompute_all_luids): New function.
1101         (gcse_main): Don't compute sets, and don't do related memory
1102         allocations/free-ing.  If something changed before the end of the
1103         pass, update LUIDs using recompute_all_luids.
1104         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
1105         (free_gcse_mem): Don't free it either.
1106         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
1107         Use the df insn LUIDs.
1108         (load_killed_in_block): Likewise.
1109         (compute_hash_table_work): Don't compute reg_set_in_block.
1110         (compute_transp): Use DF_REG_DEF_CHAINs.
1111         (local_cprop_pass): Don't use compute_sets and related functions.
1112         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
1113         Use get_max_uid() instead of max_cuid.
1114         (insert_insn_end_basic_block, pre_insert_copy_insn,
1115         update_ld_motion_stores): Don't try to
1116         keep reg_set tables up to date.
1117         (pre_insert_copies): Use df insn LUIDs.
1118         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
1119         (reg_set_info): Don't use extra bitmap argument.
1120         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
1121         information to compute regs_set_in_block.
1122         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
1123         (bypass_jumps): Don't use compute_sets and friends.
1124
1125 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1126
1127         PR testsuite/39710
1128         * opts.c (undocumented_msg): Do not leave blank even with
1129         ENABLE_CHECKING.
1130
1131 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1132
1133         * c-decl.c (build_enumerator): Allow values folding to integer
1134         constants but not integer constant expressions with a pedwarn if
1135         pedantic.
1136
1137 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1138
1139         PR c/39582
1140         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
1141         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
1142         type is an integer constant.
1143
1144 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1145
1146         PR target/39897
1147         * config/i386/i386.c (print_operand) ['z']: Revert handling of
1148         HImode operands.
1149
1150 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
1151
1152         PR c/39564
1153         * c-decl.c (grokdeclarator): Diagnose declarations of functions
1154         with variably modified return type and no storage class
1155         specifiers, except for the case of nested functions.  Distinguish
1156         extern declarations of functions with variably modified return
1157         types from those of objects with variably modified types.
1158
1159 2009-04-25  Jan Hubicka  <jh@suse.cz>
1160
1161         * tree.c (list_equal_p): New function.
1162         * tree.h (list_equal_p): Declare.
1163         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1164         basic_block_def, basic_block, const_basic_block): New.
1165         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
1166         (redirect_eh_edge): New function.
1167         (make_eh_edge_update_phi): EH edges are not abnormal.
1168         * except.c: Include tree-flow.h.
1169         (list_match): New function.
1170         (eh_region_replaceable_by_p): New function.
1171         (replace_region): New function.
1172         (hash_type_list): New function.
1173         (hash_eh_region): New function.
1174         (eh_regions_equal_p): New function.
1175         (merge_peers): New function.
1176         (remove_unreachable_regions): Verify EH tree when checking;
1177         merge peers.
1178         (copy_eh_region_1): New function.
1179         (copy_eh_region): New function.
1180         (push_reachable_handler): New function.
1181         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
1182         regions without label but with live RESX.
1183         * except.h (redirect_eh_edge_to_label): New.
1184         * tree-flow.h (redirect_eh_edge): New.
1185         * coretypes.h (edge_def, edge, const_edge, basic_block_def
1186         basic_block_def, basic_block, const_basic_block): Remove.
1187         * Makefile.in (except.o): Add dependency on tree-flow.h
1188         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
1189         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
1190         Remove.
1191
1192 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
1193
1194         PR bootstrap/39645
1195         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
1196         on the destination of memcpy.
1197
1198 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
1199
1200         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
1201         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
1202         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
1203
1204 2009-04-25  Jan Hubicka  <jh@suse.cz>
1205
1206         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
1207         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
1208         to be reached by different label than left.
1209         (update_eh_edges): Update comment; remove edge_to_remove if possible
1210         and return true if suceeded.
1211         (cleanup_empty_eh): Accept sharing map; handle shared regions.
1212         (cleanup_eh): Compute sharing map.
1213         * except.c (remove_eh_handler_and_replace): Add argument if we should
1214         update regions.
1215         (remove_unreachable_regions): Update for label sharing.
1216         (label_to_region_map): Likewise.
1217         (get_next_region_sharing_label): New function.
1218         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
1219         prev_try pointers.
1220         (remove_eh_handler): Update.
1221         (remove_eh_region_and_replace_by_outer_of): New function.
1222         * except.h (struct eh_region): Add next_region_sharing_label.
1223         (remove_eh_region_and_replace_by_outer_of,
1224         get_next_region_sharing_label): Declare.
1225         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
1226
1227 2009-04-25  Jan Hubicka  <jh@suse.cz>
1228
1229         * tree-cfg.c (split_critical_edges): Split also edges where we can't
1230         insert code even if they are not critical.
1231
1232 2009-04-25  Jan Hubicka  <jh@suse.cz>
1233
1234         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1235         (gimple_can_remove_branch_p): EH edges won't remove branch by
1236         redirection.
1237         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
1238         updating of non-abnormal EH edges.
1239         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
1240         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
1241         (split_critical_edges): Split also edges where emitting code on them
1242         will lead to splitting later.
1243
1244 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
1245             H.J. Lu  <hongjiu.lu@intel.com>
1246
1247         PR target/39590
1248         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
1249         the configured assembler supports fildq and fistpq mnemonics.
1250         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
1251         * configure: Regenerated.
1252         * config.in: Ditto.
1253
1254         * config/i386/i386.c (print_operand): Handle 'Z'.
1255         ['z']: Remove handling of special fild/fist suffixes.
1256         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
1257         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
1258         suffix of fild insn.
1259         (*floatsi<mode>2_vector_mixed): Ditto.
1260         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
1261         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
1262         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
1263         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
1264         * config/i386/gas.h (GAS_MNEMONICS): Remove.
1265
1266 2009-04-25  Ben Elliston  <bje@au.ibm.com>
1267  
1268         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
1269         the source of a set operation.
1270
1271 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
1272
1273         * target.h (struct gcc_target): Add case_values_threshold field.
1274         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
1275         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
1276         * targhooks.c (default_case_values_threshold): New function.
1277         * targhooks.h (default_case_values_threshold): Declare function.
1278         * stmt.c (expand_case): Use case_values_threshold target hook.
1279         * expr.h (case_values_threshold): Remove declartation.
1280         * expr.c (case_values_threshold): Remove function.
1281         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
1282
1283         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
1284         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1285         (avr_case_values_threshold): Declare as static.
1286         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
1287
1288         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
1289         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
1290         (mn10300_case_values_threshold): New function.
1291
1292 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1293
1294         * ira.c (setup_cover_and_important_classes): Add enum cast.
1295
1296 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
1297
1298         * genpreds.c (write_enum_constraint_num): Output definition of
1299         CONSTRAINT_NUM_DEFINED_P macro.
1300         * ira.c (setup_cover_and_important_classes): Use
1301         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
1302         
1303 2009-04-24  DJ Delorie  <dj@redhat.com>
1304
1305         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
1306         __SH2A_SINGLE_ONLY__ also.
1307
1308 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
1309
1310         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
1311         (movdf_internal): Ditto.
1312         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
1313         SFmode and DFmode constants.
1314         (ia64_print_operand): Add 'G' format for printing
1315         floating point constants.
1316
1317 2009-04-24  Richard Guenther  <rguenther@suse.de>
1318
1319         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
1320         from unsigned additions.
1321
1322 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
1323
1324         * c-typeck.c (set_init_index): Allow array designators that are
1325         not integer constant expressions with a pedwarn if pedantic.
1326
1327 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1328
1329         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
1330         zero if no overlap in nonzero bits between the operands.
1331
1332 2009-04-24  Ian Lance Taylor  <iant@google.com>
1333
1334         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
1335         (record_dead_and_set_regs): Likewise.
1336         * df.h (struct df_mw_hardreg): Change flags field to int.
1337         (struct df_base_ref): Likewise.
1338         (struct df): Change changeable_flags field to int.
1339         * df-scan.c (df_defs_record): Change clobber_flags to int.
1340         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
1341         constants rather than #define macros.
1342         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
1343         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
1344         (enum dwarf_calling_convention): Likewise.
1345         (enum dwarf_line_number_x_ops): Likewise.
1346         (enum dwarf_call_frame_info): Likewise.
1347         (enum dwarf_source_language): Likewise.
1348         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
1349         (add_calling_convention_attribute): Likewise.
1350         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
1351         (combine_comparisons): Change compcode to int.  Add cast to enum type.
1352         * genrecog.c (maybe_both_true_2): Change c to int.
1353         (write_switch): Likewise.  Add cast to enum type.
1354         * gimplify.c (gimplify_omp_for): Handle return values from
1355         gimplify_expr using MIN rather than bitwise or.
1356         (gimplify_expr): Add cast to enum type.
1357         * ipa-prop.c (update_jump_functions_after_inlining): Change
1358         IPA_BOTTOM to IPA_JF_UNKNOWN.
1359         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
1360         Add casts to enum type.
1361         (setup_cover_and_important_classes): Change cl to int.  Add casts
1362         to enum type.
1363         (setup_class_translate): Change cl and mode to int.
1364         (ira_init_once): Change mode to int.
1365         (free_register_move_costs): Likewise.
1366         (setup_prohibited_mode_move_regs): Add casts to enum type.
1367         * langhooks.c (add_builtin_function_common): Rework assertion that
1368         value fits bitfield.
1369         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
1370         * omega.c (omega_do_elimination): Avoid math on enum types.
1371         * optabs.c (expand_vec_shift_expr): Remove casts to int.
1372         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
1373         int local to handle integral_argment value.
1374         * regmove.c (try_auto_increment): Change PUT_MODE to
1375         PUT_REG_NOTE_KIND.
1376         * reload.c (push_secondary_reload): Add casts to enum type.
1377         (secondary_reload_class, find_valid_class): Likewise.
1378         * reload1.c (emit_input_reload_insns): Likewise.
1379         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
1380         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
1381         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
1382         constant.
1383         * tree.c (build_common_builtin_nodes): Add casts to enum type.
1384         * tree-complex.c (complex_lattice_t): Typedef to int rather than
1385         enum type.
1386         (expand_complex_libcall): Add casts to enum type.
1387         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
1388         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
1389         with ERROR_MARK, not NUM_TREE_CODES.
1390         (vect_create_epilog_for_reduction): Likewise.
1391         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
1392         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
1393         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
1394         enum machine_mode.
1395         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
1396         vect_unused_in_loop.  Change 0 to loop_vect.
1397         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
1398         * var-tracking.c (get_init_value): Change return type to enum
1399         var_init_status.
1400         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
1401         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
1402         arm_fp_model.
1403         (arm_override_options): Add casts to enum type.
1404         (arm_emit_tls_decoration): Likewise.
1405         * config/i386/i386.c (ix86_function_specific_restore): Add casts
1406         to enum type.
1407         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
1408         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
1409         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
1410         enum type.
1411         * config/s390/s390.c (code_for_builtin_64): Change to array of
1412         enum insn_code.
1413         (code_for_builtin_31): Likewise.
1414         (s390_expand_builtin): Change code_for_builtin to enum insn_code
1415         const *.
1416         * config/sparc/sparc.c (sparc_override_options): Change value
1417         field in struct code_model to enum cmodel.  In initializer change
1418         0 to NULL and add cast to enum type.
1419
1420         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
1421         Change all callers.  Issue a -Wc++-compat warning using
1422         lhs_origtype if necessary.
1423         (convert_for_assignment): Issue -Wc++-compat warnings about
1424         invalid conversions to enum type on assignment.
1425         * c-common.h (build_modify_expr): Update declaration.
1426
1427 2009-04-24  Nick Clifton  <nickc@redhat.com>
1428
1429         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
1430         (function_arg_advance): Likewise.
1431         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
1432         5th alternative.
1433
1434 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1435
1436         * config/s390/constraints.md ('I', 'J'): Fix condition.
1437
1438 2009-04-24  Diego Novillo  <dnovillo@google.com>
1439
1440         * gengtype-parse.c (parse_error): Add newline after message.
1441
1442 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
1443
1444         * config/i386/sse.md (avxmodesuffixs): Removed.
1445         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
1446         (*avx_pinsr<ssevecsize>): This.
1447
1448 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
1449
1450         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
1451         follow chains of regs with a single definition, and allow expressions
1452         that are function_invariant_p.
1453         (simple_rhs_p): Allow expressions that are function_invariant_p.
1454
1455 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
1456
1457         PR middle-end/39867
1458         * fold-const.c (fold_cond_expr_with_comparison): When folding
1459         > and >= to MAX, make sure the MAX uses the same type as the
1460         comparison's operands.
1461
1462 2009-04-24  Nick Clifton  <nickc@redhat.com>
1463
1464         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
1465         addressing for DImode accesses.
1466         (frv_print_operand_address): Handle PLUS case.
1467         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
1468
1469 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
1470
1471         PR rtl-optimization/39794
1472         * alias.c (canon_true_dependence): Add x_addr argument.
1473         * rtl.h (canon_true_dependence): Adjust prototype.
1474         * cse.c (check_dependence): Adjust canon_true_dependence callers.
1475         * cselib.c (cselib_invalidate_mem): Likewise.
1476         * gcse.c (compute_transp): Likewise.
1477         * dse.c (scan_reads_nospill): Likewise.
1478         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
1479         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
1480         canon_base_addr of the group, plus optional offset.
1481         (struct group_info): Rename canon_base_mem to
1482         canon_base_addr.
1483         (get_group_info): Set canon_base_addr to canon_rtx of base, not
1484         canon_rtx of base_mem.
1485
1486 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
1487
1488         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
1489         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
1490
1491 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1492
1493         * config/spu/spu-builtins.h: Delete file.
1494
1495         * config/spu/spu.h (enum spu_builtin_type): Move here from
1496         spu-builtins.h.
1497         (struct spu_builtin_description): Likewise.  Add GTY marker.
1498         Do not use enum spu_function_code or enum insn_code.
1499         (spu_builtins): Add extern declaration.
1500
1501         * config/spu/spu.c: Do not include "spu-builtins.h".
1502         (enum spu_function_code, enum spu_builtin_type_index,
1503         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
1504         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
1505         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
1506         unsigned_V2DI_type_node): Move here from spu-builtins.h.
1507         (spu_builtin_types): Make static.  Add GTY marker.
1508         (spu_builtins): Add extern declaration with GTY marker.
1509         Include "gt-spu.h".
1510
1511         * config/spu/spu-c.c: Do not include "spu-builtins.h".
1512         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
1513         Check programmatically whether all parameters are scalar.
1514
1515         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
1516
1517 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1518
1519         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
1520         assignment from the constructor either if the target is volatile.
1521
1522 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
1523
1524         * config/arm/arm.md (insv): Do not share operands[0].
1525
1526 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1527
1528         * config/vxlib-tls.c (active_tls_threads): Delete.
1529         (delete_hook_installed): New.
1530         (tls_delete_hook): Don't delete the delete hook.
1531         (tls_destructor): Delete it here.
1532         (__gthread_set_specific): Adjust installing the delete hook.
1533         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
1534         __gthread_leave_tsd_dtor_context.
1535
1536 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
1537
1538         * c-format.c (gcc_tdiag_char_table): Add support for %E.
1539
1540 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
1541
1542         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
1543         enum type.
1544         (alpha_rtx_costs): Ditto.
1545         (emit_unlikely_jump): Use add_reg_note.
1546         (emit_frame_store_1): Ditto.
1547         (alpha_expand_prologue): Ditto.
1548         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1549         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
1550
1551 2009-04-23  Nick Clifton  <nickc@redhat.com>
1552
1553         * config/v850/v850.md (epilogue): Remove suppressed code.
1554         (return): Rename to return_simple and remove test of frame size.
1555         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
1556         to gen_return_simple.
1557
1558 2009-04-22  Jing Yu  <jingyu@google.com>
1559
1560         PR testsuite/39781
1561         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
1562
1563 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1564
1565         PR C/31499
1566         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
1567         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
1568         value is a VECTOR_CST, the element type is the element type of the
1569         vector.
1570
1571 2009-04-22  DJ Delorie  <dj@redhat.com>
1572
1573         * config/m32c/m32c.h: Update GTY annotations to new syntax.
1574
1575 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
1576
1577         * alias.c (find_base_term): Move around LO_SUM case, so that
1578         CONST falls through into PLUS/MINUS handling.
1579
1580         PR c/39855
1581         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
1582         into 0, use omit_one_operand.
1583
1584 2009-04-23  Ben Elliston  <bje@au.ibm.com>
1585
1586         * config/rs6000/linux-unwind.h (get_regs): Remove type
1587         puns. Change the type of `pc' to an array of unsigned ints and
1588         update all users.  Constify frame24.
1589
1590 2009-04-22  DJ Delorie  <dj@redhat.com>
1591
1592         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
1593         declarations before code.
1594         (current_function_special_page_vector): Likewise.
1595         (m32c_expand_insv): Silence a warning.
1596
1597 2009-04-21  Taras Glek  <tglek@mozilla.com>
1598
1599         * alias.c: Update GTY annotations to new syntax.
1600         * basic-block.h: Likewise.
1601         * bitmap.h: Likewise.
1602         * c-common.h: Likewise.
1603         * c-decl.c: Likewise.
1604         * c-parser.c: Likewise.
1605         * c-pragma.c: Likewise.
1606         * c-tree.h: Likewise.
1607         * cfgloop.h: Likewise.
1608         * cgraph.h: Likewise.
1609         * config/alpha/alpha.c: Likewise.
1610         * config/arm/arm.h: Likewise.
1611         * config/avr/avr.h: Likewise.
1612         * config/bfin/bfin.c: Likewise.
1613         * config/cris/cris.c: Likewise.
1614         * config/darwin.c: Likewise.
1615         * config/frv/frv.c: Likewise.
1616         * config/i386/i386.c: Likewise.
1617         * config/i386/i386.h: Likewise.
1618         * config/i386/winnt.c: Likewise.
1619         * config/ia64/ia64.h: Likewise.
1620         * config/iq2000/iq2000.c: Likewise.
1621         * config/mips/mips.c: Likewise.
1622         * config/mmix/mmix.h: Likewise.
1623         * config/pa/pa.c: Likewise.
1624         * config/pa/pa.h: Likewise.
1625         * config/rs6000/rs6000.c: Likewise.
1626         * config/s390/s390.c: Likewise.
1627         * config/sparc/sparc.c: Likewise.
1628         * config/xtensa/xtensa.c: Likewise.
1629         * cselib.h: Likewise.
1630         * dbxout.c: Likewise.
1631         * dwarf2out.c: Likewise.
1632         * except.c: Likewise.
1633         * except.h: Likewise.
1634         * fixed-value.h: Likewise.
1635         * function.c: Likewise.
1636         * function.h: Likewise.
1637         * gimple.h: Likewise.
1638         * integrate.c: Likewise.
1639         * optabs.c: Likewise.
1640         * output.h: Likewise.
1641         * real.h: Likewise.
1642         * rtl.h: Likewise.
1643         * stringpool.c: Likewise.
1644         * tree-data-ref.c: Likewise.
1645         * tree-flow.h: Likewise.
1646         * tree-scalar-evolution.c: Likewise.
1647         * tree-ssa-address.c: Likewise.
1648         * tree-ssa-alias.h: Likewise.
1649         * tree-ssa-operands.h: Likewise.
1650         * tree.c: Likewise.
1651         * tree.h: Likewise.
1652         * varasm.c: Likewise.
1653         * varray.h: Likewise.
1654         * vec.h: Likewise.
1655         * coretypes.h: Do not define GTY macro if it is already defined.
1656         * doc/gty.texi: Update GTY documentation to new syntax.
1657         * gengtype-lex.l: Enforce attribute-like syntax for GTY
1658         annotations on structs.
1659         * gengtype-parse.c: Likewise.
1660
1661 2009-04-22  Mark Heffernan  <meheff@google.com>
1662
1663         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
1664
1665 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
1666
1667         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
1668         where appropriate.
1669
1670 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
1671
1672         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
1673         the same as a PLUS without a shift.  Increase the cost of a
1674         CONST_INT in MULT.
1675
1676 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1677
1678         * Makefile.in: Update dependencies.
1679         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
1680         * errors.h: Remove bogus comment about compatibility.
1681         (warning): Update declaration.
1682         * genautomata.c: Update all calls to warning.
1683         * gimple.c: Do not include errors.h. Include toplev.h.
1684         * tree-ssa-structalias.c: Do not include errors.h.
1685         * omega.c: Likewise.
1686         * tree-ssa-reassoc.c: Likewise.
1687         * config/spu/spu-c.c: Likewise.
1688         * config/spu/t-spu-elf: Update dependencies.
1689
1690 2009-04-22  Richard Guenther  <rguenther@suse.de>
1691
1692         PR tree-optimization/39824
1693         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
1694         make sure the types are compatible.
1695
1696 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1697
1698         PR c++/14875
1699         * c-common.c (c_parse_error): Take a token_flags parameter.
1700         Use token_type for the token type instead.
1701         Pass token_flags to cpp_type2name.
1702         * c-common.h (c_parse_error): Update declaration.
1703         * c-parser.c (c_parser_error): Pass 0 as token flags.
1704
1705 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
1706
1707         PR rtl-optimization/39580
1708         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
1709         
1710 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1711
1712         * function.c (expand_function_end): Do not emit a jump to the "naked"
1713         return label for fall-through returns.
1714         * except.c (sjlj_emit_function_exit): Always place the call to the
1715         unregister function at the location installed by expand_function_end.
1716
1717 2009-04-22  Richard Guenther  <rguenther@suse.de>
1718
1719         PR tree-optimization/39845
1720         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
1721         (gen_inbound_check): Likewise.
1722
1723 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1724
1725         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
1726         padding for PPC.
1727         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
1728         * config/vxlib.c (__gthread_once): Add race guard for PPC.
1729
1730 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1731
1732         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
1733         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
1734         shift counts to avoid out-of-bounds array accesses.
1735
1736 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1737
1738         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
1739         (Pmode): Move above.
1740
1741 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
1742
1743         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
1744         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
1745         GET_CODE macro.  Use IN_RANGE macro where appropriate.
1746         * config/alpha/alpha.h: Ditto.
1747         * config/alpha/alpha.md: Ditto.
1748         * config/alpha/constraints.md: Ditto.
1749         * config/alpha/predicates.md: Ditto.
1750         
1751 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1752
1753         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
1754         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1755         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1756         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1757         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1758         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1759         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1760         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1761         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1762         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1763         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1764         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1765         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1766         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1767         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1768         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1769         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1770         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1771         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1772         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1773         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1774         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1775         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1776         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1777         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1778         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1779         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1780
1781 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1782
1783         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
1784         references from comments.
1785         * cfgbuild.c: (count_basic_blocks): Delete.
1786         (find_basic_blocks_1): Delete.
1787         (find_basic_blocks): Delete.
1788         * except.c (finish_eh_generation): Make static.  Move comment from
1789         except.h here.  Remove find_basic_blocks references from comments.
1790         * except.h (finish_eh_generation): Delete.
1791         * basic-block.h (find_basic_blocks): Delete.
1792         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
1793
1794 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
1795
1796         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
1797         (sdbout_parms):  Likewise.
1798
1799 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1800
1801         * config/sh/sh.c (prepare_cbranch_operands): Use
1802         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
1803         (expand_cbranchdi4): Likewise.
1804         (from_compare): Add cast to enum type.
1805         (expand_cbranchsi4): Use add_reg_note.
1806         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
1807         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
1808         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
1809         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1810         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
1811         instead of CODE_FOR_nothing.
1812         (cbranchdi4): Likewise.  Fix the order of arguments for
1813         gen_rtx_fmt_ee.
1814         (push_fpscr): Use add_reg_note.
1815         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
1816         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
1817         
1818 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
1819
1820         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
1821         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1822         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1823         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
1824         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
1825         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
1826         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
1827         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
1828         config/alpha/x-vms, config/arc/t-arc,
1829         config/arm/README-interworking, config/arm/arm-c.c,
1830         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
1831         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
1832         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
1833         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
1834         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
1835         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
1836         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
1837         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
1838         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
1839         config/cris/t-elfmulti, config/crx/t-crx,
1840         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
1841         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
1842         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
1843         config/h8300/t-h8300, config/i386/athlon.md,
1844         config/i386/darwin-libgcc.10.4.ver,
1845         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
1846         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
1847         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
1848         config/i386/t-linux64, config/i386/t-nwld,
1849         config/i386/t-rtems-i386, config/i386/t-sol2-10,
1850         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
1851         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
1852         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
1853         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
1854         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
1855         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
1856         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
1857         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
1858         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
1859         config/m68k/t-uclinux, config/mcore/t-mcore,
1860         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
1861         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
1862         config/mips/crtn.asm, config/mips/irix-crti.asm,
1863         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
1864         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
1865         config/mips/mips-fixed.md, config/mips/sb1.md,
1866         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
1867         config/mips/t-iris6, config/mips/t-isa3264,
1868         config/mips/t-libgcc-mips16, config/mips/t-linux64,
1869         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
1870         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
1871         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
1872         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
1873         config/mn10300/t-linux, config/mn10300/t-mn10300,
1874         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
1875         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
1876         config/picochip/libgccExtras/clzsi2.asm,
1877         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
1878         config/rs6000/darwin-libgcc.10.4.ver,
1879         config/rs6000/darwin-libgcc.10.5.ver,
1880         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
1881         config/rs6000/t-aix43, config/rs6000/t-aix52,
1882         config/rs6000/t-darwin, config/rs6000/t-fprules,
1883         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
1884         config/rs6000/t-lynx, config/rs6000/t-netbsd,
1885         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
1886         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
1887         config/rs6000/t-rtems, config/rs6000/t-spe,
1888         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
1889         config/score/t-score-elf, config/sh/divcost-analysis,
1890         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
1891         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
1892         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
1893         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
1894         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
1895         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
1896         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
1897         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
1898         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
1899         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
1900         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
1901         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
1902         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
1903         limitx.h, version.c, xcoff.h: Add copyright and license notices.
1904         * config/h8300/genmova.sh: Include copyright and license notices
1905         in generated output.
1906         * config/h8300/mova.md: Regenerate.
1907         * doc/install.texi2html: Include word "Copyright" in copyright
1908         notice and use name "Free Software Foundation, Inc.".
1909         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1910         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1911         ChangeLog-2007, ChangeLog-2008: Correct dates.
1912
1913 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
1914
1915         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
1916         NE_EXPR operations as well.
1917         * c-parser.c (c_parser_condition): Do not set location information on
1918         the condition.
1919         (c_parser_conditional_expression): Likewise.
1920         (c_parser_binary_expression): Set location information on operators.
1921         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
1922         TRUTH_NOT_EXPR has been folded.
1923         * fold-const.c (fold_truth_not_expr): Copy location information from
1924         the incoming expression to the outgoing one.
1925         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
1926         recursive calls on the LHS of the operator but pass that of the
1927         operator to recursive calls on the RHS of the operator.  Set it
1928         on the COND_EXPR.
1929         (shortcut_cond_expr): Set the locus of the operator on the second
1930         COND_EXPR and that of the expression on the first in degenerate cases.
1931         Pass the locus of the expression to calls to shortcut_cond_r.
1932         Set the locus of the 'then' block on the associated jump, if any.
1933         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
1934         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
1935         expression to call to gimplify_boolean_expr.
1936
1937 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
1938
1939         * config.gcc: Add additional configuration for
1940         i686-w64-mingw* and x86_64-w64-mingw* triplet.
1941         * config/i386/mingw-w64.h: New mingw-w64 specific header.
1942         (CPP_SPEC): Redefine for allowing -municode option.
1943         (STARTFILE_SPEC): Likewise.
1944         * config/i386/t-mingw-w64: New.
1945         * config/i386/mingw-w64.opt: New.
1946         (municode): Add new target option.
1947         * doc/invoke.texi (municode): Add documentation for new option.
1948
1949 2009-04-21  Ian Lance Taylor  <iant@google.com>
1950
1951         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1952         Correct test for number of arguments.
1953         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
1954
1955 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
1956
1957         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
1958         argument of emit_library_call.
1959
1960 2009-04-21  Richard Guenther  <rguenther@suse.de>
1961
1962         PR middle-end/39829
1963         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
1964         inside VIEW_CONVERT_EXPRs.
1965
1966 2009-04-21  Martin Jambor  <mjambor@suse.cz>
1967
1968         * tree-switch-conversion.c (build_constructors): Split a long line.
1969         (constructor_contains_same_values_p): New function.
1970         (build_one_array): Create assigns of constants if possible, do not
1971         call mark_sym_for_renaming, call update_stmt.
1972         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
1973         make_rename_temp.  Do not call mark_symbols_for_renaming, call
1974         update_stmt.
1975         (gen_def_assigns): Do not call mark_symbols_for_renaming or
1976         find_new_referenced_vars, call update_stmt.
1977         (gen_inbound_check): Use create_tmp_var and create ssa names manually
1978         instead of calling make_rename_temp.  Do not call
1979         find_new_referenced_vars or mark_symbols_for_renaming, call
1980         update_stmt.
1981
1982 2009-04-21  Richard Guenther  <rguenther@suse.de>
1983
1984         PR tree-optimization/39827
1985         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
1986         (tree_ssa_phiprop): Pass the correct array size.
1987
1988 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
1989
1990         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
1991
1992 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1993
1994         PR 16202
1995         * c-typeck.c (lvalue_p): Move declaration ...
1996         * c-common.h (lvalue_p): ... to here.
1997         * c-common.c (candidate_equal_p): New.
1998         (add_tlist): Use it.
1999         (merge_tlist): Use it.
2000         (warn_for_collisions_1): Likewise.
2001         (warning_candidate_p): Accept more candidates.
2002         (verify_tree): A warning candidate can be an expression. Use
2003         candidate_equal_p.
2004
2005 2009-04-21  Ben Elliston  <bje@au.ibm.com>
2006
2007         PR target/5267
2008         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
2009         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
2010         options.  Remove -mcall-solaris documentation.
2011
2012 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2013
2014         PR c++/13358
2015         * doc/invoke.texi (-Wlong-long): Update description.
2016         * c-lex (interpret_integer): Only warn if there was no previous
2017         overflow and -Wlong-long is enabled.
2018         * c-decl.c (declspecs_add_type): Drop redundant flags.
2019         * c.opt (Wlong-long): Init to -1.
2020         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
2021         and front-end warn_long_long. Wlong-long only depends on other
2022         flags if it is uninitialized.
2023         * c-parser.c (disable_extension_diagnostics): warn_long_long is
2024         the same for CPP and FE.
2025         (restore_extension_diagnostics): Likewise.
2026
2027 2009-04-20  Ian Lance Taylor  <iant@google.com>
2028
2029         Fix enum conversions which are invalid in C++:
2030         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
2031         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
2032         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
2033         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
2034         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
2035         (dbxout_parms): Likewise.
2036         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
2037         (df_clear_flags): Likewise.
2038         * df-problems.c (df_rd_bb_local_compute_process_def): Change
2039         top_flag parameter to int.
2040         (df_chain_create_bb_process_use): Likewise.
2041         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
2042         Remove cast.
2043         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
2044         (df_ref_create_structure, df_def_record_1): Likewise.
2045         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
2046         (df_notes_rescan): Change 0 to VOIDmode in function call.
2047         (df_get_call_refs, df_insn_refs_collect): Likewise.
2048         (df_bb_regs_collect): Likewise.
2049         (df_entry_block_defs_collect): Likewise.
2050         (df_exit_block_uses_collect): Likewise.
2051         * df.h: Update declarations.
2052         * double-int.c (double_int_divmod): Add cast to enum type.
2053         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
2054         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
2055         (based_loc_descr): Likewise.
2056         (loc_descriptor_from_tree_1): Change first_op and second_op to
2057         enum dwarf_location_atom.  Add cast to enum type.
2058         * expmed.c (init_expmed): Change 0 to SET in function call.
2059         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
2060         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
2061         (do_store_flag): Likewise.
2062         * fixed-value.h (struct fixed_value): Change mode to enum
2063         machine_mode.
2064         * function.c (assign_parms): Change 0 to VOIDmode in function call.
2065         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
2066         function call.
2067         (insert_insn_decl, insert_decl, insert_state): Likewise.
2068         (automata_list_finish): Likewise.
2069         * genrecog.c (process_define_predicate): Add cast to enum type.
2070         * gensupport.c (init_predicate_table): Add cast to enum type.
2071         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
2072         function call.
2073         (gimple_build_call_1, gimple_build_label): Likewise.
2074         (gimple_build_goto, gimple_build_asm_1): Likewise.
2075         (gimple_build_switch_1, gimple_build_cdt): Likewise.
2076         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
2077         (enum fallback): Rename from enum fallback_t.
2078         (fallback_t): Typedef as int.
2079         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
2080         GSI_SAME_STMT in function call.
2081         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
2082         enum type.
2083         (setup_reg_class_relations): Likewise.
2084         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
2085         (setup_prohibited_class_mode_regs): Add cast to enum type.
2086         (setup_prohibited_mode_move_regs): Likewise.
2087         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
2088         (record_address_regs): Change i to enum reg_class.
2089         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
2090         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
2091         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
2092         (GET_MODE_2XWIDER_MODE): Likewise.
2093         (GET_CLASS_NARROWEST_MODE): Likewise.
2094         * omp-low.c (expand_omp_for): Add cast to enum type.
2095         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
2096         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
2097         * postreload.c (reload_cse_simplify_operands): Change rclass local
2098         to enum reg_class.
2099         * predict.c (combine_predictions_for_insn): Change best_predictor
2100         and predictor to enum br_predictor.
2101         (combine_predictions_for_bb): Likewise.
2102         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
2103         use SET_PREDICT_EXPR_OUTCOME.
2104         * real.c (real_arithmetic): Change icode to code in function call.
2105         * reginfo.c (init_move_cost): Add casts to enum type.
2106         (init_reg_sets_1, init_fake_stack_mems): Likewise.
2107         * regmove.c (regclass_compatible_p): Change class0 and class1 to
2108         enum reg_class.
2109         * reload.c (find_valid_class): Add casts to enum type.
2110         (push_reload): Change 0 to NO_REGS in function call.
2111         (find_reloads): Change this_alternative to array of enum
2112         reg_class.  Remove some now-unnecessary casts.
2113         (make_memloc): Change 0 to VOIDmode in function call.
2114         * reload1.c (reload): Change 0 to VOIDmode in function call.
2115         (eliminate_regs_1, elimination_effects): Likewise.
2116         (eliminate_regs_in_insn): Likewise.
2117         (emit_input_reload_insns): Add cast to enum type.
2118         (delete_output_reload): Change 0 to VOIDmode in function call.
2119         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
2120         to enum type in function call.
2121         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
2122         (SET_PREDICT_EXPR_OUTCOME): Define.
2123         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
2124         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
2125         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
2126         (dump_function): Likewise.
2127         * tree-dump.h: Update declarations.
2128         * tree-pass.h: Update declarations.
2129         * varasm.c (assemble_integer): Change mclass to enum mode_class.
2130         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
2131         enum type.
2132         (arm_rtx_costs_1): Correct parenthesization.
2133         (arm_rtx_costs): Add casts to enum type.
2134         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
2135         (vfp_emit_fstmd): Use add_rg_note.
2136         (emit_multi_reg_push, emit_sfm): Likewise.
2137         (thumb_set_frame_pointer): Likewise.
2138         (arm_expand_prologue): Likewise.
2139         (arm_regno_class): Change return type to enum reg_class.
2140         (thumb1_expand_prologue): Use add_reg_note.
2141         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
2142         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
2143         in function call.
2144         * config/arm/gentune.sh: Add cast to enum type.
2145         * config/arm/arm-tune.md: Rebuild.
2146         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
2147         (ix86_split_fp_branch, predict_jump): Likewise.
2148         (ix86_expand_multi_arg_builtin): Change sub_code from enum
2149         insn_code to enum rtx_code.
2150         (ix86_builtin_vectorized_function): Add cast to enum type.
2151         * config/i386/i386.md (truncdfsf2): Change slot to enum
2152         ix86_stack_slot.
2153         (truncxf<mode>2, isinf<mode>2): Likewise.
2154         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
2155         enum type.
2156         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
2157         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
2158         (insert_bundle_state): Change 1 to INSERT in function call.
2159         (ia64_add_bundle_selector_before): Likewise.
2160         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
2161         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
2162         (restore_stack_nonlocal): Likewise.
2163         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
2164         function call.
2165         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
2166         function call.
2167         (mips_rtx_costs): Likewise.
2168         (mips_override_options): Add casts to enum type.
2169         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
2170         in function call.
2171         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
2172         (store_reg, set_reg_plus_d): Likewise.
2173         (hppa_expand_prologue, hppa_profile_hook): Likewise.
2174         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
2175         cast to enum type.
2176         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
2177         function call.
2178         (emit_unlikely_jump): Use add_reg_note.
2179         (rs6000_emit_allocate_stack): Likewise.
2180         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
2181         (output_toc): Change 1 to INSERT in function call.
2182         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
2183         (rs6000_initialize_trampoline): Likewise.
2184         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
2185         function call.
2186         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
2187         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
2188         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
2189         (save_gprs): Use add_reg_note.
2190         (s390_emit_prologue): Likewise.
2191         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
2192         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
2193         (sparc_fold_builtin): Add cast to enum type.
2194         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
2195         enum insn_code.
2196         (spu_expand_prologue): Use add_reg_note.
2197         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
2198
2199 2009-04-20  Ian Lance Taylor  <iant@google.com>
2200
2201         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
2202         (c_parser_postfix_expression_after_primary): Get VEC for list of
2203         arguments.  Get original types of arguments.  Call
2204         build_function_call_vec.
2205         (cached_expr_list_1, cached_expr_list_2): New static variables.
2206         (c_parser_expr_list): Change return type to VEC *.  Add
2207         p_orig_types parameter.  Change all callers.
2208         (c_parser_release_expr): New static function.
2209         (c_parser_vec_to_tree_list): New static function.
2210         * c-typeck.c (build_function_call): Rewrite to build a VEC and
2211         call build_function_call_vec.
2212         (build_function_call_vec): New function, based on old
2213         build_function_call.
2214         (convert_arguments): Remove nargs and argarray parameters.  Change
2215         values to a VEC.  Add origtypes parameter.
2216         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
2217         (convert_for_assignment): Add origtype parameter.  Change all
2218         callers.  If warn_cxx_compat, check for conversion to an enum
2219         type when calling a function.
2220         (store_init_value): Add origtype parameter.  Change all callers.
2221         (digest_init): Likewise.
2222         (struct init_node): Add origtype field.
2223         (add_pending_init): Add origtype parameter.  Change all callers.
2224         (output_init_element): Likewise.
2225         (output_pending_init_elements): Pass origtype from init_node to
2226         output_init_element.
2227         (process_init_element): Pass origtype from c_expr to
2228         output_init_element.
2229         (c_finish_return): Add origtype parameter.  Change all callers.
2230         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
2231         caller.
2232         (sync_resolve_params): Likewise.
2233         (sync_resolve_return): Change params to first_param.  Change caller.
2234         (resolve_overloaded_builtins): Change params to VEC *.  Change
2235         callers.  Save first parameter around call to build_function_call_vec.
2236         * c-decl.c (finish_decl): Add origtype parameter.  Change all
2237         callers.  Call build_function_call_vec rather than
2238         build_function_call for cleanup.
2239         * c-tree.h: Update declarations.
2240         * c-common.h: Update declarations.
2241         * stub-objc.c (objc_rewrite_function_call): Change parameter from
2242         params to first_param.
2243         * target.h (struct gcc_target): Change resolve_overloaded_builtin
2244         params parameter from tree to void *.
2245         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2246         Change arglist parameter to have type void *, and to be a pointer
2247         to a VEC.
2248         * config/rs6000/rs6000-protos.h
2249         (altivec_resolve_overloaded_builtin): Update declaration.
2250         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
2251         fnargs parameter to have type void *, and to be a pointer to a
2252         VEC.  Call build_function_call_vec instead of
2253         build_function_call.
2254         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
2255
2256 2009-04-20  Joey Ye  <joey.ye@intel.com>
2257             Xuepeng Guo  <xuepeng.guo@intel.com>
2258             H.J. Lu  <hongjiu.lu@intel.com>
2259
2260         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
2261
2262         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
2263         (IX86_LEA_PRIORITY): Likewise.
2264         (distance_non_agu_define): New function.
2265         (distance_agu_use): Likewise.
2266         (ix86_lea_for_add_ok): Likewise.
2267         (ix86_dep_by_shift_count): Likewise.
2268
2269         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
2270         should split for LEA.
2271
2272         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
2273         function.
2274         (ix86_dep_by_shift_count): Likewise.
2275
2276 2009-04-20  Richard Guenther  <rguenther@suse.de>
2277
2278         * expr.c (handled_component_p): Move ...
2279         * tree.h (handled_component_p): ... here.
2280         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
2281         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
2282         and REALPART_EXPR to be in one group.
2283
2284 2009-04-20  Richard Guenther  <rguenther@suse.de>
2285
2286         * basic-block.h (get_all_dominated_blocks): Declare.
2287         * dominance.c (get_all_dominated_blocks): New function.
2288         * tree-cfg.c (get_all_dominated_blocks): Remove.
2289         (remove_edge_and_dominated_blocks): Adjust.
2290         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
2291         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
2292         instead of recursing.
2293
2294 2009-04-20  Doug Kwan  <dougkwan@google.com>
2295
2296         * cgraph.h (cgraph_node_ptr): New type for vector functions.
2297         (struct cgraph_node_set_def): New type.
2298         (cgraph_node_set) New type. Also declare vector functions.
2299         (struct cgraph_node_set_element_def): New type.
2300         (cgraph_node_set_element): Ditto.
2301         (cgraph_node_set_iterator): New iterator type.
2302         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
2303         cgraph_node_set_remove, dump_cgraph_node_set,
2304         debug_cgraph_node_set): New prototypes.
2305         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
2306         cgraph_node_set_size): New inlines.
2307         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
2308         including cgraph.h.
2309         (struct ipa_opt_pass): Add struct cgraph_node_set_def
2310         argument to function 'write_summary'.
2311         * ipa.c: Include ggc.h.
2312         (hash_cgraph_node_set_element,
2313         eq_cgraph_node_set_element, cgraph_node_set_new,
2314         cgraph_node_set_add, cgraph_node_set_remove,
2315         cgraph_node_set_find, dump_cgraph_node_set,
2316         debug_cgraph_node_set): New functions.
2317         * Makefile.in (ipa.o): Add dependency on GGC_H.
2318
2319 2009-04-20  Ira Rosen  <irar@il.ibm.com>
2320
2321         PR tree-optimization/39675
2322         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
2323         check of the return code of vect_schedule_slp. Check that
2324         stmt_vec_info still exists for the statement, before checking its
2325         vectorization type.
2326
2327 2009-04-20  Michael Matz  <matz@suse.de>
2328
2329         * Makefile.in (generated_files): Take out $(simple_generated_c).
2330
2331 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
2332
2333         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
2334         (UINTPTR_TYPE):  Likewise.
2335
2336 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2337
2338         PR c/37481
2339         * c-typeck.c (digest_init): Check for initializing an array with a
2340         string literal.
2341
2342 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2343
2344         PR c/19771
2345         * c-semantics.c (pop_stmt_list): Propagate
2346         STATEMENT_LIST_HAS_LABEL to parent statement list.
2347
2348 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
2349
2350         * config/mips/mips.h (mips_tune_attr): New macro.
2351         * config/mips/mips.md (cpu): Use it.
2352
2353 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
2354
2355         PR c/38243
2356         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
2357         declaring a tag.
2358
2359 2009-04-19  Diego Novillo  <dnovillo@google.com>
2360
2361         * toplev.c (compile_file): Move call to coverage_finish ...
2362         * cgraphunit.c (ipa_passes): ... here.
2363         Call cgraph_process_new_functions.
2364         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
2365         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
2366
2367 2009-04-19  Jan Hubicka  <jh@suse.cz>
2368
2369         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
2370         cfun.
2371         (dump_cgraph_node): Dump can throw external flag.
2372         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
2373
2374 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2375
2376         PR c/32061
2377         PR c++/36954
2378         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
2379         * common.opt (Wlogical-op): Move from here...
2380         * c.opt (Wlogical-op): ... to here.
2381         * c-typeck.c (parser_build_binary_op): Update call to
2382         warn_logical_operator.
2383         * c-opts.c (c_common_post_options): Enable warn_logical_op with
2384         extra_warnings.
2385         * c-common.c (warn_logical_op): Update.
2386         * c-common.h (warn_logical_op): Update declaration.
2387
2388 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
2389
2390         * tree.c (protected_set_expr_location): Fix formatting.
2391
2392 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2393
2394         PR c/27676
2395         * c-typeck.c (readonly_warning): new.
2396         (build_unary_op, build_modify_expr): Use readonly_warning for
2397         storing into something readonly but not const-qualified.
2398
2399 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2400
2401         PR c/22367
2402         * c-typeck.c (build_unary_op): Check for taking address of
2403         expression of type void.
2404
2405 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
2406
2407         PR c/35210
2408         * c-typeck.c (build_function_call): Check for calling a function
2409         with qualified void return types.  Call require_complete_type when
2410         generating a trap.
2411
2412 2009-04-18  Jan Hubicka  <jh@suse.cz>
2413
2414         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
2415         Set nothrow flag.
2416         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
2417         can_throw_external flag.
2418         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
2419         * ipa-pure-const.c (ignore_edge): New function.
2420         (propagate): Compute order for NOTHROW computation; set NOTHROWs
2421         only over can_throw_external edges.
2422         (local_pure_const): Add nothrow flag.
2423         * ipa-utils.c (searchc): Add ignore_edge callback.
2424         (ipa_utils_reduced_inorder): Add ignore_edge callback.
2425         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
2426         (set_nothrow_function_flags): Update cgraph.
2427         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
2428
2429 2009-04-18  Richard Guenther  <rguenther@suse.de>
2430
2431         PR middle-end/39804
2432         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
2433         (fold_stmt): ... this and ...
2434         (fold_stmt_inplace): ... this.
2435         (fold_stmt_1): Fold references in calls and asms.
2436         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
2437
2438 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2439
2440         * tree-vrp.c (ssa_name_nonzero_p): Remove.
2441         * tree.h: Remove the prototype for ssa_name_nonzero_p.
2442
2443 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2444
2445         * tree.c (function_args_count): Remove.
2446         * tree.h: Remove the prototype for function_args_count.
2447
2448 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2449
2450         * tree-iterator.c (expr_only): Remove.
2451         * tree.h: Remove the prototype for expr_only.
2452
2453 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2454
2455         * reginfo.c (cannot_change_mode_set_regs): Remove.
2456         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
2457
2458 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
2459
2460         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
2461         whether operands 0 and 1 overlaps.
2462
2463 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2464
2465         PR middle-end/36902
2466         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
2467         pointer. Use warning_at instead of warning.
2468         (search_for_addr_array): Likewise.
2469         (check_array_bounds): Likewise.
2470         (check_all_array_refs): Check that the incoming edge is not in the
2471         list of edges to be removed.
2472         (check_all_array_refs): Avoid the temporal pointer.
2473         (vrp_visit_cond_stmt): Fix typo.
2474         (simplify_switch_using_ranges): Handle the case where the switch
2475         index is an integer constant.
2476
2477 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
2478
2479         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
2480
2481 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
2482
2483         * doc/extend.texi, doc/invoke.texi: Fix typos.
2484
2485 2009-04-17  Cary Coutant  <ccoutant@google.com>
2486
2487         * tree-flow-inline.h (get_lineno): Fix inverted test.
2488
2489 2009-04-17  Diego Novillo  <dnovillo@google.com>
2490
2491         * tree-ssa-pre.c (create_expression_by_pieces): Remove
2492         assertion for AVAIL_OUT.
2493
2494 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
2495
2496         PR target/38627
2497         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
2498         * config/sh/linux-atomic.asm: Likewise.
2499
2500 2009-04-17  Diego Novillo  <dnovillo@google.com>
2501
2502         * except.c (debug_eh_tree): New.
2503         (struct eh_region, struct eh_status): Move ...
2504         * except.h: ... here.
2505         (add_type_for_runtime): Declare extern.
2506         (lookup_type_for_runtime): Likewise.
2507         (debug_eh_tree): Declare.
2508         * Makefile.in (GTFILES): List except.h before except.c
2509
2510 2009-04-17  Diego Novillo  <dnovillo@google.com>
2511
2512         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
2513         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
2514         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
2515         (find_vars_r): ... here.
2516         * tree-flow.h (find_referenced_vars_in): Declare.
2517         * tree-ssa-pre.c (create_expression_by_pieces): Assert
2518         that AVAIL_OUT exists for BLOCK.
2519         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
2520         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
2521         (tree-parloops.o): Likewise.
2522
2523 2009-04-17  Simon Baldwin  <simonb@google.com>
2524
2525         * toplev.c (default_tree_printer): Add handling for %E format.
2526
2527 2009-04-17  Diego Novillo  <dnovillo@google.com>
2528
2529         * tree-pretty-print.c (dump_generic_node): Add break after
2530         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
2531         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
2532         FUNCTION_TYPE together.  Call print_struct_decl when printing
2533         structures and TDF_SLIM is not given.
2534         (print_struct_decl): Fix logic for detecting recursion.
2535
2536 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2537
2538         PR 31567
2539         * gcc.c (create_at_file): New.
2540         (compile_input_file_p): New.
2541         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
2542         * main.c (main): Update call to toplev_main.
2543         * toplev.c (toplev_main): Change signature. Call expandargv.
2544         * toplev.h (toplev_main): Change signature.
2545
2546 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2547
2548         * dwarf2out.c (field_byte_offset): Use the type size as the field size
2549         if the latter is not constant.
2550
2551 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
2552
2553         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
2554
2555 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
2556
2557         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
2558         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
2559
2560 2009-04-17  Richard Guenther  <rguenther@suse.de>
2561
2562         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2563         Handle component references view-converting an invariant address.
2564
2565 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
2566
2567         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
2568         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
2569         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
2570         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
2571         Use @deftypevr rather than @deftypevar.
2572
2573 2009-04-17  Richard Guenther  <rguenther@suse.de>
2574
2575         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
2576         (get_prop_source_stmt): Likewise.
2577         (can_propagate_from): Likewise.
2578
2579 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
2580
2581         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
2582         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
2583         (--with-multilib-list): Add default value.
2584         * configure: Regenerate.
2585         * Makefile.in (TM_ENDIAN_CONFIG): Define.
2586         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
2587         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
2588         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
2589         Don't add default cpu to multilib list unnecessarily, but do enable
2590         the relevant compiler option..
2591         Add support for --with-multilib-list=<blank> and
2592         --with-multilib-list=!<somelib> to supress unwanted multilibs.
2593         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
2594         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
2595         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
2596         TM_MULTILIB_CONFIG.
2597         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
2598         (MULTILIB_OSDIRNAMES): New variable.
2599         * config/sh/t-1e: Delete file.
2600         * config/sh/t-mlib-sh1: Delete file.
2601         * config/sh/t-mlib-sh2: Delete file.
2602         * config/sh/t-mlib-sh2a: Delete file.
2603         * config/sh/t-mlib-sh2a-nofpu: Delete file.
2604         * config/sh/t-mlib-sh2a-single: Delete file.
2605         * config/sh/t-mlib-sh2a-single-only: Delete file.
2606         * config/sh/t-mlib-sh2e: Delete file.
2607         * config/sh/t-mlib-sh3e: Delete file.
2608         * config/sh/t-mlib-sh4: Delete file.
2609         * config/sh/t-mlib-sh4-nofpu: Delete file.
2610         * config/sh/t-mlib-sh4-single: Delete file.
2611         * config/sh/t-mlib-sh4-single-only: Delete file.
2612         * config/sh/t-mlib-sh4a: Delete file.
2613         * config/sh/t-mlib-sh4a-nofpu: Delete file.
2614         * config/sh/t-mlib-sh4a-single: Delete file.
2615         * config/sh/t-mlib-sh4a-single-only: Delete file.
2616         * config/sh/t-mlib-sh4al: Delete file.
2617         * config/sh/t-mlib-sh5-32media: Delete file.
2618         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
2619         * config/sh/t-mlib-sh5-64media: Delete file.
2620         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
2621         * config/sh/t-mlib-sh5-compact: Delete file.
2622         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
2623         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
2624         * doc/install.texi (Options specification): Add
2625         --with-multilib-list and --with-endian.
2626
2627 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
2628
2629         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
2630         REVISION_c.
2631         (OBJS-common): Add plugin-version.o.
2632         (plugin-version.o): New.
2633         * gcc-plugin.h (plugin_gcc_version): New.
2634         (plugin_default_version_check): New.
2635         (plugin_init_func, plugin_init): Add version argument.
2636         * plugin-version.c: New.
2637         * plugin.c (str_plugin_gcc_version_name): New.
2638         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
2639         pass it to the init function.
2640         (plugin_default_version_check): New.
2641
2642 2009-04-17  Richard Guenther  <rguenther@suse.de>
2643
2644         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
2645         for decl-vs-decl disambiguation.
2646
2647 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
2648
2649         * config/s390/s390.h (s390_tune_attr): New macro definition.
2650         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
2651
2652 2009-04-17  Richard Guenther  <rguenther@suse.de>
2653
2654         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
2655         (fold_stmt_r): Likewise.
2656         (maybe_fold_reference): New function.
2657         (fold_gimple_assign): Handle cases fold_stmt_r did.
2658         (fold_stmt): Do not use fold_stmt_r.
2659         (fold_stmt_inplace): Likewise.
2660
2661 2009-04-17  Richard Guenther  <rguenther@suse.de>
2662
2663         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
2664         (record_equivalences_from_stmt): Remove useless checks and
2665         simplifications.
2666         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
2667         the type is already suitable.
2668
2669 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
2670
2671         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
2672
2673 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
2674
2675         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
2676         (CMPtype): Define as __gcc_CMPtype.
2677
2678 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
2679
2680         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
2681         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
2682
2683 2009-04-17  Richard Guenther  <rguenther@suse.de>
2684
2685         PR tree-optimization/39746
2686         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
2687         special-casing for builtins and static variable use/def.
2688         (call_may_clobber_ref_p_1): Likewise.
2689
2690 2009-04-16  Ian Lance Taylor  <iant@google.com>
2691
2692         * df.h: Include "timevar.h".
2693         (struct df_problem): Change tv_id field to timevar_id_t.
2694         * tree-pass.h: Include "timevar.h".
2695         (struct opt_pass): Change tv_id field to timevar_id_t.
2696         * timevar.h (timevar_id_t): Define TV_NONE.
2697         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
2698         TV_NONE rather than tv_id != 0.
2699         (execute_one_pass): Likewise.
2700         * Makefile.in (DF_H): Add $(TIMEVAR_H).
2701         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
2702         dependencies to $(TREE_PASS_H).
2703         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
2704         to TV_NONE.
2705         (pass_branch_target_load_optimize2): Likewise.
2706         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
2707         (pass_outof_cfg_layout_mode): Likewise.
2708         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
2709         (pass_rebuild_cgraph_edges): Likewise.
2710         (pass_remove_cgraph_callee_edges): Likewise.
2711         * df-core.c (pass_df_initialize_opt): Likewise.
2712         (pass_df_initialize_no_opt): Likewise.
2713         (pass_df_finish): Likewise.
2714         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
2715         * except.c (pass_set_nothrow_function_flags): Likewise.
2716         (pass_convert_to_eh_region_ranges): Likewise.
2717         * final.c (pass_compute_alignments): Likewise.
2718         * function.c (pass_instantiate_virtual_regs): Likewise.
2719         (pass_init_function): Likewise.
2720         (pass_leaf_regs): Likewise.
2721         (pass_match_asm_constraints): Likewise.
2722         * gimple-low.c (pass_lower_cf): Likewise.
2723         (pass_mark_used_blocks): Likewise.
2724         * init-regs.c (pass_initialize_regs): Likewise.
2725         * integrate.c (pass_initial_value_sets): Likewise.
2726         * ira.c (pass_ira): Likewise.
2727         * jump.c (pass_cleanup_barriers): Likewise.
2728         * omp-low.c (pass_expand_omp): Likewise.
2729         (pass_lower_omp): Likewise.
2730         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
2731         * recog.c (pass_split_all_insns): Likewise.
2732         (pass_split_after_reload): Likewise.
2733         (pass_split_before_regstack): Likewise.
2734         (pass_split_before_sched2): Likewise.
2735         (pass_split_for_shorten_branches): Likewise.
2736         * reginfo.c (pass_reginfo_init): Likewise.
2737         (pass_subregs_of_mode_init): Likewise.
2738         (pass_subregs_of_mode_finish): Likewise.
2739         * passes.c (pass_postreload): Likewise.
2740         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2741         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
2742         (pass_warn_function_return): Likewise.
2743         (pass_warn_function_noreturn): Likewise.
2744         * tree-complex.c (pass_lower_complex): Likewise.
2745         (pass_lower_complex_O0): Likewise.
2746         * tree-if-conv.c (pass_if_conversion): Likewise.
2747         * tree-into-ssa.c (pass_build_ssa): Likewise.
2748         * tree-mudflap.c (pass_mudflap_1): Likewise.
2749         (pass_mudflap_2): Likewise.
2750         * tree-nomudflap.c (pass_mudflap_1): Likewise.
2751         (pass_mudflap_2): Likewise.
2752         * tree-nrv.c (pass_return_slot): Likewise.
2753         * tree-object-size.c (pass_object_sizes): Likewise.
2754         * tree-optimize.c (pass_all_optimizations): Likewise.
2755         (pass_early_local_passes): Likewise.
2756         (pass_all_early_optimizations): Likewise.
2757         (pass_cleanup_cfg): Likewise.
2758         (pass_cleanup_cfg_post_optimizing): Likewise.
2759         (pass_free_datastructures): Likewise.
2760         (pass_free_cfg_annotations): Likewise.
2761         (pass_fixup_cfg): Likewise.
2762         (pass_init_datastructures): Likewise.
2763         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
2764         (pass_late_warn_uninitialized): Likewise.
2765         (pass_update_address_taken): Likewise.
2766         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
2767         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
2768         (pass_cse_sincos): Likewise.
2769         (pass_convert_to_rsqrt): Likewise.
2770         * tree-ssa-structalias.c (pass_build_alias): Likewise.
2771         * tree-stdarg.c (pass_stdarg): Likewise.
2772         * tree-tailcall.c (pass_tail_recursion): Likewise.
2773         (pass_tail_calls): Likewise.
2774         * tree-vect-generic.c (pass_lower_vector): Likewise.
2775         (pass_lower_vector_ssa): Likewise.
2776         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
2777
2778 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
2779
2780         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
2781         XLR entry.
2782         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
2783         Handle -march=xlr.
2784         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
2785         logical and signext.
2786
2787 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2788
2789         PR target/39767
2790         * config/sh/predicates.md (arith_operand): Check if the operand
2791         of TRUNCATE is a REG.
2792
2793 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2794
2795         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2796         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2797
2798 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2799
2800         * tree-iterator.c (tsi_split_statement_list_after,
2801         tsi_split_statement_list_before): Remove.
2802         * tree-iterator.h: Remove the prototypes for
2803         tsi_split_statement_list_after and tsi_split_statement_list_before.
2804
2805 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2806
2807         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
2808         * tree-ssa-propagate.h: Remove the prototype for
2809         stmt_makes_single_load.
2810
2811 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2812
2813         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
2814         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
2815
2816 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2817
2818         * tree-iterator.c (EXPR_LAST_BODY): Remove.
2819
2820 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2821
2822         * except.c (eh_region_outer_p): Remove.
2823         * except.h: Remove the prototype for eh_region_outer_p.
2824
2825 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2826
2827         * function.c (current_function_assembler_name): Remove.
2828         * function.h: Remove the prototype for
2829         current_function_assembler_name.
2830
2831 2009-04-16  Ian Lance Taylor  <iant@google.com>
2832
2833         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
2834         (add_reg_note): Call alloc_reg_note.
2835         * rtl.h (alloc_reg_note): Declare.
2836         * combine.c (try_combine): Use alloc_reg_note.
2837         (recog_for_combine, move_deaths): Likewise.
2838         (distribute_notes): Use alloc_reg_note and add_reg_note.
2839         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
2840         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
2841         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
2842
2843 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
2844
2845         PR rtl-optimization/39762
2846         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
2847         ira_may_move_out_cost): Add comments about way of their usage.
2848         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2849
2850         * ira-conflicts.c (process_regs_for_copy): Use function
2851         ira_get_register_move_cost instead of global
2852         ira_register_move_cost.
2853
2854         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
2855         color_pass, move_spill_restore, update_curr_costs): Ditto.
2856
2857         * ira-lives.c (process_single_reg_class_operands): Ditto.
2858
2859         * ira-emit.c (emit_move_list): Ditto.
2860
2861         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
2862         (record_reg_classes): Ditto.  Use functions
2863         ira_get_register_move_cost and ira_get_may_move_cost instead of
2864         global vars ira_register_move_cost, ira_may_move_out_cost and
2865         ira_may_move_in_cost.
2866         (record_address_regs): Don't call ira_init_register_move_cost.
2867         Use function ira_get_may_move_cost instead of global
2868         ira_may_move_in_cost.
2869         (process_bb_node_for_hard_reg_moves): Use function
2870         ira_get_register_move_cost instead of global ira_register_move_cost.
2871         (ira_costs): Don't call ira_init_register_move_cost.
2872
2873 2009-04-16  Richard Guenther  <rguenther@suse.de>
2874
2875         * tree-cfg.c (verify_gimple_assign_binary):
2876         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
2877         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
2878         (create_general_new_stmt): Note that this function is broken.
2879
2880 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2881
2882         * common.opt (fhelp): Add Var(help_flag).
2883         * gcc-plugin.h (plugin_info): Add help.
2884         * plugin.c (plugin_name_args): Add help.
2885         (register_plugin_info): Set plugin->help.
2886         (print_help_one_plugin): New.
2887         (print_plugins_help): New.
2888         * plugin.h (print_plugins_help): New.
2889         * toplev.c (toplev_main): Call print_plugins_help if needed.
2890
2891 2009-04-16  Richard Guenther  <rguenther@suse.de>
2892
2893         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
2894         (gimple_ior_addresses_taken_1): New function.
2895         (gimple_ior_addresses_taken): Likewise.
2896         * gimple.h (struct gimple_statement_with_ops_base): Remove
2897         addresses_taken member.
2898         (gimple_ior_addresses_taken): Declare.
2899         (gimple_addresses_taken, gimple_addresses_taken_ptr,
2900         gimple_set_addresses_taken): Remove.
2901         * ipa-reference.c (mark_address): New function.
2902         (scan_stmt_for_static_refs): Use it for marking addresses taken.
2903         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
2904         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
2905         (gimple_add_to_addresses_taken): Remove.
2906         (get_tmr_operands): Call mark_address_taken.
2907         (get_asm_expr_operands): Likewise.
2908         (get_expr_operands): Likewise.
2909         (build_ssa_operands): Do not clear the addresses_taken bitmap.
2910         (free_stmt_operands): Do not free it.
2911         * tree-ssa.c (delete_tree_ssa): Likewise.
2912         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
2913
2914 2009-04-16  Richard Guenther  <rguenther@suse.de>
2915
2916         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
2917         (walk_stmt_load_store_ops): Likewise.
2918         * gimple.c (get_base_loadstore): New function.
2919         (walk_stmt_load_store_addr_ops): Likewise.
2920         (walk_stmt_load_store_ops): Likewise.
2921         * ipa-pure-const.c (check_op): Simplify.
2922         (check_load, check_store): New functions.
2923         (check_stmt): Use walk_stmt_load_store_ops.
2924         * ipa-reference.c (mark_load): Adjust signature.
2925         (mark_store): Likewise.
2926         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
2927
2928 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2929
2930         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
2931         (plugin_info): New.
2932         * opts.c (common_handle_option): Don't call print_version.
2933         * plugin.c (plugin_name_args): Add version.
2934         (register_plugin_info): New.
2935         (register_callback): Handle PLUGIN_INFO.
2936         (try_init_one_plugin): New.
2937         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
2938         if failed to init.
2939         (finalize_one_plugin): New.
2940         (finalize_plugins): New.
2941         (print_one_plugin): New.
2942         (print_plugins_versions): New.
2943         * plugin.h (print_plugins_versions): New.
2944         (finalize_plugins): New.
2945         * toplev.c (compile_file): Don't call initialize_plugins.
2946         (print_version): Call print_plugins_versions.
2947         (toplev_main): Call initialize_plugins. Print version if needed.
2948         Call finalize_plugins.
2949
2950 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2951
2952         * common.opt (fversion): New.
2953         * gcc.c (print_version): New.
2954         (process_command): Don't print the version. Just set print_version.
2955         (main): Print version. Call subprocesses if print_version and
2956         verbose_flag are set.
2957         * opts.c (common_handle_option): Handle OPT_fversion.
2958
2959 2009-04-16  Richard Guenther  <rguenther@suse.de>
2960             Ira Rosen  <irar@il.ibm.com>
2961
2962         PR tree-optimization/39698
2963         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
2964         type of the reduction variable.  Only generate the def if
2965         it is needed.
2966
2967         * omp-low.c (expand_omp_for_generic): When converting to a pointer
2968         make sure to first convert to an integer of the same precision.
2969         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
2970         the type of the evolution correctly in computing the new
2971         induction variable base.
2972
2973 2009-04-16  Richard Guenther  <rguenther@suse.de>
2974
2975         PR middle-end/39625
2976         * tree-cfg.c (make_blocks): Split statements with to-be
2977         abnormal SSA names on the lhs.
2978
2979 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
2980
2981         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
2982         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
2983         * c-typeck.c (really_start_incremental_init): Likewise.
2984         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
2985         (TARGET_INITIALIZER): Remove it.
2986         * target.h (struct target): Remove vector_opaque_p.
2987         * tree.c (build_opaque_vector_type): New.
2988         * tree.h (TYPE_VECTOR_OPAQUE): New.
2989         (build_opaque_vector_type): Declare.
2990         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
2991         * config/rs6000/rs6000.c (build_opaque_vector_type,
2992         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
2993         (rs6000_init_builtins): Use build_opaque_vector_type for
2994         opaque_V4SI_type_node.
2995
2996 2009-04-15  Catherine Moore  <clm@codesourcery.com>
2997
2998         * debug.h (set_name):  Declare.
2999         * dwarf2out.c (dwarf2out_set_name): Declare.
3000         (dwarf2_debug_hooks): Add set_name.
3001         (find_AT_string): New.
3002         (add_AT_string): Call find_AT_string.
3003         (dwarf2out_set_name): New.
3004         * cp/decl.c (grokdeclarator): Call set_name.
3005         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
3006         * debug.c (do_nothing_debug_hooks):  Likewise.
3007         * dbxout.c (dbx_debug_hooks): Likewise.
3008         * sdbout.c (sdb_debug_hooks): Likewise.
3009
3010 2009-04-15  Michael Eager  <eager@eagercon.com>
3011
3012         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
3013         reg for single-precision FPU.
3014         * config/rs6000/rs6000.md (movsi_internal1): Only for
3015         !TARGET_SINGLE_FPU.
3016         (movsi_internal1_single): New. Add pattern to move SI values to/from
3017         single-precision FP regs.
3018
3019 2009-04-15  Richard Guenther  <rguenther@suse.de>
3020
3021         * omp-low.c (lower_rec_input_clauses): Build correct address
3022         expressions.
3023         (expand_omp_for_generic): Fix multiplication type.
3024         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
3025         (generate_memset_zero): Fix types.
3026         * tree-profile.c (prepare_instrumented_value): Correctly
3027         widen a pointer.
3028
3029 2009-04-15  Ian Lance Taylor  <iant@google.com>
3030
3031         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
3032         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
3033         for -Wall and for -Wc++-compat.
3034         (c_common_post_options): For C++, set warn_enum_compare if not
3035         already set.
3036         * c-tree.h (struct c_expr): Add field original_type.
3037         (build_external_ref): Update declaration.
3038         * c-parser.c (c_parser_braced_init): Set original_type.
3039         (c_parser_initelt): Likewise.
3040         (c_parser_expr_no_commas): Likewise.
3041         (c_parser_conditional_expression): Likewise.
3042         (c_parser_cast_expression): Likewise.
3043         (c_parser_unary_expression): Likewise.  Pull setting of
3044         original_code to top of function.
3045         (c_parser_sizeof_expression): Set original_type.
3046         (c_parser_alignof_expression): Likewise.
3047         (c_parser_postfix_expression): Likewise.  Pull setting of
3048         original_code to top of function.
3049         (c_parser_postfix_expression_after_paren_type): Set original_type.
3050         (c_parser_postfix_expression_after_primary): Likewise.
3051         (c_parser_expression): Likewise.
3052         * c-typeck.c (build_external_ref): Add type parameter.  Change all
3053         callers.
3054         (c_expr_sizeof_expr): Set original_type field.
3055         (parser_build_unary_op): Likewise.
3056         (parser_build_binary_op): Likewise.  Optionally warn about
3057         comparisons of enums of different types.
3058         (digest_init): Set original_type field.
3059         (really_start_incremental_init): Likewise.
3060         (push_init_level, pop_init_level): Likewise.
3061         * doc/invoke.texi (Warning Options): -Wenum-compare now
3062         supported in C.
3063
3064 2009-04-15  Richard Guenther  <rguenther@suse.de>
3065
3066         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
3067         out a necessary conversion.
3068         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
3069         names we didn't value number.
3070         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
3071
3072 2009-04-15  Richard Guenther  <rguenther@suse.de>
3073
3074         PR tree-optimization/39764
3075         * tree-ssa-ccp.c (get_value): Canonicalize value with
3076         canonicalize_float_value.
3077
3078 2009-04-15  Jan Hubicka  <jh@suse.cz>
3079
3080         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
3081         Wrong version of patch.
3082
3083 2009-04-15  Jan Hubicka  <jh@suse.cz>
3084
3085         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
3086
3087 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
3088
3089         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
3090         our distinct integral and vector types.
3091
3092 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
3093
3094         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
3095         * init.c (build_vtbl_address): Remove call to assemble_external.
3096
3097 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
3098
3099         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
3100         output for other floating point modes.
3101
3102 2009-04-14  Diego Novillo  <dnovillo@google.com>
3103
3104         * diagnostic.c (diagnostic_report_diagnostic): Do not
3105         warn about loaded plugins for DK_ERROR and DK_WARNING.
3106         * c-decl.c (declspecs_add_type): Move call to
3107         invoke_plugin_callbacks ...
3108         * c-parser.c (c_parser_declspecs): ... here.
3109         * plugin.c (dump_active_plugins): Tidy output.
3110
3111 2009-04-14  Diego Novillo  <dnovillo@google.com>
3112             Le-Chun Wu  <lcwu@google.com>
3113
3114         * configure.ac: Add --enable-plugin support.
3115         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
3116         * Makefile.in (PLUGIN_H): Define.
3117         Export ENABLE_PLUGIN and GMPINC to site.exp.
3118         Add PLUGINLIBS to link command.
3119         Add/modify dependencies for plugin.o and files including plugin.h.
3120         (plugin.o): New.
3121         * config.in: Regenerate.
3122
3123         * opts.c (common_handle_option): Handle OPT_fplugin_ and
3124         OPT_fplugin_arg_.
3125
3126 2009-04-14  Le-Chun Wu  <lcwu@google.com>
3127
3128         * tree-pass.h (register_one_dump_file): Add a prototype for
3129         register_one_dump_file.
3130         * toplev.c (compile_file): Call initialize_plugins.
3131         (do_compile): Call invoke_plugin_callbacks.
3132         (toplev_main): Call invoke_plugin_callbacks.
3133         * common.opt: Add -fplugin= and -fplugin-arg-.
3134         * gcc-plugin.h: New public header file for plugins to include.
3135         * plugin.c: New source file.
3136         * plugin.h: New internal header file.
3137         * passes.c (register_one_dump_file): Make it external.
3138
3139         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
3140
3141 2009-04-14  Diego Novillo  <dnovillo@google.com>
3142
3143         * doc/plugins.texi: New.
3144         * doc/gccint.texi: Add reference to Plugins chapter.
3145         * doc/invoke.texi: Document -fplugin and -fplugin-arg
3146         * diagnostic.c (diagnostic_report_diagnostic): Warn about
3147         loaded plugins, if any.
3148         * timevar.def (TV_PLUGIN_INIT): Define.
3149         (TV_PLUGIN_RUN): Define.
3150         * plugin.c: Include timevar.h
3151         (plugins_active_p): New.
3152         (dump_active_plugins): New.
3153         (debug_active_plugins): New.
3154
3155 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
3156
3157         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
3158         library paths.
3159         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
3160
3161 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
3162
3163         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
3164         the same as a minus without a shift.
3165
3166 2009-04-14  Nick Clifton  <nickc@redhat.com>
3167
3168         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
3169         comparisons with small integers will always produce a short
3170         branch.
3171
3172 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
3173
3174         Merge:
3175         2008-12-19  Diego Novillo  <dnovillo@google.com>
3176
3177         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
3178
3179 2009-04-14  Richard Guenther  <rguenther@suse.de>
3180
3181         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
3182         verification.
3183         (verify_gimple_assign_binary): Likewise.  Handle shifts and
3184         rotates correctly.
3185         (verify_gimple_phi): Print the mismatched argument position.
3186         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3187         Fix types.
3188         (vect_update_init_of_dr): Likewise.
3189         * matrix-reorg.c (transform_access_sites): Do what the
3190         comment suggests.
3191         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
3192
3193 2009-04-13  Michael Eager  <eager@eagercon.com>
3194
3195         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
3196         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
3197         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
3198         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
3199         remove duplicate config
3200
3201 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
3202
3203         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
3204         file_name:line_number type locator of the call site.
3205
3206 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
3207
3208         * genautomata.c: Put blank after comma.
3209         (automaton_decls): New.
3210         (struct unit_usage): Add comments to member next.
3211         (store_alt_unit_usage): Keep the list ordered.
3212         (unit_present_on_list_p, equal_alternatives_p): New.
3213         (check_regexp_units_distribution): Check units distribution
3214         correctness correctly.
3215         (main): Don't write automata if error is found.  Return correct
3216         exit code.
3217
3218         * config/m68k/cf.md (cfv4_ds): Remove.
3219         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
3220         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
3221
3222         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
3223         power4-load-ext, power4-store, power4-store-update,
3224         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
3225         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
3226         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
3227         power4-sqrt, power4-isync): Modify reservation to make correct
3228         unit distribution to automata.
3229
3230         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
3231         power5-store-update, power5-two, power5-three, power5-lmul,
3232         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
3233
3234 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
3235
3236         * except.c (pass_set_nothrow_function_flags): Set name and add
3237         TODO_dump_func.
3238         (set_nothrow_function_flags): Mention in the dump file when
3239         changing a function to nothrow.
3240
3241 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
3242
3243         PR/39066
3244         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
3245         instead of unsigned long.
3246
3247 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3248
3249         * config/arm/arm.c (return_used_this_function): Remove.
3250         (arm_output_function_prologue): Remove use of
3251         return_used_this_function.
3252         (output_return_instruction): Replace use of
3253         return_used_this_function
3254         by cfun->machine->return_used_this_function.
3255         (arm_output_epilogue): Likewise.
3256         (arm_output_function_epilogue): Likewise.
3257         (thumb_unexpanded_epilogue): Likewise.
3258         * config/arm/arm.h (struct machine_function):
3259         New member return_used_this_function.
3260
3261 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
3262
3263         * doc/install.texi: Correct description of default directory for
3264         --with-gxx-include-dir.
3265
3266 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
3267
3268         * fold-const.c (build_range_check): Properly deal with enumeral and
3269         boolean base types.
3270
3271 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
3272
3273         * doc/invoke.texi (max_gcse_passes): Remove documentation.
3274         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
3275         * params.h (MAX_GCSE_PASSES): Remove.
3276         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
3277         in sequence.  Remove ability to run multiple passes.
3278         (bypass_jumps): Report run as third CPROP pass.
3279
3280 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
3281
3282         PR middle-end/39651
3283         * except.c (can_throw_external): Look at each insn in a SEQUENCE
3284         when deciding whether the whole SEQUENCE can throw.
3285
3286 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
3287
3288         PR target/39740
3289         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
3290         offseted label references.
3291
3292 2009-04-11  Jan Hubicka  <jh@suse.cz>
3293
3294         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
3295
3296 2009-04-11  Richard Guenther  <rguenther@suse.de>
3297
3298         PR middle-end/39732
3299         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
3300         return variables as TREE_ADDRESSABLE.
3301
3302 2009-04-11  Richard Guenther  <rguenther@suse.de>
3303
3304         PR tree-optimization/39713
3305         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
3306         reference trees have SSA_NAME operands.
3307
3308 2009-04-11  Richard Guenther  <rguenther@suse.de>
3309
3310         PR c/39712
3311         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
3312         address expressions.
3313
3314 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
3315
3316         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
3317         match changes in Cygwin 1.7
3318         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
3319         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
3320
3321 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3322
3323         PR tree-optimization/39701
3324         * doc/invoke.texi (Optimization Options): Document change in
3325         meaning and initialization of -fdelete-null-pointer-checks.
3326
3327 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3328
3329         PR middle-end/39701
3330         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
3331
3332         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
3333         here.
3334
3335         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
3336
3337 2009-04-10  Chao-ying Fu  <fu@mips.com>
3338
3339         * doc/tm.texi (Instruction Output): Document
3340         TARGET_ASM_FINAL_POSTSCAN_INSN.
3341         * target.h (final_postscan_insn): New field in asm_out.
3342         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3343         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
3344         * final.c (final_scan_insn): Call
3345         targetm.asm_out.final_postscan_insn after outputting
3346         an asm macro and a normal instruction.
3347
3348         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
3349         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
3350         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
3351         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
3352         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
3353
3354 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
3355
3356         PR middle-end/39701
3357         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
3358         variables as non-NULL even with -fdelete-null-pointer-checks.
3359
3360 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
3361
3362         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
3363
3364 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
3365
3366         PR target/39678
3367         * config/i386/i386.c (classify_argument): Handle SCmode with
3368         (bit_offset % 64) != 0.
3369
3370 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
3371
3372         * doc/invoke.texi (Optimi