OSDN Git Service

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