OSDN Git Service

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