OSDN Git Service

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