OSDN Git Service

PR c/39613
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
2
3         PR c/39613
4         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
5         it and pedwarn if this results in an INTEGER_CST.
6
7 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8
9         * doc/install.texi: Update minimum GMP version.  Remove obsolete
10         text in MPFR section.
11
12 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
13
14         * dwarf2out.c (class_scope_p): New static inline.
15         (class_or_namespace_scope_p): Use it.
16         (gen_variable_die): Use DW_TAG_member tag for static data member
17         declarations instead of DW_TAG_variable.
18
19         PR middle-end/39573
20         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
21         variables.
22
23 2009-04-08  Richard Guenther  <rguenther@suse.de>
24
25         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
26         valueize random data.
27
28 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
29
30         * config.gcc (aix tm_file):  Add aix-stdint.h.
31         (aix tm clause use_gcc_stdint):  Set to wrap.
32         * config/rs6000/aix-stdint.h:  New file.
33         
34 2009-04-08  Richard Guenther  <rguenther@suse.de>
35
36         PR middle-end/36291
37         * tree-dfa.c (add_referenced_var): Do not recurse into
38         global initializers.
39         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
40         exposed variables.
41         (fold_const_aggregate_ref): Likewise.
42
43 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
44
45         * recog.c (ordered_comparison_operator): New.
46         * gensupport.c (std_preds): Add it.
47         * doc/md.texi (Machine-Independent Predicates): Document it.
48
49 2009-04-08  Jan Hubicka  <jh@suse.cz>
50
51         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
52         * function.h (rtl_eh): Remove exception_handler_label_map.
53         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
54         remove_exception_handler_label, for_each_eh_label_1): Remove.
55         (rtl_remove_unreachable_regions): Remove.
56         (convert_from_eh_region_ranges): Do not remove unreachable regions.
57         (find_exception_handler_labels): Don't build the hashtable.
58         (maybe_remove_eh_handler): Remove.
59         (for_each_eh_label): Rewrite to walk the tree.
60         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
61         * except.h (maybe_remove_eh_handler): Remove.
62         * passes.c (init_optimization_passes): Schedule second EH cleanup
63         before out-of-ssa.
64         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
65         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
66
67 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
68
69         * genoutput.c (validate_optab_operands): New.
70         (gen_insn, gen_expand): Call it.
71
72         * genflags.c (gen_insn): Detect misused iterators.
73         (main): Pass line_no to gen_insn, exit with status 1 on error.
74
75         * genextract.c (line_no): Make global.
76         (VEC_safe_set_locstr): Change assertion to error message.
77         (main): Exit with status 1 on error.
78
79 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
80
81         PR c/39614
82         PR c/39673
83         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
84         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
85         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
86         * c-convert.c (convert): Do not call fold on results of conversion
87         functions when the result is a C_MAYBE_CONST_EXPR.
88         * c-parser.c (c_parser_postfix_expression): Do not fold condition
89         of __builtin_choose_expr.
90         * c-typeck.c (remove_c_maybe_const_expr): New.
91         (build_unary_op, build_conditional_expr, build_compound_expr,
92         build_binary_op, c_objc_common_truthvalue_conversion): Call
93         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
94         integer operands.
95
96 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
97
98         * fold-const.c (const_binop): Combine two VECTOR_CST under operation 
99         CODE to produce a new one. Add a prototype to use fold_convert_const
100
101 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
102
103         PR bootstrap/39660
104         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
105         mix declarations and code.
106
107 2009-04-08  Ben Elliston  <bje@au.ibm.com>
108
109         * gcc.c: Replace `CC' with `GCC' throughout.
110
111 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
112
113         * doc/invoke.texi: Document Atom support.
114
115 2009-04-07  Jason Merrill  <jason@redhat.com>
116
117         PR c++/25185
118         * c-common.h, c-common.c: Add flag_pretty_templates.
119         * c-opts.c (c_common_handle_option): Set it.
120         * c.opt: Add -fno-pretty-templates.
121         * doc/invoke.texi (C++ Dialect Options): Likewise.
122
123 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
124
125         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
126         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
127         (ia64_expand_builtin): Likewise.
128
129 2009-04-07  Martin Jambor  <mjambor@suse.cz>
130
131         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
132         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
133         ADDR_EXPRS are include too.
134
135 2009-04-07  Richard Guenther  <rguenther@suse.de>
136
137         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
138         decls are only used if passes as parameters or if they are
139         local statics and the call is not to a builtin.
140         (call_may_clobber_ref_p_1): Likewise.
141
142 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
143
144         * expr.c (do_store_flag): Remove last argument.  Simplify code
145         to avoid duplication of tests already done by can_compare_p.
146         (expand_expr_real_1): Adjust caller.
147
148 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
149
150         * optabs.c (can_compare_p): Test the predicate of a
151         cbranch and cstore pattern.
152
153 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
154
155         * expr.c (convert_move): Use emit_store_flag instead of
156         "emulating" it.
157
158 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
159
160         * config/i386/i386.c (ix86_compare_emitted): Remove.
161         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
162         ix86_compare_op0 like ix86_compare_emitted used to be handled.
163         * config/i386/i386.h (ix86_compare_emitted): Remove.
164         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
165         instead of ix86_compare_emitted.
166         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
167
168 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
169
170         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
171         Add t-sysroot-suffix to tmake_file.
172         * config/print-sysroot-suffix.sh: New file.
173         * config/t-sysroot-suffix: New file.
174
175 2009-04-07  Ben Elliston  <bje@au.ibm.com>
176
177         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
178         as the latter produces a warning when the target does not support
179         infinity.
180
181 2009-04-07  Ben Elliston  <bje@au.ibm.com>
182
183         * dfp.c: Replace type punning assignments with memcpy throughout.
184         * Makefile.in (dfp.o-warn): Remove.
185         
186 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
187
188         PR target/39634
189         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
190         Include soft-fp/t-softfp after rs6000/t-linux64.
191
192 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
193
194         * stor-layout.c (set_sizetype): Use the full precision of their
195         machine mode for bitsize types.
196
197 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
198
199         * config/i386/i386.md: Revert 2 accidental checkins.
200
201 2009-04-06  Joey Ye  <joey.ye@intel.com>
202             Xuepeng Guo <xuepeng.guo@intel.com>
203             H.J. Lu  <hongjiu.lu@intel.com>
204
205         Atom pipeline model, tuning and insn selection.
206         * config.gcc (atom): Add atom config options and target.
207
208         * config/i386/atom.md: New.
209
210         * config/i386/i386.c (atom_cost): New cost.
211         (m_ATOM): New macro flag.
212         (initial_ix86_tune_features): Set m_ATOM.
213         (x86_accumulate_outgoing_args): Likewise.
214         (x86_arch_always_fancy_math_387): Likewise.
215         (processor_target): Add Atom cost.
216         (cpu_names): Add Atom cpu name.
217         (override_options): Set Atom ISA.
218         (ix86_issue_rate): New case PROCESSOR_ATOM.
219         (ix86_adjust_cost): Likewise.
220
221         * config/i386/i386.h (TARGET_ATOM): New target macro.
222         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
223         (TARGET_OPT_AGU): New target option.
224         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
225         (processor_type): Add PROCESSOR_ATOM.
226
227         * config/i386/i386.md (cpu): Add new value "atom".
228         (use_carry, movu): New attr.
229         (atom.md): Include atom.md.
230         (adddi3_carry_rex64): Set attr "use_carry".
231         (addqi3_carry): Likewise.
232         (addhi3_carry): Likewise.
233         (addsi3_carry): Likewise.
234         (*addsi3_carry_zext): Likewise.
235         (subdi3_carry_rex64): Likewise.
236         (subqi3_carry): Likewise.
237         (subhi3_carry): Likewise.
238         (subsi3_carry): Likewise.
239         (x86_movdicc_0_m1_rex64): Likewise.
240         (*x86_movdicc_0_m1_se): Likewise.
241         (x86_movsicc_0_m1): Likewise.
242         (*x86_movsicc_0_m1_se): Likewise.
243         (*adddi_1_rex64): Emit add insn as much as possible.
244         (*addsi_1): Likewise.
245         (return_internal): Set atom_unit.
246         (return_internal_long): Likewise.
247         (return_pop_internal): Likewise.
248         (*rcpsf2_sse): Set atom_sse_attr attr.
249         (*qrt<mode>2_sse): Likewise.
250         (*prefetch_sse): Likewise.
251
252         * config/i386/i386-c.c (ix86_target_macros_internal): New case
253         PROCESSOR_ATOM.
254         (ix86_target_macros_internal): Likewise.
255
256         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
257         (*prefetch_sse_rex): Likewise.
258         (sse_rcpv4sf2): Likewise.
259         (sse_vmrcpv4sf2): Likewise.
260         (sse_sqrtv4sf2): Likewise.
261         (<sse>_vmsqrt<mode>2): Likewise.
262         (sse_ldmxcsr): Likewise.
263         (sse_stmxcsr): Likewise.
264         (*sse_sfence): Likewise.
265         (sse2_clflush): Likewise.
266         (*sse2_mfence): Likewise.
267         (*sse2_lfence): Likewise.
268         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
269         (<sse>_movup<ssemodesuffixf2c>): Likewise.
270         (avx_movdqu<avxmodesuffix>): Likewise.
271         (avx_lddqu<avxmodesuffix>): Likewise.
272         (sse2_movntv2di): Change attr "type" to "ssemov".
273         (sse2_movntsi): Likewise.
274         (rsqrtv8sf2): Change attr "type" to "sseadd".
275         (sse3_addsubv2df3): Set attr "atom_unit".
276         (sse3_h<plusminus_insn>v4sf3): Likewise.
277         (*sse2_pmaddwd): Likewise.
278         (*vec_extractv2di_1_rex64): Likewise.
279         (*vec_extractv2di_1_avx): Likewise.
280         (sse2_psadbw): Likewise.
281         (ssse3_phaddwv8hi3): Likewise.
282         (ssse3_phaddwv4hi3): Likewise.
283         (ssse3_phadddv4si3): Likewise.
284         (ssse3_phadddv2si3): Likewise.
285         (ssse3_phaddswv8hi3): Likewise.
286         (ssse3_phaddswv4hi3): Likewise.
287         (ssse3_phsubwv8hi3): Likewise.
288         (ssse3_phsubwv4hi3): Likewise.
289         (ssse3_phsubdv4si3): Likewise.
290         (ssse3_phsubdv2si3): Likewise.
291         (ssse3_phsubswv8hi3): Likewise.
292         (ssse3_phsubswv4hi3): Likewise.
293         (ssse3_pmaddubsw128): Likewise.
294         (sse3_pmaddubsw: Likewise.
295         (ssse3_palignrti): Likewise.
296         (ssse3_palignrdi): Likewise.
297
298 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
299
300         * doc/install.texi (Specific): Fix two cross-references to MinGW.
301
302 2009-04-06  Richard Guenther  <rguenther@suse.de>
303
304         PR tree-optimization/28868
305         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
306         of which PHI results we inserted.
307         (insert_into_preds_of_block): Record inserted PHIs.
308         (eliminate): Eliminate redundant PHI nodes.
309         (init_pre): Init inserted_phi_names.
310
311 2009-04-06  Richard Guenther  <rguenther@suse.de>
312
313         PR tree-optimization/39643
314         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
315         IMAGPART_EXPRs of complex constants.
316         (execute_fold_all_builtins): If we folded a call queue
317         TODO_update_address_taken.
318
319 2009-04-06  Jan Hubicka  <jh@suse.cz>
320
321         PR middle-end/39659
322         * except.c (remove_unreachable_regions): Propagate may_contain_throw
323         flag.
324
325 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
326
327         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
328         delay slot.
329         (ic_invalidate_array): Likewise.
330
331 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
332
333         * calls.c (emit_library_call_value_1): Fix a problem with parameter
334         alignment for library calls.
335
336 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
337
338         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
339         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
340         * config/i386/mingw-stdint.h:  New file.
341
342 2009-04-05  Richard Guenther  <rguenther@suse.de>
343
344         PR tree-optimization/39648
345         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
346         our &A vs. &A[0] IL deficiencies.
347
348 2009-04-04  Jan Hubicka  <jh@suse.cz>
349
350         * except.c (sjlj_find_directly_reachable_regions): Be ready for
351         removed toplevel regions.
352         (sjlj_mark_call_sites): Likewise.
353
354 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
355
356         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
357         (cygwin tm clause use_gcc_stdint):  Set to wrap.
358         * config/i386/cygwin-stdint.h:  New file.
359
360 2009-04-04  Richard Guenther  <rguenther@suse.de>
361
362         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
363         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
364         single-argument PHIs if we are in loop-closed SSA form.
365         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
366         for the pre-condition.
367         (slpeel_tree_peel_loop_to_edge): Likewise.
368         (vect_build_loop_niters): Take an optional sequence to append stmts.
369         (vect_generate_tmps_on_preheader): Likewise.
370         (vect_do_peeling_for_loop_bound): Take extra guards for the
371         pre-condition.
372         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
373         the cost model check.
374         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
375         guards if we are going to peel.  Do not apply versioning in that
376         case.
377         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
378         (vect_do_peeling_for_loop_bound): Likewise.
379         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
380         loop bound only record extra pre-conditions, do not apply loop
381         versioning.
382
383 2009-04-04  Richard Guenther  <rguenther@suse.de>
384
385         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
386         renaming code.
387
388 2009-04-04  Jan Hubicka  <jh@suse.cz>
389
390         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
391         last_basic_block for size of bb->index indexed array.
392         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
393         compute_out, link_btr_uses, build_btr_def_use_webs,
394         build_btr_def_use_webs, migrate_btr_defs): Likewise.
395
396 2009-04-04  Jan Hubicka  <jh@suse.cz>
397
398         * except.c (remove_eh_handler_and_replace): Break out from ...
399         (remove_eh_handler): ... here.
400         (bring_to_root): New function.
401         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
402         handled ones, bring others to root of tree.
403
404 2009-04-04  Jan Hubicka  <jh@suse.cz>
405
406         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
407         (all_phis_safe_to_merge): New function.
408         (update_info): New structure.
409         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
410         (cleanup_empty_eh): Update SSA if possible.
411
412 2009-04-04  Richard Guenther  <rguenther@suse.de>
413
414         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
415         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
416         (append_vuse): Likewise.
417
418 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
419
420         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
421         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
422         instead of REG_UNSAVED for DW_CFA_undefined.
423         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
424         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
425         outermost frame.
426
427 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
428
429         PR target/39501
430         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
431         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
432         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
433
434 2009-04-04  Richard Guenther  <rguenther@suse.de>
435
436         PR tree-optimization/8781
437         PR tree-optimization/37892
438         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
439         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
440         (valueize_refs): Call it for *& valueizations.
441         (shared_reference_ops_from_ref): Rename to ...
442         (valueize_shared_reference_ops_from_ref): ... this and valueize.
443         (shared_reference_ops_from_call): Rename to ...
444         (valueize_shared_reference_ops_from_call): ... this and valueize.
445         (vn_reference_lookup): Update.
446         (visit_reference_op_call): Likewise.
447         * tree-ssa-pre.c (phi_translate_1): Fold *&.
448         (eliminate): Value-replace the call address in call statements.
449
450 2009-04-04  Richard Guenther  <rguenther@suse.de>
451
452         PR tree-optimization/39636
453         * tree-ssa-forwprop.c
454         (forward_propagate_addr_into_variable_array_index): Check for
455         GIMPLE_ASSIGN before accessing the rhs code.
456
457 2009-04-03  Jason Merrill  <jason@redhat.com>
458
459         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
460
461 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
462
463         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
464         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
465         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
466         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
467         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
468         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
469         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
470         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
471         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
472         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
473         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
474         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
475         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
476         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
477         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
478         Use fr_reg_or_fp01_operand instead of fr_register_operand
479
480         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
481         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
482         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
483
484 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
485
486         PR rtl-optimization/39607
487         PR rtl-optimization/39631
488         Revert
489         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
490         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
491         instead of DF_LR_OUT.
492         * ira-lives.c (process_bb_node_lives): Ditto.
493         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
494         instead of DF_LR_{OUT,IN}.
495         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
496         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
497
498 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
499
500         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
501         (execute_lower_omp): Always run but take the short way out if -fopenmp
502         is not given.
503         (gate_lower_omp): Remove, forcing the pass manager to always run the
504         pass and always set PROP_gimple_lomp.
505         (pass_lower_omp): Remove gate function.
506         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
507         PROP_trees.  Instead, require it.
508         * ipa-cp.c (pass_ipa_cp): Likewise.
509         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
510         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
511         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
512         and PROP_gimple_leh.
513
514 2009-04-03  Richard Guenther  <rguenther@suse.de>
515
516         PR middle-end/13146
517         PR tree-optimization/23940
518         PR tree-optimization/33237
519         PR middle-end/33974
520         PR middle-end/34093
521         PR tree-optimization/36201
522         PR tree-optimization/36230
523         PR tree-optimization/38049
524         PR tree-optimization/38207
525         PR tree-optimization/38230
526         PR tree-optimization/38301
527         PR tree-optimization/38585
528         PR middle-end/38895
529         PR tree-optimization/38985
530         PR tree-optimization/39299
531         * tree-ssa-structalias.h: Remove.
532         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
533         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
534         (struct vuse_element_d): Remove.
535         (struct vuse_vec_d): Likewise.
536         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
537         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
538         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
539         VUSE_ELEMENT_VAR): Likewise.
540         (struct voptype_d): Likewise.
541         (NUM_VOP_FREE_BUCKETS): Likewise.
542         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
543         (struct stmt_operands_d): Remove.
544         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
545         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
546         VDEF_NUM, VDEF_VECT): Likewise.
547         (copy_virtual_operands): Remove.
548         (operand_build_cmp): Likewise.
549         (create_ssa_artificial_load_stmt): Likewise.
550         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
551         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
552         vuse_index and mayuse_index members.  Pack and move done and iter_type
553         members to the front.
554         (SSA_OP_VMAYUSE): Remove.
555         (SSA_OP_VIRTUAL_USES): Adjust.
556         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
557         (unlink_stmt_vdef): Declare.
558         (add_to_addressable_set): Remove.
559         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
560         (vrp_visit_stmt): Likewise.
561         * doc/tree-ssa.texi (Alias analysis): Update.
562         * doc/invoke.texi (max-aliased-vops): Remove docs.
563         (avg-aliased-vops): Likewise.
564         * tree-into-ssa.c (syms_to_rename): Remove.
565         (need_to_update_vops_p): Likewise.
566         (need_to_initialize_update_ssa_p): Rename to ...
567         (update_ssa_initialized_fn): ... this.  Track function we are
568         initialized for.
569         (symbol_marked_for_renaming): Simplify.
570         (add_new_name_mapping): Do not set need_to_update_vops_p.
571         (dump_currdefs): Use SYMS_TO_RENAME.
572         (rewrite_update_stmt): Always walk all uses/defs.
573         (dump_update_ssa): Adjust.
574         (init_update_ssa): Take function argument.  Track what we are
575         initialized for.
576         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
577         (create_new_def_for): Initialize for cfun, assert we are initialized
578         for cfun.
579         (mark_sym_for_renaming): Simplify.
580         (mark_set_for_renaming): Do not initialize update-ssa.
581         (need_ssa_update_p): Simplify.  Take function argument.
582         (name_mappings_registered_p): Assert we ask for the correct function.
583         (name_registered_for_update_p): Likewise.
584         (ssa_names_to_replace): Likewise.
585         (release_ssa_name_after_update_ssa): Likewise.
586         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
587         (dump_decl_set): Do not print a newline.
588         (debug_decl_set): Do it here.
589         (dump_update_ssa): And here.
590         * tree-ssa-loop-im.c (move_computations): Adjust.
591         (movement_possibility): Likewise.
592         (determine_max_movement): Likewise.
593         (gather_mem_refs_stmt): Likewise.
594         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
595         or NAME_MEMORY_TAG.
596         * tree-complex.c (update_all_vops): Remove.
597         (expand_complex_move): Adjust.
598         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
599         Simplify test for memory referencing statement.  Exclude
600         non-invariant ADDR_EXPRs.
601         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
602         * tree-loop-distribution.c (generate_memset_zero): Adjust.
603         (rdg_flag_uses): Likewise.
604         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
605         related code.
606         (tree_optimize_tail_calls_1): Also split the
607         edge from the entry block if we have degenerate PHI nodes in
608         the first basic block.
609         * tree.c (init_ttree): Remove memory-tag related code.
610         (tree_code_size): Likewise.
611         (tree_node_structure): Likewise.
612         (build7_stat): Re-write to be build6_stat.
613         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
614         (SSA_VAR_P): Adjust.
615         (struct tree_memory_tag): Remove.
616         (struct tree_memory_partition_tag): Likewise.
617         (union tree_node): Adjust.
618         (build7): Re-write to be build6.
619         * tree-pass.h (pass_reset_cc_flags): Remove.
620         (TODO_update_address_taken): New flag.
621         (pass_simple_dse): Remove.
622         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
623         * params.h (MAX_ALIASED_VOPS): Remove.
624         (AVG_ALIASED_VOPS): Likewise.
625         * omp-low.c (expand_omp_taskreg): Update SSA form.
626         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
627         aliases the lhs in a copy stmt.
628         * tree-ssa-dse.c (struct address_walk_data): Remove.
629         (memory_ssa_name_same): Likewise.
630         (memory_address_same): Likewise.
631         (get_kill_of_stmt_lhs): Likewise.
632         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
633         unused stores.  Look through PHI nodes into post-dominated regions.
634         (dse_optimize_stmt): Simplify.  Properly remove stores.
635         (tree_ssa_dse): Compute dominators.
636         (execute_simple_dse): Remove.
637         (pass_simple_dse): Likewise.
638         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
639         gimple_loaded_syms and gimple_stored_syms computation.
640         * toplev.c (dump_memory_report): Dump alias and pta stats.
641         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
642         (vn_reference_eq): Likewise.
643         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
644         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
645         valueize_vuses): Remove.
646         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
647         (get_def_ref_stmt_vuse): ... this.
648         (vn_reference_lookup_2): New function.
649         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
650         walking equivalent vuses.  Simplify.
651         (vn_reference_lookup): Likewise.
652         (vn_reference_insert): Likewise.
653         (vn_reference_insert_pieces): Likewise.
654         (visit_reference_op_call): Simplify.
655         (visit_reference_op_load): Likewise.
656         (visit_reference_op_store): Likewise.
657         (init_scc_vn): Remove shared_lookup_vuses initialization.
658         (free_scc_vn): Remove shared_lookup_vuses freeing.
659         (sort_vuses, sort_vuses_heap): Remove.
660         (get_ref_from_reference_ops): Export.
661         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
662         vector with single vuse pointer.
663         (vn_reference_lookup_pieces, vn_reference_lookup,
664         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
665         (shared_vuses_from_stmt): Remove.
666         (get_ref_from_reference_ops): Declare.
667         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
668         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
669         memory-tag related code.
670         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
671         (likely_value): Add comment, skip static-chain of call statements.
672         (surely_varying_stmt_p): Adjust.
673         (gimplify_and_update_call_from_tree): Likewise.
674         (execute_fold_all_builtins): Do not rebuild alias info.
675         (gimplify_and_update_call_from_tree): Properly update VOPs.
676         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
677         (copy_ref_info): Remove memory-tag related code.
678         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
679         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
680         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
681         computation.
682         * tree-ssa-dom.c (gimple_p): Remove typedef.
683         (eliminate_redundant_computations): Adjust.
684         (record_equivalences_from_stmt): Likewise.
685         (avail_expr_hash): Likewise.
686         (avail_expr_eq): Likewise.
687         * tree-ssa-propagate.c (update_call_from_tree): Properly
688         update VOPs.
689         (stmt_makes_single_load): Likewise.
690         (stmt_makes_single_store): Likewise.
691         * tree-ssa-alias.c: Rewrite completely.
692         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
693         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
694         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
695         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
696         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
697         Remove public functions.
698         (pass_reset_cc_flags): Remove.
699         (pass_build_alias): Move ...
700         * tree-ssa-structalias.c (pass_build_alias): ... here.
701         * tree-ssa-alias.c (may_be_aliased): Move ...
702         * tree-flow-inline.h (may_be_aliased): ... here.
703         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
704         count_uses_and_derefs): Move ...
705         * gimple.c: ... here.
706         * gimple.h (count_uses_and_derefs): Declare.
707         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
708         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
709         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
710         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
711         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
712         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
713         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
714         New functions.
715         * tree-dfa.c (refs_may_alias_p): Move ...
716         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
717         * tree-ssa-alias.h: New file.
718         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
719         (statement_sink_location): Likewise.
720         * opts.c (decode_options): Do not adjust max-aliased-vops or
721         avg-aliased-vops values.
722         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
723         (TV_CALL_CLOBBER): Likewise.
724         (TV_FLOW_SENSITIVE): Likewise.
725         (TV_FLOW_INSENSITIVE): Likewise.
726         (TV_MEMORY_PARTITIONING): Likewise.
727         (TV_ALIAS_STMT_WALK): New timevar.
728         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
729         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
730         (get_address_description): Remove memory-tag related code.
731         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
732         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
733         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
734         and immediate uses in statements.  Document.
735         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
736         (dump_symbols): Remove.
737         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
738         * alias.c (get_deref_alias_set): New function split out from ...
739         (get_alias_set): ... here.
740         * alias.h (get_deref_alias_set): Declare.
741         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
742         type parameter.  Remove restrict pointer handling.  Create a
743         ref-all pointer in case type-based alias sets do not conflict.
744         (vect_analyze_data_refs): Remove SMT related code.
745         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
746         (vectorizable_load): Likewise.
747         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
748         (DR_SYMBOL_TAG, DR_VOPS): Remove.
749         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
750         Ignore vops and SMTs.
751         (dr_analyze_alias): Likewise..
752         (free_data_ref): Likewise.
753         (create_data_ref): Likewise.
754         (analyze_all_data_dependences): Likewise.
755         (get_references_in_stmt): Adjust.
756         * tree-flow-inline.h (gimple_aliases_computed_p,
757         gimple_addressable_vars, gimple_call_clobbered_vars,
758         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
759         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
760         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
761         gimple_mem_ref_stats): Remove.
762         (gimple_vop): New function.
763         (op_iter_next_use): Remove vuses and mayuses cases.
764         (op_iter_next_def): Remove vdefs case.
765         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
766         (clear_and_done_ssa_iter): Do not set removed fields.
767         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
768         Assert we are not iterating over vuses or vdefs if not also
769         iterating over uses or defs.
770         (op_iter_init_use): Likewise.
771         (op_iter_init_def): Likewise.
772         (op_iter_next_vdef): Remove.
773         (op_iter_next_mustdef): Likewise.
774         (op_iter_init_vdef): Likewise.
775         (compare_ssa_operands_equal): Likewise.
776         (link_use_stmts_after): Handle vuse operand.
777         (is_call_used): Use is_call_clobbered.
778         (is_call_clobbered): Global variables are always call clobbered,
779         query the call-clobbers bitmap.
780         (mark_call_clobbered): Ignore global variables.
781         (clear_call_clobbered): Likewise.
782         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
783         virtual operands sanity check.
784         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
785         Remove.
786         (TARGET_MEM_REF): Remove TMR_TAG operand.
787         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
788         Remove call-clobber related code.
789         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
790         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
791         partitions or escape reason.
792         (get_single_def_stmt, get_single_def_stmt_from_phi,
793         get_single_def_stmt_with_phi): Remove.
794         (dump_referenced_vars): Tidy.
795         (get_ref_base_and_extent): Allow bare decls.
796         (collect_dfa_stats): Adjust.
797         * graphite.c (rename_variables_in_stmt): Adjust.
798         (graphite_copy_stmts_from_block): Likewise.
799         (translate_clast): Likewise.
800         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
801         (EXPR_DIES): New.
802         (translate_vuse_through_block): Use the oracle.
803         (phi_translate_1): Adjust.
804         (value_dies_in_block_x): Use the oracle.  Cache the outcome
805         in EXPR_DIES.
806         (valid_in_sets): Check if the VUSE for
807         a REFERENCE is available.
808         (eliminate): Do not remove stmts during elimination,
809         instead queue and remove them afterwards.
810         (do_pre): Do not rebuild alias info.
811         (pass_pre): Run TODO_rebuild_alias before PRE.
812         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
813         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
814         (mark_all_v_defs_stmt): Remove.
815         (mark_all_v_defs_seq): Adjust.
816         (sra_replace): Likewise.
817         (scalarize_use): Likewise.
818         (scalarize_copy): Likewise.
819         (scalarize_init): Likewise.
820         (scalarize_ldst): Likewise.
821         (todoflags): Remove.
822         (tree_sra): Do not rebuild alias info.
823         (tree_sra_early): Adjust.
824         (pass_sra): Run TODO_update_address_taken before SRA.
825         * tree-predcom.c (set_alias_info): Remove.
826         (prepare_initializers_chain): Do not call it.
827         (mark_virtual_ops_for_renaming): Adjust.
828         (mark_virtual_ops_for_renaming_list): Remove.
829         (initialize_root_vars): Adjust.
830         (initialize_root_vars_lm): Likewise.
831         (prepare_initializers_chain): Likewise.
832         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
833         (may_propagate_copy_into_stmt): Likewise.
834         (merge_alias_info): Do nothing for now.
835         (propagate_tree_value_into_stmt): Adjust.
836         (stmt_may_generate_copy): Likewise.
837         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
838         not mark symbols for renaming.
839         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
840         with the same statement, make sure to update the new pointed-to one.
841         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
842         call statements, do not mark symbols for renaming.
843         (mark_operand_necessary): Dump something.
844         (ref_may_be_aliased): New function.
845         (mark_aliased_reaching_defs_necessary_1): New helper function.
846         (mark_aliased_reaching_defs_necessary): Likewise.
847         (mark_all_reaching_defs_necessary_1): Likewise.
848         (mark_all_reaching_defs_necessary): Likewise.
849         (propagate_necessity): Do not process virtual PHIs.  For
850         non-aliased loads mark all reaching definitions as necessary.
851         For aliased loads and stores mark the immediate dominating
852         aliased clobbers as necessary.
853         (visited): New global static.
854         (perform_tree_ssa_dce): Free visited bitmap after propagating
855         necessity.
856         (remove_dead_phis): Perform simple dead virtual PHI removal.
857         (remove_dead_stmt): Properly unlink virtual operands when
858         removing stores.
859         (eliminate_unnecessary_stmts): Schedule PHI removal after
860         stmt removal.
861         * tree-ssa-ter.c (is_replaceable_p): Adjust.
862         (process_replaceable): Likewise.
863         (find_replaceable_in_bb): Likewise.
864         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
865         based on the single gimple vop.
866         (verify_flow_insensitive_alias_info): Remove.
867         (verify_flow_sensitive_alias_info): Likewise.
868         (verify_call_clobbering): Likewise.
869         (verify_memory_partitions): Likewise.
870         (verify_alias_info): Likewise.
871         (verify_ssa): Adjust..
872         (execute_update_addresses_taken): Export.  Update SSA
873         manually.  Optimize only when optimizing.  Use a local bitmap.
874         (pass_update_address_taken): Remove TODO_update_ssa, add
875         TODO_dump_func.
876         (pass_update_address_taken): Just use TODO_update_address_taken.
877         (init_tree_ssa): Do not initialize addressable_vars.
878         (verify_ssa): Verify new VUSE / VDEF properties.
879         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
880         Do not call verify_alias_info.
881         (delete_tree_ssa): Clear the VUSE, VDEF operands.
882         Do not free the loaded and stored syms bitmaps.  Reset the escaped
883         and callused solutions.  Do not free addressable_vars.
884         Remove memory-tag related code.
885         (warn_uninitialized_var): Aliases are always available.
886         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
887         * lambda-code.c (can_put_in_inner_loop): Adjust.
888         (can_put_after_inner_loop): Likewise.
889         (perfect_nestify): Likewise.
890         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
891         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
892         (vectorizable_conversion): Do not mark symbols for renaming.
893         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
894         (expand_call_inline): Unlink the calls virtual operands before
895         replacing it.
896         (tree_function_versioning): Do not call update_ssa if we are not
897         updating clones.  Simplify.
898         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
899         (propagate_with_phi): Likewise..
900         * tree-outof-ssa.c (create_temp): Remove memory tag and call
901         clobber code.  Assert we are not aliased or global.
902         * tree-flow.h: Include tree-ssa-alias.h
903         (enum escape_type): Remove.
904         (struct mem_sym_stats_d): Likewise.
905         (struct mem_ref_stats_d): Likewise.
906         (struct gimple_df): Add vop member.  Remove global_var,
907         call_clobbered_vars, call_used_vars, addressable_vars,
908         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
909         escaped and callused members.
910         (struct ptr_info_def): Remove all members, add points-to solution
911         member pt.
912         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
913         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
914         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
915         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
916         (tree-ssa-alias.o): Likewise.
917         (toplev.o): Add tree-ssa-alias.h
918         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
919         * gimple.c (gimple_set_bb): Fix off-by-one error.
920         (is_gimple_reg): Do not handle memory tags.
921         (gimple_copy): Also copy virtual operands.
922         Delay updating the statement.  Do not reset loaded and stored syms.
923         (gimple_set_stored_syms): Remove.
924         (gimple_set_loaded_syms): Likewise.
925         (gimple_call_copy_skip_args): Copy the virtual operands
926         and mark the new statement modified.
927         * tree-ssa-structalias.c (may_alias_p): Remove.
928         (set_uids_in_ptset): Take the alias set to prune with as
929         parameter.  Fold in the alias test of may_alias_p.
930         (compute_points_to_sets): Compute whether a ptr is dereferenced
931         in a local sbitmap.
932         (process_constraint): Deal with &ANYTHING on the lhs, reject all
933         other ADDRESSOF constraints on the lhs.
934         (get_constraint_for_component_ref): Assert that we don't get
935         ADDRESSOF constraints from the base of the reference.
936         Properly generate UNKNOWN_OFFSET for DEREF if needed.
937         (struct variable_info): Remove collapsed_to member.
938         (get_varinfo_fc): Remove.
939         (new_var_info): Do not set collapsed_to.
940         (dump_constraint): Do not follow cycles.
941         (dump_constraint_graph): Likewise.
942         (build_pred_graph): Likewise.
943         (build_succ_graph): Likewise.
944         (rewrite_constraints): Likewise.
945         (do_simple_structure_copy): Remove.
946         (do_rhs_deref_structure_copy): Remove.
947         (do_lhs_deref_structure_copy): Remove.
948         (collapse_rest_of_var): Remove.
949         (do_structure_copy): Re-implement.
950         (pta_stats): New global variable.
951         (dump_pta_stats): New function.
952         (struct constraint_expr): Make offset signed.
953         (UNKNOWN_OFFSET): Define special value.
954         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
955         (solution_set_expand): New helper function split out from ...
956         (do_sd_constraint): ... here.
957         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
958         (do_ds_constraint): Likewise.
959         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
960         and CALLUSED = *CALLUSED.
961         (set_union_with_increment): Make inc argument signed.
962         (type_safe): Remove.
963         (get_constraint_for_ptr_offset): Handle unknown and negative
964         constant offsets.
965         (first_vi_for_offset): Handle offsets before start.  Bail
966         out early for offsets beyond the variable extent.
967         (first_or_preceding_vi_for_offset): New function.
968         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
969         Together with ESCAPED = *ESCAPED this properly computes reachability.
970         (find_what_var_points_to): New function.
971         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
972         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
973         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
974         pt_solutions_intersect): New functions.
975         (compute_call_used_vars): Remove.
976         (compute_may_aliases): New main entry into PTA computation.
977         * gimple.h (gimple_p): New typedef.
978         (struct gimple_statement_base): Remove references_memory_p.
979         (struct gimple_statement_with_memory_ops_base): Remove
980         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
981         members.
982         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
983         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
984         gimple_set_references_memory): Remove.
985         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
986         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
987         New functions.
988         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
989         (verify_expr): Allow RESULT_DECL.
990         (gimple_duplicate_bb): Do not copy virtual operands.
991         (gimple_duplicate_sese_region): Adjust.
992         (gimple_duplicate_sese_tail): Likewise.
993         (mark_virtual_ops_in_region): Remove.
994         (move_sese_region_to_fn): Do not call it.
995         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
996         and pass_simple_dse.
997         (execute_function_todo): Handle TODO_update_address_taken,
998         call execute_update_addresses_taken for TODO_rebuild_alias.
999         (execute_todo): Adjust.
1000         (execute_one_pass): Init dump files early.
1001         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
1002         call-clobbered.
1003         (create_general_new_stmt): Clear vops.
1004         * tree-ssa-reassoc.c (get_rank): Adjust.
1005         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
1006         symbols for renaming.
1007         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
1008         (PARAM_AVG_ALIASED_VOPS): Likewise.
1009         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
1010         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
1011         * tree-ssa-operands.c: Simplify for new virtual operand
1012         representation.
1013         (operand_build_cmp, copy_virtual_operands,
1014         create_ssa_artificial_load_stmt, add_to_addressable_set,
1015         gimple_add_to_addresses_taken): Remove public functions.
1016         (unlink_stmt_vdef): New function.
1017
1018 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1019
1020         * config.gcc (powerpc-*-linux*): Merge variants.
1021
1022 2009-04-02  Chao-ying Fu  <fu@mips.com>
1023             James Grosbach <james.grosbach@microchip.com>
1024
1025         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
1026         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
1027         cop0_sp_offset.
1028         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
1029         keep_interrupts_masked_p, use_debug_exception_return_p.
1030         (mips_attribute_table): Add interrupt, use_shadow_register_set,
1031         keep_interrupts_masked, use_debug_exception_return.
1032         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
1033         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
1034         New functions.
1035         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
1036         (mips_print_operand): Process COP0 registers to print $0 .. $31
1037         correctly for GAS to process.
1038         (mips_interrupt_extra_call_saved_reg_p): New function.
1039         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
1040         extra registers.
1041         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1042         (mips_compute_frame_info): Add supports for interrupt context that
1043         includes doubleword accumulators and COP0 registers.
1044         (mips_for_each_saved_acc): New function.
1045         (mips_for_each_saved_gpr_and_fpr): Change the function name from
1046         mips_for_each_saved_reg.
1047         (mips_save_reg): Save accumulators.
1048         (mips_kernel_reg_p): A new for_each_rtx callback.
1049         (mips_expand_prologue): Support interrupt handlers.
1050         (mips_restore_reg): Restore accumulators.
1051         (mips_expand_epilogue): Support interrupt handlers.
1052         (mips_can_use_return_insn): Return false for interrupt handlers.
1053         (mips_epilogue_uses): New function.
1054         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
1055         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
1056         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
1057         cop0_move): New instructions.
1058         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
1059         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
1060         defines.
1061         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
1062         New defines.
1063         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
1064         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
1065         interrupt handlers, we use K0 as the temporary register.
1066         (EPILOGUE_USES): Change to a function call.
1067         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
1068         handlers, we use K0 as the temporary register.
1069         
1070         * doc/extend.texi (Function Attributes): Document interrupt,
1071         use_shadow_register_set, keep_interrupts_masked,
1072         use_debug_exception_return for MIPS attributes.
1073
1074 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
1075
1076         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
1077         Remove a number of t-files from tmake_file.
1078         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
1079         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
1080         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1081         target_prototype, not TARGET_PROTOTYPE.
1082         (LINK_OS_GNU_SPEC): Define.
1083         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
1084         and darwin-ldoubdle.c.
1085
1086 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1087
1088         PR driver/39293
1089         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
1090         (cpp_options): Ditto.
1091         (default_compilers): Ditto.
1092         (display_help): Ditto.
1093         (process_command): Ditto.
1094         (do_spec_1): Ditto.
1095         (set_input): Use lbasename instead of duplicate code.
1096         (save_temps_prefix): New static for -save-temps=obj.
1097         (save_temps_length): Ditto.
1098         
1099         * doc/invoke.texi (-save-temps=obj): Document new variant to
1100         -save-temps switch.
1101
1102 2009-04-02  Jeff Law  <law@redhat.com>
1103
1104         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
1105         variable.
1106
1107 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1108
1109         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
1110         * configure: Regenerated.
1111
1112 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1113
1114         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
1115         share the argument list.
1116
1117 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1118
1119         Merge
1120
1121         2009-02-12  Diego Novillo  <dnovillo@google.com>
1122
1123         * varpool.c (debug_varpool): New.
1124         * cgraph.h (debug_varpool): Declare.
1125
1126 2009-04-02  Jan Hubicka  <jh@suse.cz>
1127
1128         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1129         pass.
1130
1131 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1132
1133         * config/i386/i386.c (ix86_abi): Move initialization to ...
1134         (override_options): Here.
1135
1136 2009-04-02  Christian Bruel  <christian.bruel@st.com>
1137
1138         * config/sh/sh.c (sh_dwarf_register_span): New function.
1139         (TARGET_DWARF_REGISTER_SPAN): Define.
1140         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1141         
1142 2009-04-02  Ira Rosen  <irar@il.ibm.com>
1143
1144         PR tree-optimization/39595
1145         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
1146         interleaved loads group is not  greater than the SLP group size.
1147
1148 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1149
1150         * builtins.c (is_builtin_name): New.
1151         (called_as_built_in): Use is_builtin_name.
1152         * tree.h (is_builtin_name): New.
1153         * varasm.c (incorporeal_function_p): Use is_builtin_name
1154
1155 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
1156
1157         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1158
1159 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
1160
1161         PR c++/26693
1162         * c-decl.c: (clone_underlying_type): Move this ...
1163         * c-common.c (set_underlying_type): ... here.
1164         Also, make sure the function properly sets TYPE_STUB_DECL() on
1165         the newly created typedef variant type.
1166         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1167         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points.
1168
1169 2009-04-02  Richard Guenther  <rguenther@suse.de>
1170
1171         PR tree-optimization/37221
1172         * tree-flow.h (degenerate_phi_result): Declare.
1173         * tree-ssa-dom.c (degenerate_phi_result): Export.
1174         * tree-scalar-evolution.c (analyze_initial_condition): If
1175         the initial condition is defined by a degenerate PHI node
1176         use the degenerate value.
1177
1178 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
1179
1180         PR rtl-optimization/39588
1181         * combine.c (merge_outer_ops): Do not set the constant when this
1182         is not necessary.
1183         (simplify_shift_const_1): Do not modify it either in this case.
1184
1185 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1186
1187         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1188         tuning is deprecated if -mtune value is set to an Itanium1 variant.
1189
1190 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1191
1192         PR c/29027
1193         * c-lex.c (interpret_float): Default (no suffix) is double.
1194
1195 2009-04-1  Xinliang David Li  <davidxl@google.com>
1196
1197         * config/i386/i386.c (legitimate_constant_p): Recognize
1198         all one vector constant.
1199
1200 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1201
1202         * gcc/config/vax/vax.c: Add #includes to silence warnings.
1203         Change #include order to silence two warnings.
1204
1205 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1206
1207         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1208         (ASM_SPEC): Pass -k to the assembler for PIC code.
1209
1210 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1211
1212         * gcc/config.gcc: Add vax-*-linux* to the switch.
1213         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1214         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1215
1216 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1217
1218         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1219         Use predicate macros instead of GET_CODE() == foo.
1220         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1221         ashlsi3, rotrsi3, <unnamed>): Likewise.
1222
1223 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1224
1225         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1226         jbbccihi, jbbccisi): Remova trailing whitespace.
1227         * gcc/config/vax/constraints.md: Likewise.
1228         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1229         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1230         * gcc/config/vax/predicates.md: Likewise.
1231         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1232         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1233         * gcc/config/vax/vax.h: Likewise.
1234         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1235
1236 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1237
1238         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1239         (indirectable_address_p, adjacent_operands_p): Add spaces around
1240         braces.
1241         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1242
1243 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1244
1245         * gcc/config/vax/vax.c (legitimate_constant_address_p,
1246         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1247         index_term_p, reg_plus_index_p, legitimate_address_p,
1248         vax_mode_dependent_address_p): Update comments to match functions
1249         modified by the recent int->bool conversion.
1250
1251 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1252
1253         * gcc/config/vax/builtins.md: Update copyright message.
1254         * gcc/config/vax/constraints.md: Likewise.
1255         * gcc/config/vax/netbsd-elf.h: Likewise.
1256         * gcc/config/vax/predicates.md: Likewise.
1257         * gcc/config/vax/vax-protos.h: Likewise.
1258         * gcc/config/vax/vax.c: Likewise.
1259         * gcc/config/vax/vax.h: Likewise.
1260         * gcc/config/vax/vax.md: Likewise.
1261         * gcc/config/vax/vax.opt: Likewise.
1262
1263 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1264
1265         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1266         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1267         * gcc/config/vax/constraints.md (B, R): Likewise.
1268         * gcc/config/vax/predicates.md (external_memory_operand,
1269         nonimmediate_addsub_di_operand): Likewise.
1270         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1271         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1272         untyped_call): Likewise.
1273
1274 2009-04-01      Matt Thomas <matt@3am-software.com>
1275
1276         * config/vax/predicates.md: New file. (symbolic_operand,
1277         local_symbolic_operand, external_symbolic_operand,
1278         external_const_operand, nonsymbolic_operand, external_memory_operand,
1279         indirect_memory_operand, indexed_memory_operand,
1280         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1281         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1282         predicate.
1283         * config/vax/constraints.md: New file. (Z0, U06,  U08, U16, CN6, S08,
1284         S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
1285         * config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
1286         sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
1287         sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
1288         * config/vax/vax.opt (mqmath): Add option.
1289         * config/vax/vax.md (isfx): Extend with DI.
1290         (VAXintQH, VAXintQHSD): Define.
1291         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1292         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1293         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1294         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
1295         (movdi): Update constraints and use vax_output_int_move().
1296         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
1297         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
1298         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
1299         nonlocal_goto): New.
1300         (mov<mode>): Extend accepted operand types.
1301         (subdi3_old): Rename from subdi3, change update constraints and use
1302         a new implementation.
1303         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1304         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1305         MOVE_RATIO, CLEAR_RATIO): Define.
1306         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1307         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1308         (PRINT_OPERAND): Redefine using a function instead of inlined code.
1309         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1310         (split_quadword_operands): Make static and really allow variable
1311         splitting.
1312         (print_operand_address): Update for PIC generation.
1313         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1314         indexable_address_p, fixup_mathdi_operand,
1315         vax_expand_addsub_di_operands, adjacent_operands_p): New.
1316         (vax_float_literal, legitimate_constant_p,
1317         indirectable_constant_address_p, index_term_p,
1318         reg_plus_index_p): Return bool instead of int.
1319         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1320         where needed.
1321         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1322         generation.
1323         (vax_output_conditional_branch): Indent.
1324         (legitimate_constant_address_p, indirectable_constant_address_p,
1325         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1326         vax_mode_dependent_address_p): Return bool instead of int, update for
1327         PIC generation.
1328         * config/vax/vax-protos.h (legitimate_constant_address_p,
1329         legitimate_constant_p, legitimate_address_p,
1330         vax_mode_dependent_address_p): Change declaration to bool.
1331         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1332         vax_expand_addsub_di_operands, vax_output_int_subtract,
1333         vax_output_movmemsi): Declare.
1334         (split_quadword_operands, vax_float_literal): Delete declaration.
1335         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1336         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1337         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1338         ASM_OUTPUT_DWARF_PCREL): Define.
1339         (ASM_SPEC): Change definition to allow PIC generation.
1340
1341 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1342
1343         PR target/39226
1344         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1345         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1346         (booldi3_internal3): Use boolean_or_operator instead of
1347         boolean_operator.
1348
1349 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
1350
1351         PR c/39605
1352         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
1353         declarator whose size is not an integer constant expression but
1354         folds to an integer constant, then treat it as a constant
1355         subsequently.
1356
1357 2009-04-01  Richard Guenther  <rguenther@suse.de>
1358
1359         * fold-const.c (fold_plusminus_mult_expr): Do not fold
1360         i * 4 + 2 to (i * 2 + 1) * 2.
1361
1362 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1363
1364         PR c/37772
1365         * c-parser.c (c_parser_asm_statement): Skip until close paren and
1366         return if c_parser_asm_string_literal returned NULL.
1367
1368 2009-04-01  Nick Clifton  <nickc@redhat.com>
1369
1370         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
1371         already defined.
1372         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
1373         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
1374         other typedefs to avoid conflicts with libgcc2.c.  Define labels
1375         to gain 16-bit bit-manipulation functions from libgcc2.c and then
1376         include it.
1377         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
1378         to gain 16-bit trapping arithmetic functions from libgcc2.c and
1379         then include it.
1380
1381 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
1382
1383        * varasm.c (default_function_rodata_section): Declare DOT as const char*.
1384
1385 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
1386             Andrey Galkin <agalkin@hypercom.com>
1387
1388         PR/39492
1389         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
1390         Make object_name unique for each process.
1391
1392 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1393
1394         PR other/39591
1395         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
1396         addressable variables in the parallel that could go out of scope while
1397         running queued tasks.
1398
1399 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
1400
1401         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
1402         (CASE_VALUES_THRESHOLD): Redefine.
1403         * config/avr/avr.c (avr_override_options): Remove initialization of
1404         avr_case_values_threshold variable.
1405         (avr_case_values_threshold): Remove variable. Add new function.
1406         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
1407         * config/avr/avr.opt (mno-tablejump): Remove option.
1408         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
1409
1410 2009-04-01  DJ Delorie  <dj@redhat.com>
1411
1412         * varasm.c (default_function_rodata_section): Don't assume
1413         anything about where the first '.' in the section name is.
1414
1415 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
1416
1417         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
1418         rs6000_emit_stack_tie.
1419
1420 2009-03-31  Ian Lance Taylor  <iant@google.com>
1421
1422         * tree-eh.c (tree_remove_unreachable_handlers): Compare
1423         gimple_code with GIMPLE_RESX, not RESX.
1424
1425 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1426
1427         * c-common.c (c_get_ident): New.
1428         (c_common_nodes_and_builtins): Call it for type names that may be
1429         NULL.
1430
1431 2009-04-01  Ben Elliston  <bje@au.ibm.com>
1432
1433         * config/rs6000/sysv4.opt (msdata): Improve option description.
1434
1435 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
1436
1437         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
1438         (divdf3_internal_lat): Remove.
1439         (divxf3_internal_lat): Remove.
1440         (divxf3_internal_thr): Remove.
1441         (divxf): Use divxf3_internal.
1442         * config/ia64/div.md (divsf3_internal_lat): New.
1443         (divdf3_internal_lat): New.
1444         (divxf3_internal): New.
1445
1446 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1447
1448         PR c/448
1449         * Makefile.in (USE_GCC_STDINT): Define.
1450         (stmp-int-hdrs): Install stdint.h if applicable.
1451         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
1452         if known.
1453         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
1454         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
1455         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1456         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1457         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1458         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1459         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1460         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1461         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1462         (c_common_nodes_and_builtins): Initialize
1463         underlying_wchar_type_node.  Do not initialize
1464         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
1465         nodes for new types.
1466         (c_stddef_cpp_builtins): Define macros for new types.
1467         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
1468         Remove.
1469         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
1470         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
1471         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
1472         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
1473         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
1474         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
1475         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
1476         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
1477         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
1478         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
1479         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
1480         int16_type_node, int32_type_node, int64_type_node,
1481         uint8_type_node, uint16_type_node, c_uint32_type_node,
1482         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
1483         int_least32_type_node, int_least64_type_node,
1484         uint_least8_type_node, uint_least16_type_node,
1485         uint_least32_type_node, uint_least64_type_node,
1486         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
1487         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
1488         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
1489         uintptr_type_node): Define.
1490         * c-cppbuiltin.c (builtin_define_constants,
1491         builtin_define_type_minmax): New.
1492         (builtin_define_stdint_macros): Define more macros.
1493         (c_cpp_builtins): Define more limit macros.
1494         (type_suffix): New.
1495         (builtin_define_type_max): Define in terms of
1496         builtin_define_type_minmax.  Remove is_long parameter.  All
1497         callers changed.
1498         * config.gcc (use_gcc_stdint): Define.
1499         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
1500         Add newlib-stdint.h for generic targets.
1501         * config/glibc-stdint.h, config/newlib-stdint.h,
1502         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
1503         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
1504         * config/score/score.h (UINTPTR_TYPE): Define.
1505         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1506         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1507         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1508         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1509         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1510         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1511         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1512         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1513         * config/spu/spu.h (STDINT_LONG32): Define.
1514         * configure.ac (use_gcc_stdint): Substitute.
1515         * configure: Regenerate.
1516         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
1517         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
1518         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
1519         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
1520         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
1521         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
1522         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
1523         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
1524         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
1525         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
1526         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
1527         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
1528         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
1529         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
1530         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
1531         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
1532         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
1533         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
1534         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
1535         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
1536         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
1537         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
1538         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1539         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1540         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1541         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1542         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1543         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1544         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
1545
1546 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1547
1548         * loop-iv.c (suitable_set_for_replacement): Renamed from
1549         simplify_using_assignment; changed to return bool and to accept new
1550         args DEST and SRC.  Return true iff we find a source/destination pair
1551         that can be used to make a replacement, and fill SRC and DEST if so.
1552         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
1553         changed.
1554         (simplify_using_initial_values): Deal with altered regs here and track
1555         more precisely the effect they have on the validity of our expression.
1556
1557         * loop-iv.c (simplify_using_condition): A condition of the form
1558         (EQ REG CONST) can be used to simply make a substitution.
1559         (simplify_using_initial_values): Keep track of conditions we have seen
1560         and keep using them to simplify new expressions, while applying the
1561         same substitutions to them as to the expression.
1562
1563         * simplify-rtx.c (simplify_relational_operation_1): Simplify
1564         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
1565         GEU/LTU reversed.
1566
1567         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
1568         changed.  Use this when trying to improve the upper bound.
1569         Generate the comparison by using simplify_gen_relational.
1570
1571         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
1572
1573         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
1574         functions.
1575         (simplify_using_assignment, simplify_using_initial_values): Call 
1576         replace_in_expr to make replacements.  Call replace_single_def_regs
1577         once on the initial version of the expression.
1578
1579 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1580
1581         PR target/27237
1582         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
1583         
1584 2009-03-31  Richard Guenther  <rguenther@suse.de>
1585
1586         PR middle-end/31029
1587         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
1588         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
1589
1590 2009-03-31  Richard Guenther  <rguenther@suse.de>
1591
1592         * tree.h (div_if_zero_remainder): Declare.
1593         * fold-const.c (div_if_zero_remainder): Export.
1594         * tree-ssa-forwprop.c
1595         (forward_propagate_addr_into_variable_array_index): Handle
1596         constant array index addition outside of the variable index.
1597
1598 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1599
1600         PR target/39592
1601         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
1602         define_splits, floatunssi<mode>2): Require x87 conversions from
1603         DImode to be permitted.
1604
1605 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1606
1607         PR preprocessor/15638
1608         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
1609
1610 2009-03-31  Richard Guenther  <rguenther@suse.de>
1611
1612         PR middle-end/23401
1613         PR middle-end/27810
1614         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
1615         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
1616         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
1617         a separate statement.
1618         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
1619         (lookup_tmp_var): Likewise.
1620         (is_gimple_formal_tmp_or_call_rhs): Remove.
1621         (is_gimple_reg_or_call_rhs): Rename to ...
1622         (is_gimple_reg_rhs_or_call): ... this.
1623         (is_gimple_mem_or_call_rhs): Rename to ...
1624         (is_gimple_mem_rhs_or_call): ... this.
1625         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
1626         DECL_GIMPLE_REG_P only if is_formal is true.
1627         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
1628         for non-proper post-modify expression gimplification.
1629         (gimplify_self_mod_expr): For post-modify expressions gimplify
1630         the lvalue to a minimal lvalue.
1631         (rhs_predicate_for): Remove formal temp case.
1632         (gimplify_modify_expr_rhs): Likewise.
1633         (gimplify_addr_expr): Use is_gimple_reg.
1634         (gimplify_expr): Remove formal temp cases.
1635         (gimple_regimplify_operands): Likewise.
1636         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
1637         and FILTER_EXPR like constants.
1638         * gimple.c (walk_gimple_op): Fix val_only initialization, use
1639         is_gimple_reg.
1640         (is_gimple_formal_tmp_rhs): Remove.
1641         (is_gimple_reg_rhs): Remove special casing.
1642         (is_gimple_mem_rhs): Fix.
1643         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
1644         (is_gimple_formal_tmp_var): Remove.
1645         (is_gimple_formal_tmp_reg): Likewise.
1646         (is_gimple_min_lval): Allow invariant component ref parts.
1647         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
1648         is_gimple_formal_tmp_reg): Remove declarations.
1649         * tree-cfg.c (verify_expr): Verify that variables with address
1650         taken do not have DECL_GIMPLE_REG_P set.
1651         * tree-mudflap.c (mf_build_check_statement_for): Use
1652         force_gimple_operand instead of gimplify_expr.
1653
1654 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
1655
1656         * modulo-sched.c (sms_schedule_by_order): Pass the actual
1657         schedulable rows to compute_split_row.
1658
1659 2009-03-31  Ben Elliston  <bje@au.ibm.com>
1660
1661         PR target/31635
1662         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
1663         OPT_mvrsave.
1664
1665 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
1666
1667         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
1668         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
1669         * configure: Regenerate.
1670         * config.in: Regenerate.
1671         * config/rs6000/rs6000.opt (mtls-markers): Add.
1672         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
1673         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
1674         (tls_ld_aix, tls_ld_sysv): Likewise.
1675         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
1676         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
1677
1678 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
1679
1680         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
1681
1682 2009-03-30  Jan Hubicka  <jh@suse.cz>
1683
1684         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
1685         out of RESX.
1686         (tree_remove_unreachable_handlers): Cleanup EH predecestor
1687         detection and label handling.
1688
1689 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1690
1691         * ira-int.h (ira_allocno): Rename left_conflicts_num to
1692         left_conflicts_size.
1693         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
1694         ALLOCNO_LEFT_CONFLICTS_SIZE.
1695
1696         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
1697         remove_allocno_from_bucket_and_push,
1698         allocno_spill_priority_compare, push_allocnos_to_stack,
1699         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1700         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
1701         (setup_allocno_left_conflicts_num): Ditto.  Rename to
1702         setup_allocno_left_conflicts_size.
1703         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1704         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
1705         setup_allocno_left_conflicts_size instead of
1706         setup_allocno_left_conflicts_num.
1707
1708         * ira-build.c (ira_create_allocno): Use
1709         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
1710         ALLOCNO_LEFT_CONFLICTS_NUM.
1711                 
1712 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1713
1714         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1715         instead of DF_LR_OUT.
1716
1717         * ira-lives.c (process_bb_node_lives): Ditto.
1718
1719         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1720         instead of DF_LR_{OUT,IN}.
1721
1722         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1723
1724         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1725
1726 2009-03-30  Jan Hubicka  <jh@suse.cz>
1727
1728         * except.c (label_to_region_map): Fix thinko.
1729
1730 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
1731
1732         PR middle-end/38237
1733         * tree.h (tree_find_value): New declaration.
1734         * tree.c (tree_find_value): New function.
1735         * varasm.c (assemble_external): Avoid duplicate entries on lists.
1736
1737 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
1738
1739         PR debug/39563
1740         * c-decl.c (struct c_binding): Add locus field.
1741         (bind): Add locus argument, set locus field from it.
1742         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
1743         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
1744         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
1745         implicitly_declare, undeclared_variable, lookup_label,
1746         declare_label, c_make_fname_decl, c_builtin_function,
1747         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
1748         bind callers.
1749
1750 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1751
1752         PR target/38781
1753         * config/i386/i386.c (classify_argument): Check total size of
1754         structure.
1755
1756 2009-03-30  Martin Jambor  <mjambor@suse.cz>
1757
1758         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
1759         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
1760         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
1761         respectively.
1762
1763         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
1764         seen_variable_array_ref while also traversing a union.
1765
1766         * tree-inline.c (optimize_inline_calls): Do not call
1767         cgraph_node_remove_callees.
1768         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
1769         (pass_remove_cgraph_callee_edges): New variable.
1770         * passes.c (init_optimization_passes): Add
1771         pass_remove_cgraph_callee_edges after early inlining and before all
1772         late intraprocedural passes.
1773
1774         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
1775
1776 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1777
1778         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
1779         Fix typos in names.
1780
1781 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1782
1783         * combine.c (simplify_comparison): Use have_insn_for.
1784         * dojump.c (do_jump): Likewise.
1785
1786 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1787
1788         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
1789         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
1790         sparc_compare_op0 like sparc_compare_emitted used to be handled.
1791         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
1792         instead of sparc_compare_emitted.
1793         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
1794         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
1795         instead of sparc_compare_emitted.
1796
1797 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1798
1799         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
1800         enter/exit cfglayout mode.
1801         (pass_partition_block): Require it.
1802         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
1803         (combine_instructions): Track basic blocks instead of labels.
1804         (update_cfg_for_uncondjump): New.
1805         (try_combine): Use it.  Update jumps after rescanning.
1806         (pass_combine): Require PROP_cfglayout.
1807         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
1808
1809 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1810
1811         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
1812         Provide/destroy PROP_cfglayout respectively.
1813         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
1814         * tree-pass.h (PROP_cfglayout): New.
1815
1816 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1817
1818         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
1819         fold_convert_const_fixed_from_fixed,
1820         fold_convert_const_fixed_from_int,
1821         fold_convert_const_fixed_from_real, fold_negate_const): Do not
1822         set TREE_CONSTANT_OVERFLOW.
1823         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
1824         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
1825
1826 2009-03-30  Ira Rosen  <irar@il.ibm.com>
1827
1828         * tree-vect-loop-manip.c: New file.
1829         * tree-vectorizer.c: Update documentation and included files.
1830         (vect_loop_location): Make extern.
1831         (rename_use_op): Move to tree-vect-loop-manip.c
1832         (rename_variables_in_bb, rename_variables_in_loop, 
1833         slpeel_update_phis_for_duplicate_loop, 
1834         slpeel_update_phi_nodes_for_guard1,
1835         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
1836         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
1837         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
1838         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
1839         find_loop_location): Likewise.
1840         (new_stmt_vec_info): Move to tree-vect-stmts.c.
1841         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
1842         get_vectype_for_scalar_type, vect_is_simple_use,
1843         supportable_widening_operation, supportable_narrowing_operation):
1844         Likewise.
1845         (bb_in_loop_p): Move to tree-vect-loop.c.
1846         (new_loop_vec_info, destroy_loop_vec_info, 
1847         reduction_code_for_scalar_code, report_vect_op, 
1848         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
1849         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
1850         (vect_supportable_dr_alignment): Likewise.
1851         * tree-vectorizer.h (tree-data-ref.h): Include.
1852         (vect_loop_location): Declare.
1853         Reorganize function declarations according to the new file structure.
1854         * tree-vect-loop.c: New file.
1855         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
1856         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
1857         * tree-vect-data-refs.c: New file.
1858         * tree-vect-patterns.c (timevar.h): Don't include.
1859         * tree-vect-stmts.c: New file.
1860         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
1861         tree-vect-slp.c, tree-vect-loop.c.
1862         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
1863         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
1864         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
1865         (tree-vect-analyze.o): Remove.
1866         (tree-vect-transform.o): Likewise.
1867         (tree-vect-data-refs.o): Add rule.
1868         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
1869         tree-vect-slp.o): Likewise.
1870         (tree-vect-patterns.o): Remove redundant dependencies.
1871         (tree-vectorizer.o): Likewise.
1872         * tree-vect-slp.c: New file.
1873
1874 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1875
1876         * optc-gen.awk: Warn if an option flag has multiple different
1877         help strings.
1878
1879 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
1880
1881         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
1882         -floop-block): Document dependences on PPL, CLooG and Graphite.
1883
1884 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
1885
1886         PR rtl-optimization/323
1887         * c-common.c (c_fully_fold, convert_and_check,
1888         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
1889         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
1890         * c-common.def (EXCESS_PRECISION_EXPR): New.
1891         * c-cppbuiltin.c (builtin_define_float_constants): Define
1892         constants with enough digits for long double.
1893         * c-lex.c (interpret_float): Interpret constant with excess
1894         precision where appropriate.
1895         * c-opts.c (c_common_post_options): Set
1896         flag_excess_precision_cmdline.  Give an error for
1897         -fexcess-precision=standard for C++ for processors where the
1898         option is significant.
1899         * c-parser.c (c_parser_conditional_expression): Handle excess
1900         precision in condition.
1901         * c-typeck.c (convert_arguments): Handle arguments with excess
1902         precision.
1903         (build_unary_op): Move excess precision outside operation.
1904         (build_conditional_expr): Likewise.
1905         (build_compound_expr): Likewise.
1906         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
1907         (build_modify_expr): Handle excess precision in RHS.
1908         (convert_for_assignment): Handle excess precision in converted
1909         value.
1910         (digest_init, output_init_element, process_init_element): Handle
1911         excess precision in initializer.
1912         (c_finish_return): Handle excess precision in return value.
1913         (build_binary_op): Handle excess precision in operands and add
1914         excess precision as needed for operation.
1915         * common.opt (-fexcess-precision=): New option.
1916         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
1917         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
1918         For standard excess precision, output explicit conversion to and
1919         truncation from XFmode.
1920         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
1921         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
1922         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
1923         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
1924         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
1925         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
1926         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
1927         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
1928         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
1929         define_splits, sqrt<mode>2): Disable where appropriate for
1930         standard excess precision.
1931         * convert.c (convert_to_real): Do not shorten arithmetic to type
1932         for which excess precision would be used.
1933         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
1934         * doc/invoke.texi (-fexcess-precision=): Document option.
1935         (-mfpmath=): Correct index entry.
1936         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
1937         flag_excess_precision): New.
1938         * langhooks.c (lhd_post_options): Set
1939         flag_excess_precision_cmdline.
1940         * opts.c (common_handle_option): Handle -fexcess-precision=.
1941         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
1942         init_excess_precision): New.
1943         (lang_dependent_init_target): Call init_excess_precision.
1944         * tree.c (excess_precision_type): New.
1945         * tree.h (excess_precision_type): Declare.
1946
1947 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
1948
1949         PR c/35235
1950         * c-typeck.c (build_component_ref): Do not copy qualifiers from
1951         non-lvalue to component.
1952
1953 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
1954
1955         PR preprocessor/34695
1956         * Makefile.in (c-opts.o): Depend on c-tree.h.
1957         * c-common.c: Move down include of diagnostic.h.
1958         (done_lexing, c_cpp_error): New.
1959         * c-common.h (done_lexing): Declare.
1960         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
1961         (parse_in).
1962         * c-opts.c: Include c-tree.h.
1963         (c_common_init_options): Set preprocessor error callback.
1964         (c_common_handle_option): Do not set preprocessor
1965         inhibit_warnings, warnings_are_errors, warn_system_headers,
1966         pedantic_errors or inhibit_warnings flags.
1967         (c_common_post_options): Do not check cpp_errors (parse_in).
1968         (c_common_finish): Do not output dependencies if there were
1969         errors.  Do not check return value of cpp_finish.
1970         * c-ppoutput.c (pp_file_change): Set input_location.
1971         * c-tree.h (c_cpp_error): Declare.
1972         * diagnostic.c (diagnostic_set_info_translated): Also initialize
1973         override_column.
1974         (diagnostic_build_prefix): Check override_column.
1975         * diagnostic.h (diagnostic_info): Add override_column field.
1976         (diagnostic_override_column): Define.
1977
1978 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
1979
1980         * c-common.c (c_expand_expr, c_staticp): Remove.
1981         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
1982         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
1983         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
1984         * c-gimplify.c (gimplify_compound_literal_expr,
1985         optimize_compound_literals_in_ctor): Remove.
1986         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
1987         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
1988         * c-semantics.c (emit_local_var): Remove.
1989
1990         * langhooks-def.h (lhd_expand_expr): Remove.
1991         * langhooks.c (lhd_expand_expr): Remove.
1992         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
1993
1994         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
1995         handling from c-semantics.c; don't call into langhook.
1996         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
1997         * gimplify.c (gimplify_compound_literal_expr,
1998         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
1999         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
2000         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
2001         as was done in c-gimplify.c.
2002         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
2003         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
2004         Move from c-common.h.
2005         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
2006
2007         * tree.c (staticp): Do not call langhook.
2008         * langhooks.c (lhd_staticp): Delete.
2009         * langhooks-def.h (lhd_staticp): Delete prototype.
2010         (LANG_HOOKS_STATICP): Delete.
2011         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
2012
2013         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
2014         instead of DECL_STMTs.
2015
2016 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
2017
2018         PR c/456
2019         PR c/5675
2020         PR c/19976
2021         PR c/29116
2022         PR c/31871
2023         PR c/35198
2024         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
2025         void_type_node.
2026         (fold_call_expr): Return a NOP_EXPR from folding rather than the
2027         contained expression.
2028         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
2029         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
2030         conditional expressions for C.
2031         (decl_constant_value_for_optimization): Move from
2032         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
2033         whether optimizing and that the expression is a VAR_DECL not of
2034         array type instead of doing such checks in the caller.  Do not
2035         check pedantic.  Call gcc_unreachable for C++.
2036         * c-common.def (C_MAYBE_CONST_EXPR): New.
2037         * c-common.h (c_fully_fold, c_save_expr,
2038         decl_constant_value_for_optimization): New prototypes.
2039         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2040         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2041         EXPR_INT_CONST_OPERANDS): Define.
2042         * c-convert.c (convert): Strip nops from expression.
2043         * c-decl.c (groktypename): Take extra parameters expr and
2044         expr_const_operands.  Update call to grokdeclarator.
2045         (start_decl): Update call to grokdeclarator.  Add statement for
2046         expressions used in type of decl.
2047         (grokparm): Update call to grokdeclarator.
2048         (push_parm_decl): Update call to grokdeclarator.
2049         (build_compound_literal): Add parameter non_const and build a
2050         C_MAYBE_COSNT_EXPR if applicable.
2051         (grokdeclarator): Take extra parameters expr and
2052         expr_const_operands.  Track expressions used in declaration
2053         specifiers and declarators.  Fold array sizes and track whether
2054         they are constant expressions and whether they are integer
2055         constant expressions.
2056         (parser_xref_tag): Set expr and expr_const_operands fields in
2057         return value.
2058         (grokfield): Update call to grokdeclarator.
2059         (start_function): Update call to grokdeclarator.
2060         (build_null_declspecs): Set expr and expr_const_operands fields in
2061         return value.
2062         (declspecs_add_type): Handle expressions in typeof specifiers.
2063         * c-parser.c (c_parser_declspecs): Set expr and
2064         expr_const_operands fields for declaration specifiers.
2065         (c_parser_enum_specifier): Likewise.
2066         (c_parser_struct_or_union_specifier): Likewise.
2067         (c_parser_typeof_specifier): Likewise.  Update call to
2068         groktypename.  Fold expression as needed.  Return expressions with
2069         type instead of adding statements.
2070         (c_parser_attributes): Update calls to c_parser_expr_list.
2071         (c_parser_statement_after_labels): Fold expression before passing
2072         to objc_build_throw_stmt.
2073         (c_parser_condition): Fold expression.
2074         (c_parser_asm_operands): Fold expression.
2075         (c_parser_conditional_expression): Use c_save_expr.  Update call
2076         to build_conditional_expr.
2077         (c_parser_alignof_expression): Update call to groktypename.
2078         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
2079         original_code.  Fold expression argument of va_arg.  Create
2080         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
2081         argument to va_arg.  Update calls to groktypename.  Fold array
2082         index for offsetof.  Verify that first argument to
2083         __builtin_choose_expr has integer type.
2084         (c_parser_postfix_expression_after_paren_type): Update calls to
2085         groktypename and build_compound_literal.  Handle expressions with
2086         side effects in type name.
2087         (c_parser_postfix_expression_after_primary): Update call to
2088         c_parser_expr_list.  Set original_code for calls to
2089         __builtin_constant_p.
2090         (c_parser_expr_list): Take extra parameter fold_p.  Fold
2091         expressions if requested.
2092         (c_parser_objc_type_name): Update call to groktypename.
2093         (c_parser_objc_synchronized_statement): Fold expression.
2094         (c_parser_objc_receiver): Fold expression.
2095         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
2096         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
2097         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
2098         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
2099         (struct c_typespec): Add elements expr and expr_const_operands.
2100         (struct c_declspecs): Add elements expr and expr_const_operands.
2101         (groktypename, build_conditional_expr, build_compound_literal):
2102         Update prototypes.
2103         (in_late_binary_op): Declare.
2104         * c-typeck.c (note_integer_operands): New function.
2105         (in_late_binary_op): New variable.
2106         (decl_constant_value_for_broken_optimization): Move to c-common.c
2107         and rename to decl_constant_value_for_optimization.
2108         (default_function_array_conversion): Do not strip nops.
2109         (default_conversion): Do not call
2110         decl_constant_value_for_broken_optimization.
2111         (build_array_ref): Do not fold result.
2112         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
2113         result when operand is a VLA.
2114         (c_expr_sizeof_type): Update call to groktypename.  Handle
2115         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
2116         result when operand names a VLA type.
2117         (build_function_call): Update call to build_compound_literal.
2118         Only fold result for calls to __builtin_* functions.  Strip
2119         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
2120         the function designator.
2121         (convert_arguments): Fold arguments.  Update call to
2122         convert_for_assignment.
2123         (build_unary_op): Handle increment and decrement of
2124         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
2125         decrement earlier.  Fold operand of increment and decrement.
2126         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
2127         built for integer operand.  Wrap returns that are INTEGER_CSTs
2128         without being integer constant expressions or that have integer
2129         constant operands without being INTEGER_CSTs.
2130         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2131         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
2132         result is an integer constant expression or can be used in
2133         unevaluated parts of one and avoid folding and wrap as
2134         appropriate.  Fold operands before possibly doing -Wsign-compare
2135         warnings.
2136         (build_compound_expr): Wrap result for C99 if operands can be used
2137         in integer constant expressions.
2138         (build_c_cast): Update call to digest_init.  Do not ignore
2139         overflow from casting floating-point constants to integers.  Wrap
2140         results that could be confused with integer constant expressions,
2141         null pointer constants or floating-point constants.
2142         (c_cast_expr): Update call to groktypename.  Handle expressions
2143         included in type name.
2144         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
2145         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
2146         Update calls to convert_for_assignment.
2147         (convert_for_assignment): Take new parameter
2148         null_pointer_constant.  Do not strip nops or call
2149         decl_constant_value_for_broken_optimization.  Set
2150         in_late_binary_op for conversions to boolean.
2151         (store_init_value): Update call to digest_init.
2152         (digest_init): Take new parameter null_pointer_constant.  Do not
2153         call decl_constant_value_for_broken_optimization.  pedwarn for
2154         initializers not constant expressions.  Update calls to
2155         convert_for_assignment.
2156         (constructor_nonconst): New.
2157         (struct constructor_stack): Add nonconst element.
2158         (really_start_incremental_init, push_init_level, pop_init_level):
2159         Handle constructor_nonconst and nonconst element.
2160         (set_init_index): Call constant_expression_warning for array
2161         designators.
2162         (output_init_element): Fold value.  Set constructor_nonconst as
2163         applicable.  pedwarn for initializers not constant expressions.
2164         Update call to digest_init.  Call constant_expression_warning
2165         where constant initializers are required.
2166         (process_init_element): Use c_save_expr.
2167         (c_finish_goto_ptr): Fold expression.
2168         (c_finish_return): Fold return value.  Update call to
2169         convert_for_assignment.
2170         (c_start_case): Fold switch expression.
2171         (c_process_expr_stmt): Fold expression.
2172         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
2173         ensure statement expression is not evaluated in constant expression.
2174         (build_binary_op): Track whether results are integer constant
2175         expressions or may occur in such, disable folding and wrap results
2176         as applicable.  Fold operands for -Wsign-compare warnings unless
2177         in_late_binary_op.
2178         (c_objc_common_truthvalue_conversion): Handle results folded to
2179         integer constants that are not integer constant expressions.
2180         * doc/extend.texi: Document when typeof operands are evaluated,
2181         that condition of __builtin_choose_expr is an integer constant
2182         expression, and more about use of __builtin_constant_p in
2183         initializers.
2184
2185 2009-03-29  Richard Guenther  <rguenther@suse.de>
2186
2187         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2188         propagate addresses of array references.
2189
2190 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2191
2192         * regmove.c (perhaps_ends_bb_p): Remove.
2193         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
2194         from INSN and check that the main loop stays within that basic block.
2195         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2196         (regmove_forward_pass): Split out from regmove_optimize.  Use
2197         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2198         (regmove_backward_pass): Split out from regmove_optimize.  Use
2199         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2200         (regmove_optimize): Simplify.
2201
2202 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2203
2204         PR target/39545
2205         * config/i386/i386.c (classify_argument): Ignore flexible array
2206         member in struct and warn ABI change.
2207
2208 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2209
2210         * config/i386/i386-protos.h (ix86_agi_dependent): New.
2211
2212         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2213         (ix86_adjust_cost): Updated.
2214
2215 2009-03-29  Jan Hubicka  <jh@suse.cz>
2216
2217         PR middle-end/28850
2218         * tree-pass.h (pass_cleanup_eh): New function.
2219         (remove_unreachable_regions): Break code handling RTL
2220         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2221         that can not be reached by runtime.
2222         (can_be_reached_by_runtime): New function.
2223         (label_to_region_map): New function.
2224         (num_eh_regions): New function.
2225         (rtl_remove_unreachable_regions): New function.
2226         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2227         (remove_eh_region): New function.
2228         * except.h: Include sbitmap and vecprim.
2229         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2230         num_eh_regions): Declare.
2231         * passes.c (init_optimization_passes): Schedule cleanup_eh.
2232         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
2233         * tree-eh.c (tree_remove_unreachable_handlers): New function.
2234         (tree_empty_eh_handler_p): New function.
2235         (cleanup_empty_eh): New function.
2236         (cleanup_eh): New function.
2237         (pass_cleanup_eh): New function.
2238
2239 2009-03-29  Jan Hubicka  <jh@suse.cz>
2240
2241         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2242         for removed regions.
2243
2244 2009-03-29  Jan Hubicka  <jh@suse.cz>
2245
2246         * except.c (dump_eh_tree): Dump all datastructures.
2247
2248 2009-03-29  Jan Hubicka  <jh@suse.cz>
2249
2250         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2251         (duplicate_eh_regions_1): Likewise.
2252         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2253         vector; call EH verification.
2254         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2255         Be ready for region being removed.
2256
2257 2009-03-29  Jan Hubicka  <jh@suse.cz>
2258
2259         * bitmap.c (bitmap_last_set_bit): New function.
2260         * bitmap.h (bitmap_last_set_bit): Declare.
2261
2262 2009-03-29  David Ayers  <ayers@fsfe.org>
2263
2264         PR objc/27377
2265         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2266         by calling objc_compare_types and surpress warnings about
2267         incompatible C pointers that are compatible ObjC pointers.
2268         
2269 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
2270
2271         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2272         call initialize_inline_failed.
2273         (initialize_inline_failed): Move it from here ...
2274         * cgraph.c (initialize_inline_failed): ... to here.
2275         (cgraph_create_edge): Call initialize_inline_failed rather than
2276         setting inline_failed directly.
2277
2278 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2279
2280         PR target/32542
2281         * sysv4.opt (msdata): Improve comment.
2282         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2283         * sysv4.h (SVR4_ASM_SPEC): Likewise.
2284
2285 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2286
2287         PR target/30451
2288         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2289         load and store attributes.
2290
2291 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2292
2293         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
2294         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
2295         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
2296         * doc/extend.texi (X86 Built-in Functions): Add index entries for
2297         __builtin_infq and __builtin_huge_valq.
2298
2299 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
2300
2301         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2302         atmega8m1 devices.
2303         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2304         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2305
2306 2009-03-28  Xinliang David Li  <davidxl@google.com>
2307
2308         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
2309         (do_dbg_cnt): New function.
2310
2311 2009-03-28  Jan Hubicka  <jh@suse.cz>
2312
2313         Merge from pretty-ipa:
2314
2315         2009-03-27  Jan Hubicka  <jh@suse.cz>
2316
2317         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2318         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2319         * passes.c (function_called_by_processed_nodes_p): New.
2320         * ipa-pure-const.c (check_call): Fix handling of operands.
2321         (analyze_function): Dump debug output for skipped bodies.
2322         (local_pure_const): Use function_called_by_processed_nodes_p.
2323         * dwarf2out.c (reference_to_unused): Use output.
2324         * passes.c (do_per_function_toporder): Likewise.
2325
2326         2008-11-12  Jan Hubicka  <jh@suse.cz>
2327
2328         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2329         * ipa-pure-const.c (funct_state_d): Add can throw field; make
2330         state_set_in_source enum
2331         (check_decl): Ignore memory tags; do not set fake looping flags;
2332         dump diagnostics.
2333         (check_operand, check_tree, check_rhs_var, check_lhs_var,
2334         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2335         (check_call, analyze_function): Rewrite.
2336         (check_stmt): New.
2337         (add_new_function): Update call of analyze_function.
2338         (generate_summary): Add call of analyze_function.
2339         (propagate): Propagate can_throw; handle state_set_in_source correctly.
2340         (local_pure_const): New function.
2341         (pass_local_pure_const): New pass.
2342         * ipa-inline.c (inline_transform): Set after_inlining.
2343         * tree-eh.c (stmt_can_throw_external): New.
2344         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2345         work with aliasing built.
2346         * tree-flow.h (stmt_can_throw_external): New.
2347         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2348         and local pure/const pass in early and late optimization queue.
2349
2350 2009-03-28  Martin Jambor  <mjambor@suse.cz>
2351
2352         * fold-const.c (get_pointer_modulus_and_residue): New parameter
2353         allow_func_align.
2354         (fold_binary): Allow function decl aligment consideration is the
2355         second argument is integer constant one.
2356         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
2357         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
2358         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
2359
2360 2009-03-28  Jan Hubicka  <jh@suse.cz>
2361
2362         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
2363         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
2364         * function.h (rtl_data): Add nothrow flag.
2365         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
2366         set DECL_NOTHROW for AVAILABLE functions.
2367
2368 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
2369
2370         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
2371         following vector keyword has expansion starting with pixel or bool
2372         keyword, expand vector to __vector and pixel or bool to __pixel or
2373         __bool.
2374
2375         PR c++/39554
2376         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
2377         warn_if_disallowed_function_p): Removed.
2378         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
2379         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
2380         warning_if_disallowed_function_p.
2381         * flags.h (warn_if_disallowed_function_p,
2382         warn_disallowed_functions): Removed.
2383         * common.opt (Wdisallowed-function-list=): Removed.
2384         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
2385
2386 2009-03-28  Richard Guenther  <rguenther@suse.de>
2387
2388         PR tree-optimization/38723
2389         * tree-ssa-pre.c (compute_avail): Add all default definitions to
2390         the entry block.
2391
2392 2009-03-28  Jan Hubicka  <jh@suse.cz>
2393
2394         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
2395         test introduced by my previous patch.
2396
2397 2009-03-28  Richard Guenther  <rguenther@suse.de>
2398
2399         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
2400         the PHIs value undefined.
2401
2402 2009-03-28  Jan Hubicka  <jh@suse.cz>
2403
2404         * tree-pass.h (pass_fixup_cfg): New pass.
2405         * ipa-inline.c (inline_transform): Set
2406         always_inline_functions_inlined/after_inlining.
2407         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
2408         (pass_fixup_cfg): New pass.
2409         * passes.c (init_optimization_passes): Add fixup_cfg.
2410
2411 2009-03-28  Richard Guenther  <rguenther@suse.de>
2412
2413         PR tree-optimization/38458
2414         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
2415         argument use the arguments copy-of value.
2416
2417 2009-03-28  Richard Guenther  <rguenther@suse.de>
2418
2419         PR tree-optimization/38180
2420         * tree-ssa-ccp.c (get_default_value): Simplify.
2421         (likely_value): Likewise.
2422         (surely_varying_stmt_p): Properly handle VOP case.
2423         (ccp_initialize): Likewise.
2424         (ccp_fold): Handle propagating through *&.
2425         (fold_const_aggregate_ref): Also handle decls.
2426
2427 2009-03-28  Jan Hubicka  <jh@suse.cz>
2428
2429         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2430         * cgraph.h (cgraph_node): Likewise.
2431         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
2432         (cgraph_reset_node): Use process flag.
2433         (cgraph_mark_functions_to_output): Likewise.
2434         (cgraph_expand_function): Likewise.
2435         (cgraph_expand_all_functions): Likewise.
2436         (cgraph_output_in_order): Likewise.
2437         * dwarf2out.c (reference_to_unused): Likewise.
2438         * passes.c do_per_function_toporder): Likewise.
2439
2440 2009-03-28  Jan Hubicka  <jh@suse.cz>
2441
2442         Bring from lto-branch:
2443
2444         2008-09-03  Doug Kwan  <dougkwan@google.com>
2445
2446         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
2447         enums instead of reason strings.
2448         * cgraph.c (cgraph_create_edge): Same.
2449         (cgraph_inline_failed_string): New function.
2450         * cgraph.h (cgraph_inline_failed_t): New enum type.
2451         (cgraph_inline_failed_string): New prototype.
2452         (struct cgraph_edge): Change type of INLINED_FAILED from constant
2453         char pointer to cgraph_inline_failed_t.
2454         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
2455         (cgraph_default_inline_p): Ditto.
2456         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
2457         to cgraph_inline_failed_t pointer.
2458         * cif-code.def: New file.
2459         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
2460         reason string.
2461         (cgraph_check_inline_limits): Change type of REASON to pointer to
2462         cgraph_inline_failed_t.  Replace reason strings with enums.
2463         (cgraph_default_inline_p): Ditto.
2464         (cgraph_recursive_inlining_p): Ditto.
2465         (update_caller_keys): Change type of FAILED_REASON to
2466         cgraph_inline_failed_t.
2467         (cgraph_set_inline_failed): Change type of REASON to pointer to
2468         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
2469         convert enums to strings for text output.
2470         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
2471         to be of type cgraph_inline_failed_t.  Replace reason strings with
2472         enums.  Call cgraph_inline_failed_string to covert enums
2473         to strings for text output.
2474         (cgraph_decide_inlining): Replace reason strings with enums.
2475         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
2476         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
2477         for text output.
2478         * tree-inline.c (expand_call_inline): Change type of REASON
2479         to cgraph_inline_failed_t.  Replace reason strings with enums.
2480         Call cgraph_inline_failed_string for text output.
2481         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
2482         (cgraph.o): Ditto.
2483
2484 2009-03-28  Jan Hubicka  <jh@suse.cz>
2485
2486         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
2487         cgraph_clone_node): Remove master clone handling.
2488         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2489         * cgraph.h (master_clone): Remove.
2490         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2491         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
2492         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
2493
2494 2009-03-28  Jan Hubicka  <jh@suse.cz>
2495
2496         * cgraph.c (cgraph_function_body_availability): Functions declared
2497         inline are always safe to assume that it is not going to be replaced.
2498
2499 2009-03-28  Richard Guenther  <rguenther@suse.de>
2500
2501         PR tree-optimization/38513
2502         * tree-ssa-pre.c (eliminate): Remove redundant stores.
2503         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2504         EXC_PTR_EXPR and FILTER_EXPR.
2505         (get_ref_from_reference_ops): Likewise.
2506
2507 2009-03-28  Richard Guenther  <rguenther@suse.de>
2508
2509         PR tree-optimization/38968
2510         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
2511         Use FLOOR_MOD_EXPR to compute misalignment.
2512
2513 2009-03-28  Richard Guenther  <rguenther@suse.de>
2514
2515         PR tree-optimization/37795
2516         * tree.h (combine_comparisons): Declare.
2517         * fold-const.c (combine_comparisons): Export.
2518         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
2519         comparisons.
2520         (ifcombine_iforif): Use combine_comparisons.
2521
2522 2009-03-28  Jan Hubicka  <jh@suse.cz>
2523
2524         * tree-eh.c (inlinable_call_p): New function.
2525         (make_eh_edges): Use it.
2526         (verify_eh_edges): Use it.
2527         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
2528         * except.c (reachable_next_level): Add inlinable_function argument
2529         (sjlj_find_directly_reachable_regions): Update.
2530         (add_reachable_handler): Do not set saw_any_handlers.
2531         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
2532         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2533         Add new inlinable call parameter.
2534         (can_throw_internal, can_throw_external): Update.
2535         * except.h (can_throw_internal_1, can_throw_external_1,
2536         foreach_reachable_handler): Update declaration.
2537
2538 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
2539
2540         * config/arm/t-arm-coff, config/h8300/coff.h,
2541         config/i386/i386-aout.h, config/i386/i386-coff.h,
2542         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
2543         config/pdp11/2bsd.h, config/rs6000/aix41.h,
2544         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
2545         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
2546         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
2547         sys-types.h: Remove.
2548         * Makefile.in: Remove protoize and fixproto support and references
2549         in comments.
2550         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
2551         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
2552         Remove.
2553         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
2554         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
2555         unprotoize$(exeext).
2556         (rest.encap): Don't depend on $(STMP_FIXPROTO)
2557         (.PHONY): Don't depend on proto.
2558         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
2559         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
2560         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
2561         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
2562         build/gen-protos.o, build/scan.o, xsys-protos.h,
2563         build/fix-header$(build_exeext), build/fix-header.o,
2564         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
2565         stmp-install-fixproto): Remove.
2566         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
2567         SYSCALLS.c or fixproto files.
2568         (install-common): Don't install protoize.
2569         (install-headers-tar, install-headers-cpio, install-headers-cp):
2570         Don't depend on $(STMP_FIXPROTO).
2571         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
2572         install fixproto files or write out fixproto settings.
2573         (uninstall): Don't uninstall protoize.
2574         * config.gcc (use_fixproto): Remove.
2575         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
2576         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
2577         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
2578         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
2579         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
2580         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
2581         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
2582         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
2583         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
2584         * config/t-vxworks (STMP_FIXPROTO): Remove.
2585         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
2586         STMP_FIXPROTO): Remove.
2587         * config.in, configure: Regenerate.
2588         * crtstuff.c (gid_t, uid_t): Don't undefine.
2589         * doc/install.texi: Change m68k-coff to m68k-elf in example.
2590         (arm-*-coff, arm-*-aout: Remove target entries.
2591         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
2592         Remove mention of AIX 4.1.
2593         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
2594         * doc/invoke.texi (Running Protoize): Remove.
2595         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
2596         (Protoize Caveats): Remove.
2597         * tsystem.h: Update comments on headers assumed to exist.
2598
2599 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
2600
2601         * genautomata.c: Add a new year to the copyright.  Add a new
2602         reference.
2603         (struct insn_reserv_decl): Add comments for member bypass_list.
2604         (find_bypass): Remove.
2605         (insert_bypass): New.
2606         (process_decls): Use insert_bypass.
2607         (output_internal_insn_latency_func): Output all bypasses with the
2608         same input insn in one switch case.
2609
2610         * rtl.def (define_bypass): Describe bypass choice.
2611         * doc/md.texi (define_bypass): Ditto.
2612
2613 2009-03-27  Richard Guenther  <rguenther@suse.de>
2614
2615         * gimplify.c (mark_addressable): Export.
2616         * tree-flow.h (mark_addressable): Declare.
2617         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
2618         * tree-ssa.c (verify_phi_args): Verify that address taken
2619         variables have TREE_ADDRESSABLE set.
2620
2621 2009-03-27  Richard Guenther  <rguenther@suse.de>
2622
2623         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
2624         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
2625         Do not mark decls TREE_ADDRESSABLE.
2626         (build_fold_addr_expr): Adjust.
2627         (fold_addr_expr): Remove.
2628         (fold_unary): Use build_fold_addr_expr.
2629         (fold_comparison): Likewise.
2630         (split_address_to_core_and_offset): Likewise.
2631         * coverage.c (tree_coverage_counter_addr): Mark the array decl
2632         TREE_ADDRESSABLE.
2633         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
2634         (gimplify_modify_expr_to_memcpy): Mark source and destination
2635         addressable.
2636         * omp-low.c (create_omp_child_function): Mark the object decl
2637         TREE_ADDRESSABLE.
2638         (lower_rec_input_clauses): Mark the var we take the address of
2639         TREE_ADDRESSABLE.
2640         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
2641
2642 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2643
2644         PR middle-end/39315
2645         * cfgexpand.c (expand_one_stack_var_at): Change alignment
2646         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
2647
2648 2009-03-27  Richard Guenther  <rguenther@suse.de>
2649
2650         PR tree-optimization/39120
2651         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
2652         constraints.
2653         (handle_lhs_call): Process return constraints.  Add escape
2654         constraints if necessary.
2655         (handle_const_call): Fill out return constraints.  Make nested
2656         case more precise.  Avoid consttmp if possible.
2657         (handle_pure_call): Fill out return constraints.  Avoid
2658         callused if possible.
2659         (find_func_aliases): Simplify call handling.
2660
2661 2009-03-27  Richard Guenther  <rguenther@suse.de>
2662
2663         PR tree-optimization/39120
2664         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
2665         as a representative.
2666         (solve_graph): Do propagate CALLUSED.
2667         (handle_pure_call): Use a scalar constraint from CALLUSED for
2668         the return value.
2669         (find_what_p_points_to): CALLUSED shall not appear in poins-to
2670         solutions.
2671
2672 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2673
2674         PR c/39323
2675         * c-common.c (handle_aligned_attribute): Properly check alignment
2676         overflow.  Use (1U << i) instead of (1 << i).
2677
2678         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
2679
2680         * expr.h (get_mem_align_offset): Updated.
2681
2682         * tree.h (tree_decl_common): Change align to "unsigned int" and
2683         move it before pointer_alias_set.
2684
2685 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2686             Jakub Jelinek  <jakub@redhat.com>
2687
2688         PR target/38034
2689         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
2690         gr_register_operand with gr_reg_or_0_operand.
2691         (cmpxchg_rel_di): Likewise.
2692         (sync_lock_test_and_set<mode>): Likewise.
2693
2694 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2695
2696         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
2697         (true_regnum): Likewise.
2698
2699         * rtlanal.c (subreg_info): Moved to ...
2700         * rtl.h (subreg_info): Here.  New.
2701         (subreg_get_info): New.
2702
2703         * rtlanal.c (subreg_get_info): Make it extern.
2704
2705 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2706
2707         PR target/39472
2708         * config/i386/i386.c (ix86_abi): New.
2709         (override_options): Handle -mabi=.
2710         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
2711         (ix86_call_abi_override): Likewise.
2712         (init_cumulative_args): Likewise.
2713         (function_arg_advance): Likewise.
2714         (function_arg_64): Likewise.
2715         (function_arg): Likewise.
2716         (ix86_pass_by_reference): Likewise.
2717         (ix86_function_value_regno_p): Likewise.
2718         (ix86_build_builtin_va_list_abi): Likewise.
2719         (setup_incoming_varargs_64): Likewise.
2720         (is_va_list_char_pointer): Likewise.
2721         (ix86_init_machine_status): Likewise.
2722         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
2723         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
2724         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
2725         (ix86_function_abi): Make it static and return enum calling_abi.
2726         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
2727         with ix86_abi.
2728         (ix86_fn_abi_va_list): Updated.
2729
2730         * config/i386/i386.h (ix86_abi): New.
2731         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
2732         (CONDITIONAL_REGISTER_USAGE): Likewise.
2733         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
2734         (machine_function): Likewise.
2735
2736         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
2737         with ix86_abi.
2738         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
2739         (STACK_BOUNDARY): Likewise.
2740         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
2741
2742         * config/i386/i386.opt (mabi=): New.
2743
2744         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
2745         return enum calling_abi.
2746         (ix86_function_type_abi): Likewise.
2747         (ix86_function_abi): Removed.
2748
2749         * doc/invoke.texi: Document -mabi= option for x86.
2750
2751 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2752
2753         * builtins.c (real_dconstp): Delete.
2754         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
2755
2756 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
2757             Jakub Jelinek  <jakub@redhat.com>
2758
2759         PR debug/37959
2760         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
2761         (gen_subprogram_die): When a function is explicit, generate the
2762         DW_AT_explicit attribute.
2763         * langhooks.h (struct lang_hooks_for_decls): Add
2764         function_decl_explicit_p langhook.
2765         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
2766         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
2767
2768 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
2769
2770         * builtins.c (fold_builtin_memory_op): Optimize memmove
2771         into memcpy if we can prove source and destination don't overlap.
2772
2773         * tree-inline.c: Include gt-tree-inline.h.
2774         (clone_fn_id_num): New variable.
2775         (clone_function_name): New function.
2776         (tree_function_versioning): Use it.
2777         * Makefile.in (GTFILES): Add tree-inline.c.
2778
2779 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
2780
2781         * BASE-VER: Change to 4.5.0.
2782
2783 2009-03-27  Xinliang David Li  <davidxl@google.com>
2784
2785         PR tree-optimization/39557
2786         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
2787
2788 2009-03-27  Xinliang David Li  <davidxl@google.com>
2789
2790         PR tree-optimization/39548
2791         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
2792         candidate check.
2793
2794 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2795
2796         * c-common.c (pointer_int_sum): Use %wd on return from
2797         tree_low_cst.
2798
2799 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2800
2801         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
2802         on return from tree_low_cst.
2803
2804 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2805
2806         PR c++/36799
2807         * ginclude/stdarg.h (va_copy): Define also for
2808         __GXX_EXPERIMENTAL_CXX0X__.
2809
2810 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2811
2812         PR c++/35652
2813         * builtins.h (c_strlen): Do not warn here.
2814         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2815         * c-common.c (pointer_int_sum): Take an explicit location.
2816         Warn about offsets out of bounds.
2817         * c-common.h (pointer_int_sum): Adjust declaration.
2818
2819 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2820
2821         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
2822         markup glitch.
2823
2824 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
2825
2826         PR c++/39554
2827         * opts.c (warn_if_disallowed_function_p): Don't assume
2828         get_callee_fndecl must return non-NULL.
2829
2830 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2831
2832         PR rtl-optimization/39522
2833         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
2834         when reg_reloaded_valid is set.
2835
2836 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2837
2838         * config/spu/divv2df3.c: New file.
2839         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
2840         (DPBIT_FUNCS): Filter out _div_df.
2841
2842 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
2843
2844         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
2845         a jump insn, count that jump in the distance to the loop start.
2846
2847 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2848
2849         PR target/39523
2850         * config/sh/sh.c (calc_live_regs): Fix condition for global
2851         registers except PIC_OFFSET_TABLE_REGNUM.
2852
2853 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
2854
2855         PR/39518
2856         * doc/invoke.texi (-mconsole): New.
2857         (-mcygwin): New.
2858         (-mno-cygwin): New.
2859         (-mdll): New.
2860         (-mnop-fun-dllimport): New.
2861         (-mthread): New.
2862         (-mwin32): New.
2863         (-mwindows): New.
2864         (sub section "i386 and x86-64 Windows Options"): New.
2865
2866 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
2867
2868         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
2869         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
2870
2871 2009-03-25  Richard Guenther  <rguenther@suse.de>
2872
2873         PR middle-end/39497
2874         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
2875         of -Wno-error.
2876
2877 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
2878
2879         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
2880         neither of haifa/selective schedulers are working.
2881
2882 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2883
2884         * doc/invoke.texi (Debugging Options): Fix description of
2885         -fno-merge-debug-strings.
2886
2887 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
2888
2889         * config/cris/libgcc.ver: New version-script.
2890         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
2891
2892         * configure.ac <GAS features, nop mnemonic>: Add pattern
2893         crisv32-*-* for "nop".
2894         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
2895         * configure: Regenerate.
2896
2897 2009-03-24  Ira Rosen  <irar@il.ibm.com>
2898
2899         PR tree-optimization/39529
2900         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
2901         mark_sym_for_renaming for the tag copied to the new vector
2902         pointer.
2903
2904 2009-03-24  Arthur Loiret  <aloiret@debian.org>
2905
2906         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
2907         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
2908         EXTRA_SPEC_FUNCTIONS.
2909         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
2910         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
2911         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
2912         -march and -mtune options.
2913
2914 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
2915
2916         * config/m68k/t-rtems: Add m5329 multilib.
2917
2918 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
2919             Jakub Jelinek  <jakub@redhat.com>
2920
2921         PR debug/39524
2922         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
2923         nodes.
2924
2925 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2926
2927         PR c/39495
2928         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
2929         instead of c_parser_expression_conv, if original_code isn't one of the
2930         4 allowed comparison codes, fail.
2931
2932 2009-03-23  Richard Guenther  <rguenther@suse.de>
2933
2934         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
2935         * tree.h (struct tree_type): Likewise.
2936         * reload.h (struct insn_chain): Likewise.
2937         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
2938         * function.h (struct function): Likewise.
2939         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
2940
2941 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2942
2943         PR tree-optimization/39516
2944         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
2945
2946 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
2947
2948         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
2949         should be set true if BITS_PER_WORD of target is bigger than 32
2950
2951 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
2952
2953         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
2954         Translate -B-options to -rpath-link.  Correct existing
2955         rpath-link and conditionalize on !nostdlib.
2956
2957 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2958
2959         * doc/extend.texi (Function Attributes, Variable Attributes):
2960         Fix typos.
2961         * doc/invoke.texi (Debugging Options, Optimize Options)
2962         (i386 and x86-64 Options, MCore Options): Likewise.
2963
2964 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
2965
2966         PR debug/37890
2967         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
2968         it for block local namespace aliases.
2969         (gen_decl_die): Pass context_die to gen_namespace_die.
2970
2971 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
2972
2973         PR c/39495
2974         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
2975         minimum or maximum value.
2976
2977 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
2978
2979         * reginfo.c (globalize_reg): Recompute derived reg sets.
2980
2981 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
2982
2983         PR target/39063
2984         * libgcc2.c (mprotect): Do not use signed arguments for
2985         VirtualProtect, use DWORD arguments.  Also fix the 'may
2986         be used uninitialized' warning for the np variable.
2987
2988 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
2989
2990         PR target/39496
2991         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
2992         functions using regparm calling conventions when not optimizing.
2993         (ix86_function_sseregparm): Similarly for sseregparm calling
2994         conventions.
2995
2996 2009-03-19  Li Feng  <nemokingdom@gmail.com>
2997
2998         PR middle-end/39500
2999         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
3000         dependence if the first conflict is after niter iterations.
3001
3002 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
3003
3004         PR middle-end/38609
3005         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
3006         functions with dynamic stack-pointer adjustments.
3007
3008 2009-03-19  Ben Elliston  <bje@au.ibm.com>
3009
3010         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
3011         option; change to -msdata=data.
3012
3013 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3014
3015         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
3016         and -fopenmp.
3017
3018 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
3019
3020         PR target/35180
3021         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
3022
3023 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
3024
3025         * doc/invoke.texi (Code Gen Options): Expand discussion of
3026         -fno-common.
3027
3028 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
3029
3030         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
3031         * matrix-reorg.c (struct matrix_info): Likewise.
3032         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
3033         * rtl.h (struct mem_attrs): Likewise.
3034         * df.h (struct df): Likewise.
3035         * tree-data-ref.h (struct data_dependence_relation): Likewise.
3036         * ira-int.h (struct ira_allocno): Likewise.
3037         * df-scan.c (struct df_collection_rec): Likewise.
3038         * ira.c (struct equivalence): Likewise.
3039         * function.c (struct temp_slot): Likewise.
3040         * cfgloop.h (struct loop): Likewise.
3041
3042         PR debug/39485
3043         * function.c (use_register_for_decl): When not optimizing, disregard
3044         register keyword for variables with types containing methods.
3045
3046 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
3047
3048         PR middle-end/39447
3049         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
3050         (is_simple_operand): Call contains_component_ref_p before calling data
3051         reference analysis that would fail on COMPONENT_REFs.
3052
3053         * tree-vrp.c (search_for_addr_array): Fix formatting.
3054
3055 2009-03-18  Richard Guenther  <rguenther@suse.de>
3056
3057         * tree-vect-transform.c (vect_loop_versioning): Fold the
3058         generated comparisons.
3059         * tree-vectorizer.c (set_prologue_iterations): Likewise.
3060         (slpeel_tree_peel_loop_to_edge): Likewise.
3061
3062 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3063
3064         PR middle-end/37805
3065         * opts.c (print_specific_help): In addition to `undocumented',
3066         accept `separate' and `joined' flags if passed alone.  Describe
3067         output by the first matched one of those.
3068         (common_handle_option): Skip over empty strings.
3069         * gcc.c (display_help): Fix help string for `--help='.
3070         * doc/invoke.texi (Option Summary, Overall Options): With
3071         `--help=', classes and qualifiers can both be repeated, but
3072         only the latter can be negated.  One should not pass only
3073         negated qualifiers.  Fix markup and examples.
3074
3075         Revert
3076         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
3077         PR middle-end/37805
3078         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3079         and -fhelp=separate.
3080
3081 2009-03-17  Jing Yu  <jingyu@google.com>
3082
3083         PR middle-end/39378
3084         * function.h (struct rtl_data): Move is_thunk from here...
3085         (struct function): ...to here.
3086         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
3087         * varasm.c (assemble_start_function): Change is_thunk from crtl to
3088         cfun.
3089         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
3090         cfun.
3091         (alpha_does_function_need_gp, alpha_start_function): Likewise.
3092         (alpha_output_function_end_prologue): Likewise.
3093         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
3094         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
3095         (rs6000_output_function_epilogue): Likewise.
3096         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
3097
3098 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
3099
3100         PR target/39482
3101         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
3102         from different units in a single alternative.
3103         (*truncdfsf_i387): Ditto.
3104         (*truncxfsf2_mixed): Ditto.
3105         (*truncxfdf2_mixed): Ditto.
3106
3107 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
3108
3109         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
3110         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
3111
3112         PR debug/39474
3113         * tree-ssa-live.c (remove_unused_locals): Don't remove local
3114         unused non-artificial variables when not optimizing.
3115
3116         PR debug/39471
3117         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
3118         DW_TAG_imported_module even if decl is IMPORTED_DECL with
3119         NAMESPACE_DECL in its DECL_INITIAL.
3120
3121         PR middle-end/39443
3122         * optabs.c (set_user_assembler_libfunc): New function.
3123         * expr.h (set_user_assembler_libfunc): New prototype.
3124         * c-common.c: Include libfuncs.h.
3125         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3126         for memcmp, memset, memcpy, memmove and abort.
3127         * Makefile.in (c-common.o): Depend on libfuncs.h.
3128
3129         PR debug/39412
3130         * dwarf2out.c (gen_inlined_enumeration_type_die,
3131         gen_inlined_structure_type_die, gen_inlined_union_type_die,
3132         gen_tagged_type_instantiation_die): Removed.
3133         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3134         do nothing.
3135
3136 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
3137
3138         PR testsuite/38526
3139         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3140         its use.
3141         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3142         (check-parallel-%): Ditto.
3143         (check-consistency): Ditto.
3144
3145 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
3146
3147         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3148         local variable rhs by NULL_TREE.
3149
3150 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3151
3152         PR target/39477
3153         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
3154
3155 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3156
3157         PR target/39476
3158         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
3159
3160 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3161
3162         PR target/39473
3163         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3164         for ms->sysv ABI calls only in 64bit mode.
3165
3166         * config/i386/i386.md (untyped_call): Support 32bit.
3167
3168 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3169
3170         * doc/extend.texi: Replace x86_65 with x86_64.
3171
3172 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
3173
3174         PR tree-optimization/39455
3175         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3176         mismatches for POINTER_TYPE_P (type).
3177         (number_of_iterations_le): Likewise.
3178
3179 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
3180
3181         * config/picochip/picochip.c: Removed profiling support.
3182         * config/picochip/picochip.md: Removed profiling instruction.
3183         * config/picochip/picochip.h: Removed profiling builtin.
3184
3185 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
3186
3187         * doc/install.texi (--with-host-libstdcxx): Document.
3188
3189 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
3190
3191         PR target/34299
3192         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3193         generate a warning if the function name does not begin with
3194         "__vector" and the function has either the 'signal' or 'interrupt'
3195         attribute, from here to ...
3196         (avr_declare_function_name): ...here. New function.
3197         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3198         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3199
3200 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
3201
3202         PR bootstrap/39454
3203         * cse.c (fold_rtx): Don't modify original const_arg1 when
3204         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3205         separate variable instead.
3206         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3207         from out of range shift counts.
3208         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3209
3210 2008-03-13  Catherine Moore  <clm@codesourcery.com>
3211
3212         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
3213         diagnostic.h with $(DIAGNOSTIC_H).
3214
3215 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3216
3217         PR target/39431
3218         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3219         predicate.
3220         * config/i386/sync.md (sync_compare_and_swap<mode>,
3221         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3222         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3223         into a register.
3224         (sync_double_compare_and_swapdi_pic,
3225         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3226         cmpxchg8b_pic_memory_operand instead of just memory_operand.
3227
3228 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3229
3230         PR target/39445
3231         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
3232
3233 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3234
3235         PR target/39327
3236         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3237         (avx_addsubv4df3): Likewise.
3238         (*avx_addsubv4sf3): Likewise.
3239         (sse3_addsubv4sf3): Likewise.
3240
3241 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3242
3243         PR target/38824
3244         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
3245
3246 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3247
3248         PR debug/39432
3249         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3250         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3251         registers for allocnos created from user-defined variables.
3252
3253 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3254
3255         PR target/39181
3256         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
3257         of non-integer mode as well.
3258
3259 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
3260
3261         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
3262         for functions for which the parameter types are unknown.
3263
3264 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
3265
3266         PR target/39137
3267         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
3268         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
3269         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
3270         * config/i386/i386.c (ix86_local_alignment): For
3271         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
3272         long long variables on the stack to avoid dynamic realignment.
3273         Allow the first argument to be a decl rather than type.
3274         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
3275
3276 2009-03-11  Nick Clifton  <nickc@redhat.com>
3277
3278         PR target/5362
3279         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
3280         options.
3281         Add description to mno-lsim option.
3282         * config/mcore/mcore.h: Remove comment about deprecated m4align
3283         option.
3284         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
3285         * doc/invoke.texi: Add description of mno-lsim and
3286         mstack-increment options.
3287
3288         * config/fr30/fr30.opt: Document the -mno-lsim option.
3289         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
3290         and -mno-lsim options.
3291
3292 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3293
3294         * fold-const.c (fold_comparison): Only call fold_inf_compare
3295         if the mode supports infinities.
3296
3297 2009-03-11  Jason Merrill  <jason@redhat.com>
3298
3299         PR debug/39086
3300         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3301         end already did.  Notice GIMPLE_CALL modifications of the result.
3302         Don't copy debug information from an ignored decl or a decl from
3303         another function.
3304
3305 2009-03-10  Richard Guenther  <rguenther@suse.de>
3306             Nathan Froyd  <froydnj@codesourcery.com>
3307
3308         PR middle-end/37850
3309         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
3310         (__divMODE3): Likewise.
3311
3312 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
3313
3314         PR tree-optimization/39394
3315         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3316         DECL_SIZE_UNIT of variable length FIELD_DECLs.
3317
3318 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3319
3320         * recog.c (verfiy_changes): Disallow renaming of hard regs in
3321         inline asms for register asm ("") declarations.
3322
3323 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3324
3325         * fold-const.c (fold_unary): Fix comment.
3326
3327 2009-03-07  Jan Hubicka  <jh@suse.cz>
3328
3329         PR target/39361
3330         * tree-inline.c (setup_one_parameter): Do replacement of const
3331         argument by constant in SSA form.
3332
3333 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3334
3335         PR middle-end/38028
3336         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3337         determine alignment passed to assign_stack_local.
3338         (assign_parms_unsplit_complex): Likewise.
3339         * except.c (sjlj_build_landing_pads): Likewise.
3340
3341 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3342
3343         PR middle-end/39360
3344         * tree-flow.h (add_referenced_var): Return bool instead of void.
3345         * tree-dfa.c (add_referenced_var): Return result of
3346         referenced_var_check_and_insert call.
3347         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3348         of referenced_var_check_and_insert.
3349
3350         PR debug/39372
3351         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
3352         (gen_variable_die): Emit DW_AT_location on abstract static variable's
3353         DIE, don't emit it if abstract origin already has it.
3354         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
3355         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
3356
3357 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3358
3359         * genpreds.c (needs_variable): Fix parentheses at variable name
3360         detection.
3361         (write_tm_constrs_h): Indent generated code.
3362
3363 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3364
3365         * doc/extend.texi (Function Attributes): Add documentation
3366         for isr attributes.
3367
3368 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3369
3370         PR debug/39387
3371         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
3372         take locus from its DECL_SOURCE_LOCATION instead of input_location.
3373
3374 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3375
3376         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
3377         the loop as bad.
3378
3379 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
3380
3381         PR debug/39379
3382         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
3383         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
3384
3385 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
3386
3387         * config/i386/i386.md (R8_REG, R9_REG): New constants.
3388         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
3389         constants instead of magic numbers.
3390         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3391         (QI_REG_P): Ditto.
3392         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
3393         (x86_64_ms_abi_int_parameter_registers): Ditto.
3394         (x86_64_int_return_registers): Ditto.
3395         (ix86_maybe_switch_abi): Ditto.
3396         (ix86_expand_call): Ditto for clobbered_registers array.
3397         (ix86_hard_regno_mode_ok): Ditto.
3398         (x86_extended_QIreg_mentioned_p): Ditto.
3399
3400 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
3401
3402         PR tree-optimization/39349
3403         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
3404
3405         * combine.c (gen_lowpart_for_combine): Use omode when generating
3406         clobber.
3407
3408 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
3409
3410         PR rtl-optimization/39235
3411         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
3412
3413 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3414
3415         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
3416
3417 2009-03-04  Richard Guenther  <rguenther@suse.de>
3418
3419         PR tree-optimization/39362
3420         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
3421         that occur in abnormal PHIs should be varying.
3422
3423 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3424
3425         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
3426         Extend comments.
3427         (simple_iv):  Take loop as an argument instead of statement.
3428         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3429         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
3430         to simple_iv.
3431         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
3432         Ditto.
3433         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
3434         * matrix-reorg.c (analyze_transpose): Ditto.
3435         * tree-data-ref.c (dr_analyze_innermost): Ditto.
3436         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3437         * tree-predcom.c (ref_at_iteration): Ditto.
3438         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
3439
3440 2009-03-04  Richard Guenther  <rguenther@suse.de>
3441
3442         PR tree-optimization/39358
3443         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
3444         escaped_id and callused_id.
3445         (solve_graph): Likewise.
3446
3447 2009-03-04  Richard Guenther  <rguenther@suse.de>
3448
3449         PR tree-optimization/39339
3450         * tree-sra.c (try_instantiate_multiple_fields): Make it
3451         no longer ICE on the above.
3452
3453 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
3454
3455         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
3456         that fits within Pmode.
3457
3458 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3459
3460         PR middle-end/10109
3461         * tm.texi (LIBCALL_VALUE): Update description.
3462
3463 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3464
3465         PR middle-end/34443
3466         * doc/extend.texi (section): Update description.
3467
3468 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
3469
3470         PR middle-end/39345
3471         * tree-inline.c (remapped_type): New.
3472         (can_be_nonlocal): Call remapped_type instead of remap_type.
3473
3474 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3475
3476         PR fortran/39354
3477         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
3478         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
3479
3480 2009-03-03  Richard Guenther  <rguenther@suse.de>
3481
3482         PR middle-end/39272
3483         * tree.c (tree_nonartificial_location): New function.
3484         * tree.h (tree_nonartificial_location): Declare.
3485         * builtins.c (expand_builtin_memory_chk): Provide location
3486         of the call location for artificial function pieces.
3487         (maybe_emit_chk_warning): Likewise.
3488         (maybe_emit_sprintf_chk_warning): Likewise.
3489         (maybe_emit_free_warning): Likewise.
3490         * expr.c (expand_expr_real_1): Likewise.
3491
3492 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3493
3494         PR tree-optimization/39343
3495         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
3496         COMPONENT_REF t has ARRAY_TYPE.
3497
3498 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3499
3500         PR middle-end/39335
3501         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
3502         when the type precision of the induction variable should be
3503         larger than the type precision of nit.
3504         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
3505         * graphite.c (graphite_loop_normal_form): Same.
3506         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
3507
3508 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
3509
3510         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
3511         (*call_1_rex64_ms_sysv): Use named constants instead of magic
3512         numbers to describe clobbered registers.
3513         (*call_value_0_rex64_ms_sysv): Ditto.
3514         * config/i386/mmx.md (mmx_emms): Ditto.
3515         (mmx_femms): Ditto.
3516
3517 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
3518
3519         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
3520         of ABI_64.
3521
3522 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3523
3524         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
3525         (spu_section_type_flags): New function.
3526
3527 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
3528
3529         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
3530         reg_class_contents of FLOAT_REGS into a temporary.
3531
3532 2009-03-02  Richard Guenther  <rguenther@suse.de>
3533             Ira Rosen  <irar@il.ibm.com>
3534
3535         PR tree-optimization/39318
3536         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
3537         information to the vectorized statement.
3538
3539 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
3540
3541         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
3542         variable.  Use defined names instead of magic constants for REX SSE
3543         registers.
3544
3545 2009-03-01  Richard Guenther  <rguenther@suse.de>
3546
3547         PR tree-optimization/39331
3548         * omp-low.c (lower_send_shared_vars): Do not receive new
3549         values for the reference of DECL_BY_REFERENCE parms or results.
3550
3551 2009-03-01  Jan Hubicka  <jh@suse.cz>
3552
3553         PR debug/39267
3554         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
3555         BLOCK_NONLOCALIZED_VAR): New macros.
3556         (tree_block): Add nonlocalized_vars.
3557         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
3558         gen_decl_die): Add origin argument.  Allow generation of die with
3559         origin at hand only.
3560         (gen_member_die, gen_type_die_with_usage, force_decl_die,
3561         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
3562         of gen_*.
3563         (gen_block_die): Fix checking for unused blocks.
3564         (process_scope_var): Break out from .... ; work with origins only.
3565         (decls_for_scope) ... here; process nonlocalized list.
3566         (dwarf2out_ignore_block): Look for nonlocalized vars.
3567         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
3568         vars.
3569         (dump_scope_block): Dump them.
3570         * tree-inline.c (remap_decls): Handle nonlocalized vars.
3571         (remap_block): Likewise.
3572         (can_be_nonlocal): New predicate.
3573         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
3574
3575 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3576
3577         * configure: Regenerate.
3578
3579 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3580
3581         * optc-gen.awk: No need to duplicate option flags twice.
3582         Reuse help texts for duplicate options which do not have any.
3583
3584         * gcc.c (display_help): Document --version.
3585
3586         * gcc.c (main): If print_help_list and verbose_flag, ensure
3587         driver output comes before subprocess output.
3588
3589         * optc-gen.awk: Assign all remaining fields to help string,
3590         space-separated, for multi-line help in *.opt.
3591
3592         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
3593         -Wno-pedantic-ms-format is for MinGW targets only.
3594
3595         * doc/options.texi (Option file format): Fix bad indentation,
3596         restoring dropped sentence.
3597
3598 2009-02-28  Jan Hubicka  <jh@suse.cz>
3599
3600         * tree-inline.c (tree_function_versioning): Output debug info.
3601
3602 2009-02-28  Jan Hubicka  <jh@suse.cz>
3603
3604         PR debug/39267
3605         * tree-inline.c (setup_one_parameter): Do not copy propagate
3606         arguments when not optimizing.
3607
3608 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
3609
3610         PR target/39327
3611         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3612         (avx_addsubv4df3): Likewise.
3613         (*avx_addsubv4sf3): Likewise.
3614         (sse3_addsubv4sf3): Likewise.
3615         (*avx_addsubv2df3): Likewise.
3616         (sse3_addsubv2df3): Likewise.
3617         (avx_unpckhps256): Correct item selectors.
3618         (avx_unpcklps256): Likewise.
3619         (avx_unpckhpd256): Likewise.
3620         (avx_unpcklpd256): Likewise.
3621
3622 2009-02-28  Jan Hubicka  <jh@suse.cz>
3623
3624         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
3625         static vars.
3626         (copy_arguments_for_versioning): If var is declared don't declare it.
3627         (tree_function_versioning): First setup substitutions and then copy
3628         args.
3629
3630 2009-02-27  Jan Hubicka  <jh@suse.cz>
3631
3632         PR debug/39267
3633         * cgraph.h (varpool_output_debug_info): Remove.
3634         * cgraphunit.c (varpool_output_debug_info): Remove.
3635         * dwarf2out.c (deferred_locations_struct): New struct
3636         (deferred_locations): New type.
3637         (deferred_locations_list): New static var.
3638         (deffer_location): New function.
3639         (gen_variable_die): Use it.
3640         (decls_for_scope): Output info on local static vars.
3641         (dwarf2out_finish): Process deferred locations.
3642         * varpool.c (varpool_output_debug_info): Remove.
3643
3644 2009-02-27  Jan Hubicka  <jh@suse.cz>
3645
3646         PR debug/39267
3647         * tree.h (TREE_PROTECTED): Fix comment.
3648         (BLOCK_HANDLER_BLOCK): Remove.
3649         (struct tree_block): Remove handler_block add body_block.
3650         (inlined_function_outer_scope_p): New.
3651         (is_body_block): Remove.
3652         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
3653         * dwarf2out.c (is_inlined_entry_point): Remove.
3654         (add_high_low_attributes): Use inlined_function_outer_scope_p.
3655         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
3656         code.
3657         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
3658         * gimplify.c (gimplify_expr): Gimplify body blocks.
3659         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
3660         block with multiple subblocks.
3661         (dump_scope_block): Prettier output; dump more flags and info.
3662         (dump_scope_blocks): New.
3663         (remove_unused_locals): Use dump_scope_blocks.
3664         * tree-flow.h (dump_scope_blocks): Declare.
3665         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
3666         * stmt.c (is_body_block): Remove.
3667         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
3668         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
3669
3670 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
3671
3672         PR middle-end/39308
3673         * graphite.c (graphite_loop_normal_form): Do not call 
3674         number_of_iterations_exit from a gcc_assert.
3675
3676 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3677
3678         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
3679         jumps if COND is NULL.
3680         (find_cond_jump): New function.
3681         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
3682         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
3683
3684 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
3685
3686         * config/alpha/alpha.h (alpha_expand_mov): Return false if
3687         force_const_mem returns NULL_RTX.
3688
3689 2009-02-26  Jan Hubicka  <jh@suse.cz>
3690
3691         PR debug/39267
3692         * cgraph.h (varpool_output_debug_info): Remove.
3693         * cgraphunit.c (varpool_output_debug_info): Remove.
3694         * dwarf2out.c (deferred_locations_struct): New struct
3695         (deferred_locations): New type.
3696         (deferred_locations_list): New static var.
3697         (deffer_location): New function.
3698         (gen_variable_die): Use it.
3699         (decls_for_scope): Output info on local static vars.
3700         (dwarf2out_finish): Process deferred locations.
3701         * varpool.c (varpool_output_debug_info): Remove.
3702
3703 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
3704
3705         PR rtl-optimization/39241
3706         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
3707         to subreg_offset_representable_p.
3708
3709 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
3710
3711         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
3712         execute function prototype.  Get f and nregs from max_reg_num
3713         and get_insns.  Remove the first backward pass as it's dead,
3714         guard the forward pass by flag_expensive_optimizations.
3715         (rest_of_handle_regmove): Delete.
3716         (pass_regmove): Replace it with regmove_optimize.
3717
3718 2009-02-25  Martin Jambor  <mjambor@suse.cz>
3719
3720         PR tree-optimization/39259
3721         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
3722         calls_alloca function flags.
3723         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
3724         calls are detected.
3725
3726 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
3727
3728         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
3729         flags_set_1_rtx, flags_set_1_set): Delete.
3730         (regmove_optimize): Do not call mark_flags_life_zones.
3731
3732 2009-02-24  Julian Brown  <julian@codesourcery.com>
3733
3734         PR target/35965
3735         * config/arm/arm.c (require_pic_register): Only set
3736         cfun->machine->pic_reg once per function.
3737
3738 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
3739
3740         * doc/invoke.texi (Link Options): Document an easier way to pass
3741         options that take arguments to the GNU linker using -Xlinker and -Wl.
3742
3743 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
3744
3745         PR target/33785
3746         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
3747
3748 2009-02-24  Richard Guenther  <rguenther@suse.de>
3749
3750         PR debug/39285
3751         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
3752
3753 2009-02-24  Richard Guenther  <rguenther@suse.de>
3754             Zdenek Dvorak  <ook@ucw.cz>
3755
3756         PR tree-optimization/39233
3757         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
3758         from converting them to a generic type.
3759
3760 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
3761
3762         PR tree-optimization/39260
3763         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
3764         contains a condition with a real type.
3765         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
3766
3767 2009-02-23  Jason Merrill  <jason@redhat.com>
3768
3769         PR c++/38880
3770         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
3771         narrowing_initializer_constant_valid_p.
3772         (narrowing_initializer_constant_valid_p): Don't return 
3773         null_pointer_node for adding a pointer to itself.
3774
3775 2009-02-23  Jan Hubicka  <jh@suse.cz>
3776
3777         PR c/12245
3778         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
3779         resizing.
3780
3781 2009-02-23  Jan Hubicka  <jh@suse.cz>
3782
3783         PR tree-optimization/37709
3784         * tree.c (block_ultimate_origin): Move here from dwarf2out.
3785         * tree.h (block_ultimate_origin): Declare.
3786         * dwarf2out.c (block_ultimate_origin): Move to tree.c
3787         * tree-ssa-live.c (remove_unused_scope_block_p):
3788         Eliminate blocks containig no instructions nor live variables nor
3789         nested blocks.
3790         (dump_scope_block): New function.
3791         (remove_unused_locals): Enable removal of dead blocks by default;
3792         enable dumping at TDF_DETAILS.
3793
3794 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
3795
3796         * config/i386/i386.c (classify_argument): Don't allow COImode
3797         and OImode.
3798         (function_arg_advance_32): Don't allow OImode.
3799         (function_arg_32): Likewise.
3800         (function_value_32): Likewise.
3801         (return_in_memory_32): Likewise.
3802         (function_arg_64): Remove OImode comment.
3803
3804 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
3805
3806         PR target/39261
3807         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3808         ix86_expand_vector_set for V4DImode in 64bit mode only.
3809         (ix86_expand_vector_init_one_var): Likewise.
3810
3811 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
3812
3813         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
3814
3815 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
3816
3817         PR bootstrap/39257
3818         * loop-iv.c: Revert last change.
3819         * emit-rtl.c: Likewise.
3820
3821 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
3822
3823         PR target/39256
3824         * config/i386/i386.c (type_natural_mode): Remove an extra
3825         space in the warning message.
3826         (function_value_32): Handle 32-byte vector modes.
3827         (return_in_memory_32): Likewise.
3828
3829 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
3830
3831         * loop-iv.c (truncate_value): New function.
3832         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
3833         of lowpart_subreg.
3834         (lowpart_subreg): Move to...
3835         * emit-rtl.c: ...here.
3836
3837 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
3838
3839         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
3840         accidental and undocumented change at revision 140860.
3841
3842 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
3843
3844         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
3845         take gimple_seq * arguments.
3846         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
3847         types_compatible_p langhook.
3848
3849 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
3850             Joseph Myers  <joseph@codesourcery.com>
3851
3852         * config/arm/arm.c (arm_builtin_va_list): New function.
3853         (arm_expand_builtin_va_start): Likewise.
3854         (arm_gimplify_va_arg_expr): Likewise.
3855         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
3856         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
3857         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
3858         (va_list_type): New variable.
3859         (arm_mangle_type): Mangle va_list_type appropriately.
3860
3861 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
3862
3863         PR middle-end/39157
3864         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
3865         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
3866         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
3867         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
3868         parameter to 1000 for -O1 by default.
3869         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
3870         parameter.
3871         * loop-invariant.c: Include params.h.
3872         (move_loop_invariants): Don't call move_single_loop_invariants on
3873         very large loops.
3874
3875 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
3876
3877         * calls.c (emit_library_call_value_1): Use slot_offset instead of
3878         offset when calculating bounds for indexing stack_usage_map.  Fixes
3879         a buffer overflow with certain target setups.
3880
3881 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
3882
3883         PR target/39240
3884         * calls.c (expand_call): Clear try_tail_call if caller and callee
3885         disagree in promotion of function return value.
3886
3887 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
3888
3889         PR target/39175
3890         * c-common.c (c_determine_visibility): If visibility changed and
3891         DECL_RTL has been already set, call make_decl_rtl to update symbol
3892         flags.
3893
3894 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
3895
3896         PR c++/39188
3897         * varasm.c (assemble_variable): Don't check DECL_NAME when
3898         globalizing a variable.
3899
3900 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
3901
3902         PR c/38483
3903         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
3904         expression before any __builtin_trap call.
3905         * c-typeck.c (build_function_call): Convert and check function
3906         arguments before generating a call to a trap.  Evaluate the
3907         function arguments before the trap.
3908
3909 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
3910
3911         PR target/39228
3912         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
3913         (UNSPEC_FXAM_MEM): New unspec.
3914         (fxam<mode>2_i387_with_temp): New insn and split pattern.
3915         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
3916         memory using fxam<mode>2_i387_with_temp to remove excess precision.
3917
3918 2009-02-19  Richard Guenther  <rguenther@suse.de>
3919
3920         PR tree-optimization/39207
3921         PR tree-optimization/39074
3922         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
3923         storedanything_tree): New.
3924         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
3925         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
3926         (build_succ_graph): Add edges from STOREDANYTHING to all
3927         non-direct nodes.
3928         (init_base_vars): Initialize STOREDANYTHING.
3929         (compute_points_to_sets): Free substitution info after
3930         building the succ graph.
3931         (ipa_pta_execute): Likewise.
3932
3933         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
3934         field.
3935         (do_ds_constraint): Do not add to special var or non-pointer
3936         field solutions.
3937         (type_could_have_pointers): Split out from ...
3938         (could_have_pointers): ... here.  For arrays use the element type.
3939         (create_variable_info_for): Initialize may_have_pointers.
3940         (new_var_info): Likewise.
3941         (handle_lhs_call): Make the HEAP variable unknown-sized.
3942         (intra_create_variable_infos): Use a type with pointers for
3943         PARM_NOALIAS, make it unknown-sized.
3944
3945 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
3946
3947         PR target/39224
3948         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
3949
3950 2009-02-18  Jason Merrill  <jason@redhat.com>
3951
3952         PR target/39179
3953         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
3954         value if DECL_EXTERNAL.
3955         * tree-sra.c (sra_walk_gimple_assign): Likewise.
3956         * target.h (gcc_target::binds_local_p): Clarify "module".
3957         * tree.h (TREE_PUBLIC): Clarify "module".
3958
3959 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
3960
3961         PR target/38891
3962         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
3963         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
3964
3965 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
3966
3967         PR target/39082
3968         * c.opt (Wabi): Support C and ObjC.
3969         (Wpsabi): New.
3970
3971         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
3972
3973         * config/i386/i386.c (classify_argument): Warn once about the ABI
3974         change when passing union with long double.
3975
3976         * doc/invoke.texi: Update -Wabi for warning psABI changes.
3977
3978 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
3979
3980         PR c/35447
3981         * c-parser.c (c_parser_compound_statement): Always enter and leave
3982         a scope.
3983
3984 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3985
3986         PR target/34587
3987         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
3988
3989 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
3990
3991         PR tree-optimization/36922
3992         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
3993         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
3994         Likewise.
3995
3996 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
3997
3998         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
3999         to 0 for EABI64.
4000
4001 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4002
4003         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
4004
4005 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
4006
4007         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
4008         tree sharing.
4009
4010 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
4011             Richard Sandiford  <rdsandiford@googlemail.com>
4012
4013         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
4014         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
4015         (loongson_biadd): ...this.
4016
4017 2009-02-17  Richard Guenther  <rguenther@suse.de>
4018
4019         PR tree-optimization/39202
4020         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
4021         a var make sure to follow existing collapses.
4022
4023 2009-02-17  Richard Guenther  <rguenther@suse.de>
4024
4025         PR middle-end/39214
4026         * langhooks.c (lhd_print_error_function): Check for NULL block.
4027
4028 2009-02-17  Richard Guenther  <rguenther@suse.de>
4029
4030         PR tree-optimization/39204
4031         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
4032         of the PHI arg.
4033
4034 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
4035
4036         * config/soft-fp/double.h: Update from glibc CVS.
4037
4038 2009-02-17  Richard Guenther  <rguenther@suse.de>
4039
4040         PR tree-optimization/39207
4041         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
4042         strict-aliasing warnings for pointers pointing to NULL.
4043
4044 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
4045
4046         PR c/35446
4047         * c-parser.c (c_parser_braced_init): Call pop_init_level when
4048         skipping until next close brace.
4049
4050 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
4051
4052         PR target/37049
4053         * config/i386/i386.c (ix86_expand_push): Set memory alignment
4054         to function argument boundary.
4055
4056 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
4057
4058         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
4059         in the lea_add. Reload eventually constraints it properly.
4060         * config/picochip/constraints.md : Remove the target constraint
4061         "b", since it is not needed anymore.
4062
4063 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
4064
4065         * gthr-dce.h: Uglify function parameter and local variable names.
4066         * gthr-gnat.h: Likewise.
4067         * gthr-mipssde.h: Likewise.
4068         * gthr-nks.h: Likewise.
4069         * gthr-posix95.h: Likewise.
4070         * gthr-posix.h: Likewise.
4071         * gthr-rtems.h: Likewise.
4072         * gthr-single.h: Likewise.
4073         * gthr-solaris.h: Likewise.
4074         * gthr-tpf.h: Likewise.
4075         * gthr-vxworks.h: Likewise.
4076         * gthr-win32.h: Likewise.
4077
4078 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
4079
4080         PR target/39196
4081         * config/i386/i386.md: Restrict the new peephole2 to move
4082         between MMX/SSE registers.
4083
4084 2009-02-15  Richard Guenther  <rguenther@suse.de>
4085
4086         Revert
4087         2009-02-13  Richard Guenther  <rguenther@suse.de>
4088
4089         * configure.ac: Enable LFS.
4090         * configure: Re-generate.
4091         * config.in: Likewise.
4092
4093 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4094
4095         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
4096         spu_srqwbyte, spu_srqwbytebc): Define.
4097         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
4098         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
4099         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
4100         "shrqby_<mode>"): New insn-and-split patterns.
4101         * config/spu/spu.c (expand_builtin_args): Determine and return
4102         number of operands using spu_builtin_description data.
4103         (spu_expand_builtin_1): Use it.
4104
4105 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
4106
4107         PR target/38056
4108         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
4109         TARGET_CONST_GP.
4110
4111 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4112
4113         PR target/39149
4114         * config/i386/i386.c (override_options): Correct warning
4115         messages for -malign-loops, -malign-jumps and -malign-functions.
4116
4117 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4118
4119         PR target/39152
4120         * config/i386/i386.md: Restrict the new peephole2 to move
4121         between the general purpose registers.
4122
4123 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
4124
4125         PR target/39162
4126         * config/i386/i386.c (type_natural_mode): Add a new argument.
4127         Return the original mode and warn ABI change if vector size is 32byte.
4128         (function_arg_advance): Updated.
4129         (function_arg): Likewise.
4130         (ix86_function_value): Likewise.
4131         (ix86_return_in_memory): Likewise.
4132         (ix86_sol10_return_in_memory): Likewise.
4133         (ix86_gimplify_va_arg): Likewise.
4134         (function_arg_32): Don't warn ABX ABI change here.
4135         (function_arg_64): Likewise.
4136
4137 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
4138
4139         * loop-iv.c (implies_p): In the final case, test that operands 0
4140         of the two comparisons match.
4141
4142         * config/bfin/bfin.c (find_prev_insn_start): New function.
4143         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
4144         (find_next_insn_start): Move.
4145
4146 2009-02-13  Richard Guenther  <rguenther@suse.de>
4147
4148         * configure.ac: Enable LFS.
4149         * configure: Re-generate.
4150         * config.in: Likewise.
4151
4152 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
4153
4154         PR c/35444
4155         * c-parser.c (c_parser_parms_list_declarator): Discard pending
4156         sizes on syntax error after some arguments have been parsed.
4157
4158 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4159
4160         * doc/invoke.texi (-fira): Remove.
4161
4162 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4163
4164         * caller-save.c: Replace regclass.c with reginfo.c in comments.
4165         * recog.c: Likewise.
4166         * rtl.h: Likewise.
4167
4168 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
4169
4170         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
4171         (umul_ppmm): Likewise.
4172         (count_leading_zeros): Likewise.
4173         (count_trailing_zeros): Likewise.
4174         (UMUL_TIME): Likewise.
4175
4176 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4177
4178         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
4179         soft-fp/t-softfp to tmake_file.
4180
4181         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
4182         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
4183         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
4184         IA64_BUILTIN_INFQ]: New.
4185         (ia64_init_builtins): Initialize __builtin_infq,
4186         __builtin_fabsq and __builtin_copysignq if not HPUX.
4187         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
4188         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
4189
4190         * config/ia64/lib1funcs.asm (__divtf3): Define only if
4191         SHARED is defined.
4192         (__fixtfti): Likewise.
4193         (__fixunstfti): Likewise.
4194         (__floattitf): Likewise.
4195
4196         * config/ia64/libgcc-glibc.ver: New.
4197         * config/ia64/t-fprules-softfp: Likewise.
4198         * config/ia64/sfp-machine.h: Likewise.
4199
4200         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
4201         (LIBGCC2_TF_CEXT): Likewise.
4202         (TF_SIZE): Likewise.
4203         (TARGET_INIT_LIBFUNCS): Likewise.
4204
4205         * config/ia64/t-glibc (SHLINB_MAPFILES):
4206         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
4207
4208 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
4209
4210         * config/i386/i386.c (construct_container): Rewrite processing
4211         BLKmode with X86_64_SSE_CLASS.
4212
4213 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
4214
4215         PR target/39152
4216         * config/i386/i386.md: Replace simplify_replace_rtx with
4217         replace_rtx in the new peephole2.
4218
4219 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4220
4221         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
4222         loop unrolling do not happen at -O2.
4223
4224 2009-02-12  Michael Matz  <matz@suse.de>
4225
4226         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
4227
4228 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
4229
4230         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
4231         for -g3.
4232
4233 2009-02-12  Ben Elliston  <bje@au.ibm.com>
4234
4235         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
4236         patterns when updating the back chain.  Missed in the 2009-02-10
4237         change.
4238
4239 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
4240
4241         * doc/extend.texi (Decimal Floating Types): Update identifier of
4242         draft TR and list of missing support.
4243
4244 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
4245
4246         PR middle-end/39154
4247         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
4248         bit to variable length decl's flags, add it also to its
4249         pointer replacement variable.
4250
4251 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
4252             Jakub Jelinek  <jakub@redhat.com>
4253
4254         PR target/39118
4255         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
4256         (memory_blockage): New expander.
4257         (*memory_blockage): New insn pattern.
4258         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
4259         instead of general blockage at the end of function prologue when
4260         frame pointer is used to access red zone area.  Do not emit blockage
4261         when profiling, it is emitted in generic code.
4262         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
4263         function epilogue when frame pointer is used to access red zone area.
4264
4265 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
4266
4267         PR target/38824
4268         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
4269         by arithmetic with memory operands.
4270         * config/i386/predicates.md (commutative_operator): New.
4271
4272 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
4273
4274         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
4275         bulleted lists.
4276
4277 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
4278
4279         * alias.h (record_alias_subset): Declare.
4280         * alias.c (record_alias_subset): Make global.
4281
4282 2009-02-10  Nick Clifton  <nickc@redhat.com>
4283
4284         * tree-parloops.c: Change license to GPLv3.
4285         * ipa-struct-reorg.c: Change license to GPLv3.
4286         * ipa-struct-reorg.h: Change license to GPLv3.
4287
4288 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
4289
4290         PR c/39084
4291         * c-decl.c (start_struct): Return NULL on error.
4292
4293 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
4294
4295         PR middle-end/39124
4296         * cfgloopmanip.c (remove_path): Call remove_bbs after
4297         cancel_loop_tree, not before it.
4298
4299         PR target/39139
4300         * function.h (struct function): Add has_local_explicit_reg_vars bit.
4301         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
4302         VAR_DECLs were seen.
4303         * tree-ssa-live.c (remove_unused_locals): Recompute
4304         cfun->has_local_explicit_reg_vars.
4305         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
4306         copies or clearings if cfun->has_local_explicit_reg_vars.
4307
4308 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
4309
4310         PR target/39118
4311         * config/i386/i386.c (expand_prologue): Emit blockage at the end
4312         of function prologue when frame pointer is used to access
4313         red zone area.
4314
4315 2009-02-10  Richard Guenther  <rguenther@suse.de>
4316
4317         PR middle-end/39127
4318         * gimplify.c (gimple_regimplify_operands): Always look if
4319         we need to create a temporary.
4320
4321 2009-02-10  Richard Guenther  <rguenther@suse.de>
4322
4323         PR tree-optimization/39132
4324         * tree-loop-distribution.c (todo): New global var.
4325         (generate_memset_zero): Trigger TODO_rebuild_alias.
4326         (tree_loop_distribution): Return todo.
4327
4328 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
4329
4330         PR target/39119
4331         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
4332         (x86_64_reg_class_name): Removed.
4333         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
4334         first one isn't X86_64_SSE_CLASS or any other ones aren't
4335         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
4336         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
4337         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
4338         and 3 X86_64_SSEUP_CLASS.
4339         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
4340         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
4341
4342 2009-02-10  Ben Elliston  <bje@au.ibm.com>
4343
4344         * config/rs6000/rs6000.md (allocate_stack): Always use an update
4345         form instruction to update the stack back chain word, even if the
4346         user has disabled the generation of update instructions.
4347         (movdi_<mode>_update_stack): New.
4348         (movsi_update_stack): Likewise.
4349         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
4350         always use an update form instruction to update the stack back
4351         chain word.
4352
4353 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
4354
4355         PR middle-end/38953
4356         * graphite.c (if_region_set_false_region): After moving a region in
4357         the false branch of a condition, remove the empty dummy basic block.
4358         (gloog): Remove wrong fix for PR38953.
4359
4360 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4361
4362         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
4363         generation due to implicit sign extension.
4364
4365 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
4366
4367         PR middle-end/38981
4368         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
4369         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
4370
4371 2009-02-09  Richard Guenther  <rguenther@suse.de>
4372
4373         PR middle-end/35202
4374         * convert.c (convert_to_real): Disable (float)fn((double)x)
4375         to fnf(x) conversion if errno differences may occur and
4376         -fmath-errno is set.
4377
4378 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
4379
4380         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
4381         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4382         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4383
4384 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
4385
4386         PR c/35434
4387         * c-common.c (handle_alias_attribute): Disallow attribute for
4388         anything not a FUNCTION_DECL or VAR_DECL.
4389
4390 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
4391
4392         PR c/39035
4393         * real.c (do_compare): Special-case compare of zero against
4394         decimal float value.
4395
4396 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
4397
4398         PR c/36432
4399         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
4400         as indicating flexible array members unless the field itself is
4401         being declarared as the incomplete array.
4402
4403 2009-02-06  Jan Hubicka  <jh@suse.cz>
4404
4405         PR tree-optimization/38844
4406         * ipa-inline.c (try_inline): Stop inlining recursion when edge
4407         is already inlined.
4408
4409 2009-02-06  Richard Guenther  <rguenther@suse.de>
4410
4411         PR middle-end/38977
4412         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
4413         fork because we may expand it as __gcov_fork.
4414
4415 2009-02-06  Nick Clifton  <nickc@redhat.com>
4416
4417         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
4418
4419 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
4420
4421         PR tree-optimization/35659
4422         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
4423         vn_phi_eq): Shortcut if hashcode does not match.
4424         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
4425         NULL operands.
4426         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
4427         and avoid iterative_hash_expr.
4428         (FOR_EACH_VALUE_ID_IN_SET): New.
4429         (value_id_compare): Remove.
4430         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
4431         sort expressions by value id.
4432
4433 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
4434
4435         PR target/38991
4436         * config/sh/predicates.md (general_movsrc_operand): Don't check
4437         the subreg of system registers here.
4438
4439 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
4440
4441         PR c++/39106
4442         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
4443         on the copied decl.
4444
4445 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
4446
4447         PR rtl-optimization/39110
4448         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
4449         addresses, not aligned ones.
4450
4451 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
4452             Richard Guenther  <rguenther@suse.de>
4453
4454         PR tree-optimization/39100
4455         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
4456         comment says and add edges.
4457
4458 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
4459
4460         PR c/35435
4461         * c-common.c (handle_tls_model_attribute): Ignore attribute for
4462         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
4463
4464 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de> 
4465
4466         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
4467         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
4468         register_bb_in_sese, new_sese, free_sese): Moved.
4469         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
4470         outermost_loop_in_scop, build_scop_iteration_domain,
4471         expand_scalar_variables_ssa_name, get_vdef_before_scop,
4472         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
4473         Use loop_in_sese_p instead of loop_in_scop_p.
4474         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
4475         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
4476         (scopdet_basic_block_info): Fix bug in scop detection.
4477         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
4478         eq_loop_to_cloog_loop): Remove.
4479         (nb_loops_around_loop_in_scop, nb_loop
4480         ref_nb_loops): Moved here...
4481         * graphite.h (ref_nb_loops): ... from here.
4482         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
4483         (loop_domain_dim, loop_iteration_vector_dim): Remove.
4484         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
4485         * testsuite/gcc.dg/graphite/scop-19.c: New
4486
4487 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
4488             Hans-Peter Nilsson  <hp@axis.com>
4489
4490         PR rtl-optimization/37889
4491         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
4492         Move offset handling from PLUS to before the switch.  Use new
4493         arguments when considering SYMBOL_REFs too.
4494         (rtx_addr_can_trap_p): Pass dummy offset and size.
4495         (enum may_trap_p_flags): Remove.
4496         (may_trap_p_1): Pass size from MEM_SIZE.
4497
4498         PR rtl-optimization/38921
4499         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
4500         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
4501         * rtlanal.c (may_trap_after_code_motion_p): Delete.
4502         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
4503
4504 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
4505
4506         AVX Programming Reference (January, 2009)
4507         * config/i386/sse.md (*vpclmulqdq): New.
4508
4509 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
4510
4511         PR tree-optimization/38977
4512         PR gcov-profile/38292
4513         * calls.c (special_function_p): Disregard __builtin_ prefix.
4514
4515 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
4516
4517         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
4518         non-indexable addresses even before reload.
4519
4520 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
4521
4522         PR c/29129
4523         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
4524         as having variable size.  Do not give an error for unnamed
4525         parameters with [*] declarators.  Give a warning for type names
4526         with [*] declarators and mark them as variable size.
4527         * c-parser.c (c_parser_sizeof_expression): Do not give an error
4528         for sizeof applied to [*] type names.
4529
4530 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4531
4532         PR C++/36607
4533         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
4534
4535 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
4536
4537         * gcc.c (process_command): Update copyright notice dates.
4538         * gcov.c (print_version): Likewise.
4539         * gcov-dump.c (print_version): Likewise.
4540         * mips-tfile.c (main): Likewise.
4541         * mips-tdump.c (main): Likewise.
4542
4543 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
4544
4545         PR c/35433
4546         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
4547         for composite type involving a zero-length array type.
4548
4549 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
4550
4551         PR target/35318
4552         * function.c (match_asm_constraints_1): Skip over
4553         initial optional % in the constraint.
4554
4555         PR inline-asm/39059
4556         * c-parser.c (c_parser_postfix_expression): If fixed point is not
4557         supported, don't accept FIXED_CSTs.
4558         * c-decl.c (finish_declspecs): Error if fixed point is not supported
4559         and _Sat is used without _Fract/_Accum.  Set specs->type to
4560         integer_type_node for cts_fract/cts_accum if fixed point is not
4561         supported.
4562
4563 2009-02-02  Catherine Moore  <clm@codesourcery.com>
4564
4565         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
4566
4567 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
4568
4569         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
4570         (ABI_HAS_64BIT_SYMBOLS): Use it.
4571         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
4572
4573 2009-02-02  Paul Brook  <paul@codesourcery.com>
4574
4575         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
4576
4577 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
4578
4579         PR inline-asm/39058
4580         * recog.h (asm_operand_ok): Add constraints argument.
4581         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
4582         recurse on matching constraint.
4583         (check_asm_operands): Pass constraints as 3rd argument to
4584         asm_operand_ok.  Don't look up matching constraint here.
4585         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
4586         to asm_operand_ok.
4587
4588 2009-02-02  Ben Elliston  <bje@au.ibm.com>
4589
4590         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
4591         TARGET_NARROW_VOLATILE_BITFIELD macro names.
4592
4593 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4594
4595         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
4596         information.  Remove some obsolete information.  Reorganize.
4597
4598         * config/pa/fptr.c: Revert license to GPL 2.
4599         * config/pa/milli64.S: Likewise.
4600
4601 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
4602
4603         PR target/38904
4604         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
4605         LIBRARY name in, instead of hard-coding it.
4606         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
4607         extra target make frag to tmake_files according to EH model.
4608         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
4609         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
4610         frags that define makefile variable EH_MODEL appropriately.
4611         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
4612         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
4613         to "-sjlj" according to type of EH configured.
4614         (LIBGCC_SONAME):  Concatenate it to shared library base name.
4615         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
4616         to "_sjlj" according to type of EH configured.
4617         (LIBGCC_SONAME):  Concatenate it to shared library base name.
4618         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
4619         (SHLIB_LINK):  Add missing semicolon to if-else construct.
4620         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
4621         string value of "pe_dll" command-line option.
4622         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
4623         (SHLIB_SONAME):  Use it when overriding t-cygming default.
4624         (SHLIB_IMPLIB):  Override t-cygming default.
4625         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
4626         string value of "pe_dll" command-line option.
4627
4628 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
4629
4630         PR target/38952
4631         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
4632         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
4633
4634 2009-01-31  Richard Guenther  <rguenther@suse.de>
4635
4636         PR tree-optimization/38937
4637         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
4638         computing the transitive closure.
4639
4640 2009-01-30  Richard Guenther  <rguenther@suse.de>
4641
4642         PR tree-optimization/39041
4643         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
4644         Propagate variable indices only if the types match for this stmt.
4645
4646 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
4647
4648         PR target/39013
4649         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
4650         inline but never defined.
4651
4652 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
4653
4654         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
4655         (*insv_h_di_reg_extimm): New insn.
4656         (*insv_l<mode>_reg_extimm): New insn.
4657
4658 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
4659
4660         * config/picochip/picochip.c (flag_conserve_stack): set
4661         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
4662         fconserve-stack. Reduce call-overhead used by inliner.
4663
4664 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
4665
4666         PR/38157
4667         * common.opt (flag_conserve_stack): Initialised to zero.
4668
4669 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
4670
4671         PR/39002
4672         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
4673         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
4674         method.
4675
4676 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
4677
4678         * ira-color.c (allocno_reload_assign): Update comments.
4679         * regmove.c (regmove_optimize): Likewise.
4680
4681         * ra.h: Removed.
4682
4683 2009-01-29  Robert Millan  <rmh@aybabtu.com>
4684
4685         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
4686         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
4687         `MD_UNWIND_SUPPORT'.
4688         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
4689
4690 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
4691
4692         PR tree-optimization/39007
4693         * tree-loop-distribution.c (generate_builtin): Use
4694         recompute_dominator to compute the immediate dominator of the
4695         basic block just after the loop.
4696
4697 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4698
4699         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
4700         (ASM_OUTPUT_DWARF_PCREL): Define.
4701
4702 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
4703
4704         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
4705         * doc/passes.texi: Remove entries about regclass, local-alloc, and
4706         global.  Modify entries about regmove and IRA.
4707
4708         * ra-conflict.c: Remove the file.
4709
4710         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
4711
4712         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
4713         (pass_regclass_init): Rename to pass_reginfo_init.
4714
4715         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
4716
4717         * toplev.h (flag_ira): Remove.
4718
4719         * caller-save.c (setup_save_areas): Remove flag_ira.
4720
4721         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
4722
4723         * global.c: Remove the file.
4724
4725         * opts.c (decode_options): Remove flag_ira.
4726
4727         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
4728
4729         * regmove.c: Modify file description.
4730         (find_use_as_address, try_auto_increment): Define them only if
4731         AUTO_INC_DEC is defined.
4732         (replacement_quality, replace_in_call_usage, fixup_match_1,
4733         stable_and_no_regs_but_for_p): Remove.
4734         (reg_set_in_bb): Make it static.
4735         (regmove_optimize): Remove flag_ira and code which worked for
4736         !flag_ira.
4737
4738         * local-alloc.c: Remove the file.
4739
4740         * common.opt (fira): Remove.
4741
4742         * ira.c: Include except.h.
4743         (eliminable_regset): Move from global.c.
4744         (mark_elimination): Ditto.  Remove flag_ira.
4745         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
4746         equiv_mem_modified, validate_equiv_mem_from_store,
4747         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
4748         contains_replace_regs, memref_referenced_p, memref_used_between_p,
4749         no_equiv, recorded_label_ref): Move from local-alloc.c.
4750         (update_equiv_regs): Ditto.  Make it static.
4751         (print_insn_chain, print_insn_chains): Move it from global.c.
4752         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
4753         (build_insn_chain): Ditto.  Make it static.
4754         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
4755         Rename to init_live_subregs.
4756         (gate_ira): Remove flag_ira.
4757
4758         * regclass.c: Rename reginfo.c.  Change file description.
4759         (FORBIDDEN_INC_DEC_CLASSES): Remove.
4760         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
4761         (init_reg_sets_1): Remove code for evaluation of
4762         reg_class_superclasses and losing_caller_save_reg_set.
4763         (init_regs): Remove init_reg_autoinc.
4764         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
4765         ok_for_base_p_nonstrict): Remove.
4766         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
4767         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
4768         corresponding entries.
4769         (dump_regclass, record_operand_costs, scan_one_insn,
4770         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
4771         record_address_regs, auto_inc_dec_reg_p): Remove.
4772         (gt-regclass.h): Rename to gt-reginfo.h.
4773
4774         * rtl.h (dump_global_regs, retry_global_alloc,
4775         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
4776
4777         * Makefile.in (RA_H): Remove.
4778         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
4779         Rename regclass.o to reginfo.o.
4780         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
4781         gt-reginfo.h.
4782         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
4783         (GTFILES): Rename regclass.c to reginfo.c.
4784
4785         * passes.c (init_optimization_passes): Remove pass_local_alloc and
4786         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
4787
4788         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
4789         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
4790         Remove flag_ira.
4791         (finish_spills): Ditto.  Remove code for !flag_ira.
4792         
4793 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
4794
4795         PR middle-end/35854
4796         * doc/invoke.texi (rtl debug options): Complete rewrite.
4797         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
4798         to auto_inc_dec".
4799         * mode-switching.c (pass_mode_switching): Rename pass from
4800         "mode-sw" to "mode_sw".
4801         * except.c (pass_convert_to_eh_ranges): Rename pass from
4802         "eh-ranges" to "eh_ranges".
4803         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
4804         to "subreg1".
4805                 
4806         
4807 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
4808             Alexander Monakov  <amonakov@ispras.ru>
4809
4810         PR middle-end/38857
4811         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
4812         register.
4813         (move_exprs_to_boundary): Change return type and pass through
4814         should_move from move_op.  Relax assert.  Update usage ...
4815         (schedule_expr_on_boundary): ... here.  Use should_move instead of
4816         cant_move.
4817         (move_op_orig_expr_found): Indicate that insn was disconnected from
4818         stream.
4819         (code_motion_process_successors): Do not call after_merge_succs
4820         callback if original expression was not found when traversing any of
4821         the branches.
4822         (code_motion_path_driver): Change return type.  Update prototype.
4823         (move_op): Update comment.  Add a new parameter (should_move).  Update
4824         prototype.  Set *should_move based on indication provided by
4825         move_op_orig_expr_found.
4826
4827 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
4828
4829         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
4830         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
4831         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
4832         * config/rs6000/rs6000.c (rs6000_override_options): Default
4833         avoid-indexed-addresses on for Power6, off for everything else.
4834         (avoiding_indexed_address_p): New function.
4835         (rs6000_legitimize_address): Use it.
4836         (rs6000_legitimate_address): Likewise.
4837         * config/rs6000/rs6000.md (movXX_updateX): Likewise
4838
4839 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
4840
4841         PR tree-optimization/38997
4842         * tree-loop-distribution.c (generate_memset_zero): Use
4843         POINTER_PLUS_EXPR for a pointer addition.
4844
4845 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
4846
4847         * config/s390/s390.md (bswap<mode>2): New pattern added.
4848
4849 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
4850
4851         * config/s390/s390.md (*tls_load_31): Added type attribute.
4852
4853 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
4854
4855         * config/s390/s390.md: Fix a few comments.
4856
4857 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
4858
4859         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
4860         (*tm<mode>_full): Fixed z10prop attribute.
4861         (*tst<mode>_extimm): Fixed z10prop attribute.
4862         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
4863         (*tstqiCCT_cconly): Fixed z10prop attribute.
4864         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
4865         (*movsi_larl): Fixed z10prop attribute.
4866         (*movsi_zarch): Fixed z10prop attribute.
4867         (*movsi_eas): Fixed z10prop attribute.
4868         (*movhi): Fixed z10prop attribute.
4869         (*movqi): Fixed z10prop attribute.
4870         (*movstrictqi): Fixed z10prop attribute.
4871         (*mov<mode>): Fixed z10prop attribute.
4872         (*movcc): Fixed z10prop attribute.
4873         (*sethighpartdi_64): Fixed z10prop attribute.
4874         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
4875         (*negdi2_sign_cc): Fixed z10prop attribute.
4876         (*negdi2_sign): Fixed z10prop attribute.
4877         (*absdi2_sign_cc): Fixed z10prop attribute.
4878         (*absdi2_sign): Fixed z10prop attribute.
4879         (*negabsdi2_sign_cc): Fixed z10prop attribute.
4880         (*negabsdi2_sign): Fixed z10prop attribute.
4881         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
4882         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
4883         (doloop_si64): Fixed z10prop attribute.
4884         (doloop_si31): Fixed z10prop attribute.
4885         (doloop_long): Fixed z10prop attribute.
4886         (indirect_jump): Fixed z10prop attribute.
4887         (nop): Fixed z10prop attribute.
4888         (main_base_64): Fixed z10prop attribute.
4889         (reload_base_64): Fixed z10prop attribute.
4890
4891 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
4892
4893         PR rtl-optimization/38740
4894         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
4895         if !optimize.
4896         * config/mips/mips.c (mips_reorg): Likewise.
4897
4898 2009-01-28  Richard Guenther  <rguenther@suse.de>
4899
4900         PR tree-optimization/38926
4901         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
4902         with the correct value id to a value.
4903         (do_regular_insertion): Use the value number of edoubleprime
4904         for the value number of the expr.
4905
4906         Revert
4907         2008-08-21  Richard Guenther  <rguenther@suse.de>
4908
4909         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
4910         a PHI ask VN if it is already available.
4911         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
4912         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
4913
4914 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
4915
4916         PR middle-end/38934
4917         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
4918         set to varying whenever max has TREE_OVERFLOW set, similarly
4919         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
4920
4921 2009-01-28  Richard Guenther  <rguenther@suse.de>
4922
4923         PR middle-end/38908
4924         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
4925         uninitialized aggregate uses in call arguments.
4926
4927 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
4928
4929         PR tree-optimization/38984
4930         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
4931         the nothing_id variable if -fno-delete-null-pointer-checks.
4932
4933 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
4934
4935         PR target/38988
4936         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
4937         (set_got_offset_rex64): Ditto.
4938
4939 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
4940
4941         PR target/38941
4942         * doc/extend.texi: Improve local variable with asm reg.
4943
4944 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
4945
4946         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
4947         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
4948         was not supplied then set warn_packed_bitfield_compat to the
4949         default value of 1.
4950         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
4951         against 1.
4952
4953 2009-01-27  Richard Guenther  <rguenther@suse.de>
4954
4955         PR tree-optimization/38503
4956         * cfgexpand.c (expand_gimple_basic_block): Ignore
4957         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
4958         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
4959         variables that cannot have TBAA applied.
4960         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
4961         statements.
4962
4963 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
4964
4965         PR middle-end/38969
4966         * calls.c (initialize_argument_information): Do not wrap complex
4967         arguments in SAVE_EXPR.
4968
4969 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
4970
4971         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
4972         (INSTALL_LIBGCC): Revert typo commit.
4973
4974 2009-01-26  Richard Guenther  <rguenther@suse.de>
4975
4976         PR tree-optimization/38745
4977         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
4978         from special handling.
4979
4980 2009-01-26  Richard Guenther  <rguenther@suse.de>
4981
4982         PR tree-optimization/38745
4983         * tree-ssa.c (execute_update_addresses_taken): Do not include
4984         variables that cannot possibly be a register in not_reg_needs.
4985         Do not clear TREE_ADDRESSABLE on vars that may not become
4986         registers.
4987         * tree-ssa.c (update_alias_info_1): Include those in the set
4988         of addressable vars.
4989
4990 2009-01-26  Richard Guenther  <rguenther@suse.de>
4991
4992         PR middle-end/38851
4993         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
4994         * tree-ssa-dse.c: Include langhooks.h
4995         (execute_simple_dse): Remove stores with zero size.
4996
4997 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
4998
4999         PR c/38957
5000         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
5001         as PLUS_EXPR.
5002
5003 2009-01-24  Julian Brown  <julian@codesourcery.com>
5004
5005         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
5006         config/arm/linux-atomic.c.
5007         * config/arm/linux-atomic.c: New.
5008
5009 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
5010
5011         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
5012         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
5013         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5014
5015 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
5016
5017         PR c/38938
5018         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
5019         properly.
5020
5021 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
5022
5023         PR tree-optimization/38953
5024         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
5025         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
5026         (gloog): Split the exit of the scop when the scop exit is a loop exit.
5027         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
5028         changed the CFG.
5029
5030 2009-01-24  Paul Brook  <paul@codesourcery.com>
5031
5032         * config/arm/neon.md (neon_type): Move to arm.md.
5033         (neon_mov<VSTRUCT>): Add neon_type attribute.
5034         * config/arm/arm.md (neon_type): Move to here.
5035         (conds): Add "unconditioal" and use as default for NEON insns.
5036
5037 2009-01-24  Ben Elliston  <bje@au.ibm.com>
5038
5039         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
5040         void *' warning from -Wc++-compat.
5041         * Makefile.in (dominance.o-warn): Remove.
5042
5043 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
5044
5045         PR tree-optimization/38932
5046         * fold-const.c (fold_unary_ignore_overflow): New.
5047         * tree.h (fold_unary_ignore_overflow): Declare.
5048         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
5049         * tree-ssa-sccvn.c (visit_reference_op_load,
5050         simplify_unary_expression): Likewise.
5051
5052 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
5053
5054         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
5055         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
5056         regardless of their type.
5057         * c-common.c (handle_packed_attribute): Don't ignore packed on
5058         bitfields.
5059         * c.opt (Wpacked-bitfield-compat): New warning option.
5060         * stor-layout.c (place_field): Warn if offset of a field changed.
5061         * doc/extend.texi (packed): Mention the ABI change.
5062         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
5063         (Warning Options): Add it to the list.
5064
5065 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
5066
5067         * c-opts.c (c_common_post_options): Fix a typo in comments.
5068
5069 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
5070
5071         PR middle-end/38615
5072         * gimplify.c (gimplify_init_constructor): Fix promotion of const
5073         variables to static.
5074         * doc/invoke.texi (-fmerge-all-constants): Update description.
5075
5076 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
5077
5078         PR target/38931
5079         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
5080         (*movdi_1_rex64): Use type "mmx" for alternative 5.
5081
5082 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
5083
5084         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
5085         a word boundary.
5086         (LOCAL_ALIGNMENT): Similarly.
5087
5088 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5089             Joseph Myers  <joseph@codesourcery.com>
5090
5091         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
5092         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
5093         * config/arm/arm-tune.md: Regenerate.
5094         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
5095         -march=iwmmxt2.
5096
5097 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
5098
5099         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
5100         version number to five.
5101
5102 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
5103
5104         PR c++/38930
5105         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
5106         * c-common.c (set_underlying_type): Likewise.
5107         (is_typedef_decl ): Likewise
5108         * tree.h: Likewise
5109         (set_underlying_type): Likewise.
5110         (is_typedef_type): Likewise.
5111
5112 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
5113
5114         PR middle-end/38587
5115         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
5116         crossing setjmps.
5117
5118 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
5119
5120         PR bootstrap/37660
5121         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
5122         (LIBGCC_SPEC):  Don't define.
5123         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
5124
5125 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
5126
5127         PR rtl-optimization/38879
5128         * alias.c (base_alias_check): Unaligned access via AND address can
5129         alias all surrounding object types except those with sizes equal
5130         or wider than the size of unaligned access.
5131
5132 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
5133
5134         PR c++/26693
5135         * c-decl.c (clone_underlying_type): Move this ...
5136         * c-common.c (set_underlying_type): ... here.
5137         Also, make sure the function properly sets TYPE_STUB_DECL() on
5138         the newly created typedef variant type.
5139         (is_typedef_decl ): New entry point.
5140         * tree.h: Added a new member member_types_needing_access_check to
5141         struct tree_decl_non_common.
5142         (set_underlying_type): New entry point.
5143         (is_typedef_type): Likewise.
5144
5145 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
5146
5147         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
5148         Check whether two instructions have memory references that
5149         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
5150         are helper functions for traversing.
5151         * alias.h (insn_alias_sets_confilict_p): New prototypes.
5152         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
5153         not to draw dependency edge for instructions with non-conflicting
5154         alias sets.
5155
5156 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
5157
5158         PR other/38758
5159         * longlong.h: Update copyright years.  Use soft-fp license notice.
5160         Sync __clz_tab declaration with glibc.
5161
5162 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
5163
5164         PR target/30687
5165         * doc/extend.texi (syscall_linkage): New.
5166         (version_id): Modify.
5167
5168 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5169             Richard Guenther  <rguenther@suse.de>
5170
5171         PR tree-optimization/38747
5172         PR tree-optimization/38748
5173         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
5174         conversion if the base address is an indirect reference and the
5175         aliasing sets could cause issues.
5176
5177 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5178
5179         * common.opt (fgraphite, fgraphite-identity): Add comment for 
5180         explaining why these options are not documented.
5181
5182 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
5183
5184         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
5185         gimple_call_lhs is NULL.
5186
5187 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
5188
5189         PR target/38868
5190         * emit-rtl.c (adjust_address_1): Make sure memref is never
5191         overwritten.
5192
5193 2009-01-20  Ben Elliston  <bje@au.ibm.com>
5194
5195         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5196         const qualifier from arg parameter. Remove unnecessary cast to char *.
5197         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5198         const qualifier from arg 2.
5199
5200 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
5201
5202         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
5203
5204 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
5205
5206         PR c/38869
5207         * rtl.h (reinit_regs): New prototype.
5208         * regclass.c: Include ira.h.
5209         (reinit_regs): New.
5210         * Makefile.in (regclass.o): Add ira.h.
5211         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
5212
5213 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
5214
5215         PR target/38736
5216         * c-common.c (handle_aligned_attribute): Use
5217         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
5218         default alignment value.
5219
5220         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
5221
5222         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
5223         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
5224
5225         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
5226         __BIGGEST_ALIGNMENT__.
5227
5228         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
5229
5230 2009-01-18  Richard Guenther  <rguenther@suse.de>
5231
5232         PR tree-optimization/38819
5233         * tree-flow.h (operation_could_trap_helper_p): Declare.
5234         * tree-eh.c (operation_could_trap_helper_p): Export.
5235         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
5236         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
5237         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
5238         are about to insert a possibly trapping instruction and fail
5239         in this case.
5240
5241 2009-01-18  Andreas Schwab  <schwab@suse.de>
5242
5243         * doc/install.texi (Configuration): Remove obsolete paragraph
5244         about use of --with-gnu-ld with --with-gnu-as.
5245
5246 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
5247
5248         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
5249         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
5250         Follow spelling conventions.
5251
5252 2009-01-18  Ben Elliston  <bje@au.ibm.com>
5253
5254         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
5255         C++ warning about implicit conversion from void * to struct
5256         bitmap_head_def *.
5257         (bitmap_obstack_free): Likewise for bitmap_element *.
5258         * Makefile.in (bitmap.o-warn): Remove.
5259
5260 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
5261
5262         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
5263
5264 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
5265             Tobias Grosser  <tobi.grosser@amd.com>
5266
5267         * graphite.c (graphite_trans_scop_block): Do not block single
5268         nested loops.
5269
5270 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
5271
5272         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
5273         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
5274         test with assertion.
5275
5276 2009-01-16  Richard Guenther  <rguenther@suse.de>
5277
5278         PR tree-optimization/38835
5279         PR middle-end/36227
5280         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
5281         and INT + PTR -> (INT)(PTR p+ INT) folding.
5282         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
5283
5284 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
5285
5286         PR target/38554
5287         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
5288         the subreg from a lowpart subreg if it is also casting the value.
5289
5290 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5291             Tobias Grosser  <tobi.grosser@amd.com>
5292
5293         * graphite.c (compare_prefix_loops): New.
5294         (build_scop_canonical_schedules): Rewritten.
5295         (graphite_transform_loops): Move build_scop_canonical_schedules
5296         after build_scop_iteration_domain.
5297
5298 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
5299             Tobias Grosser  <tobi.grosser@amd.com>
5300
5301         * graphite.c (add_conditions_to_domain): Add the loops to 
5302         the dimension of the iteration domain.  Do copy the domain
5303         only when it exists.
5304         (build_scop_conditions_1): Do not call add_conditions_to_domain.
5305         (add_conditions_to_constraints): New.
5306         (can_generate_code_stmt, can_generate_code): Removed.
5307         (gloog): Do not call can_generate_code.
5308         (graphite_transform_loops): Call add_conditions_to_constraints
5309         after building the iteration domain.
5310
5311 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
5312
5313         PR tree-optimization/38789
5314         * tree-ssa-threadedge.c
5315         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5316         __builtin_constant_p.
5317
5318 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
5319
5320         * dce.c (delete_unmarked_insns): Reversed the order that insns are
5321         examined before deleting them.
5322         
5323 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
5324
5325         * function.c (aggregate_value_p): Correctly extract the function
5326         type from CALL_EXPR_FN lookup.
5327
5328 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
5329
5330         * config/picochip/picochip.c (picochip_override_options): Revert
5331         CFI asm flag disable commited previously.
5332
5333 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
5334             Tobias Grosser  <tobi.grosser@amd.com>
5335             Jan Sjodin  <jan.sjodin@amd.com>
5336
5337         * graphite.c (scan_tree_for_params): On substractions negate
5338         all the coefficients of the term.
5339         (clast_to_gcc_expression_red): New.  Handle reduction expressions
5340         of more than two operands.
5341         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
5342         (get_vdef_before_scop): Handle also the case of default definitions.
5343
5344 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
5345
5346         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
5347         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
5348         Also use them when walking CALL_INSN_FUNCTION_USAGE.
5349
5350 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
5351             Joey Ye  <joey.ye@intel.com>
5352
5353         PR middle-end/37843
5354         * cfgexpand.c (expand_stack_alignment): Don't update stack
5355         boundary nor check incoming stack boundary here.
5356         (gimple_expand_cfg): Update stack boundary and check incoming
5357         stack boundary here.
5358
5359 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
5360
5361         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
5362         
5363 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
5364
5365         PR rtl-optimization/38245
5366         * calls.c (expand_call): Add stack arguments to
5367         CALL_INSN_FUNCTION_USAGE even for pure calls (when
5368         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
5369         in regs and partially in memory or BLKmode arguments.
5370         (emit_library_call_value_1): Add stack arguments to
5371         CALL_INSN_FUNCTION_USAGE even for pure calls (when
5372         ACCUMULATE_OUTGOING_ARGS).
5373         * dce.c: Include tm_p.h.
5374         (find_call_stack_args): New function.
5375         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
5376         argument.
5377         (mark_insn): Call find_call_stack_args for CALL_Ps.
5378         (prescan_insns_for_dce): Walk insns backwards in bb rather than
5379         forwards.  Allocate and free arg_stores bitmap if needed, pass it
5380         down to deletable_insn_p, don't mark stores set in arg_stores
5381         bitmap, clear the bitmap at the beginning of each bb.
5382         * Makefile.in (dce.o): Depend on $(TM_P_H).
5383
5384 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
5385
5386         PR target/22599
5387         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
5388         to make sure the insn is a conditional test (bug 22599).  Reformat a
5389         few long lines.
5390
5391 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
5392
5393         PR middle-end/38431
5394         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
5395         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
5396         (gloog): Do not call cleanup_tree_cfg.
5397         (graphite_transform_loops): Call cleanup_tree_cfg after all 
5398         scops have been code generated.
5399
5400 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
5401         * doc/gty.texi (Invoking the garbage collector): Added new node
5402         and section documenting ggc_collect.
5403
5404 2009-01-14  Richard Guenther  <rguenther@suse.de>
5405
5406         PR tree-optimization/38826
5407         PR middle-end/38477
5408         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
5409         initialization notes only if we actually emitted a warning.
5410         (intra_create_variable_infos): Add constraints for a result decl
5411         that is passed by hidden reference.
5412         (build_pred_graph): Mark all related variables non-direct on
5413         address-taking.
5414
5415 2009-01-14  Nick Clifton  <nickc@redhat.com>
5416
5417         * ira-conflicts.c: Include addresses.h for the definition of
5418         base_reg_class.
5419         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
5420         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
5421
5422 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
5423
5424         PR target/38811
5425         * Makefile.in (ira-lives.o): Add except.h.
5426
5427         * ira-lives.c: Include except.h.
5428         (process_bb_node_lives): Process can_throw_internal.
5429
5430 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
5431
5432         PR rtl-optimization/38774
5433         * combine.c (simplify_set): When undoing cc_use change, don't do
5434         PUT_CODE on the newly created comparison, but instead put back the
5435         old comparison.
5436
5437 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
5438
5439         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
5440         values.  Remove duplicate arm8 entry.
5441
5442 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
5443
5444         PR tree-optimization/38786
5445         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
5446         the SSA_NAME case of expand_scalar_variables_expr.
5447         Set the type of an expression to the type of its assign statement.
5448         (expand_scalar_variables_expr): Also gather the scalar computation
5449         used to index the memory access.  Do not pass loop_p.
5450         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
5451         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
5452         the gimple_stmt_iterator where it inserts new code.
5453         Do not pass loop_p.
5454         (copy_bb_and_scalar_dependences): Do not pass loop_p.
5455         (translate_clast): Update call to copy_bb_and_scalar_dependences.
5456
5457 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
5458
5459         * graphite.h (debug_value): Removed.
5460         * graphite.c (debug_value): Removed.
5461
5462 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
5463
5464         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
5465         ldrd/strd with two 32-bit instructions.
5466
5467 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
5468
5469         * config/arm/arm.c (struct processors): Pass for speed down into
5470         cost helper functions.
5471         (const_ok_for_op): Handle COMPARE and inequality nodes.
5472         (arm_rtx_costs_1): Rewrite.
5473         (arm_size_rtx_costs): Update prototype.
5474         (arm_rtx_costs): Pass speed down to helper functions.
5475         (arm_slowmul_rtx_costs): Rework cost calculations.
5476         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
5477         (arm_9e_rtx_costs): Likewise.
5478
5479 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
5480
5481         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
5482         relocations of local symbols wider than UNITS_PER_WORD are not valid.
5483         (alpha_legitimize_address): Do not split local symbols wider than
5484         UNITS_PER_WORD into HIGH/LO_SUM parts.
5485
5486 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
5487
5488         PR bootstrap/38580
5489         * gcc.c (process_command): Replace call to execvp with calls
5490         to pex_one and exit.
5491
5492 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
5493
5494         PR target/29141
5495         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
5496         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
5497         variant for devices with 3-byte PC.
5498         (__tablejump_elpm__): New.
5499
5500 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
5501
5502         PR c/32041
5503         * c-parser.c (c_parser_postfix_expression): Allow `->' in
5504         offsetof member-designator, handle it as `[0].'.
5505
5506 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5507
5508         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
5509         function when not using named sections on targets with named sections
5510         if branch distance is less than 262132.
5511
5512 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
5513
5514         * combine.c (combine_instructions):  Recompute
5515         optimize_this_for_speed_p  for each BB in the main combine loop.
5516
5517 2009-01-12  Tomas Bily  <tbily@suse.cz>
5518
5519         PR middlend/38385
5520         * tree-loop-distribution.c (prop_phis): New function.
5521         (generate_builtin): Call prop_phis.
5522         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
5523
5524 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
5525
5526         PR tree-optimization/38807
5527         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
5528         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
5529
5530 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
5531
5532         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
5533         subreg of op0 to the original op0.
5534
5535 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
5536
5537         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
5538         
5539 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
5540
5541         PR debug/7055
5542         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
5543         starting with digits.
5544
5545 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
5546
5547         PR target/38695
5548         * config/arm/arm.c (arm_is_long_call_p): Don't call
5549         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
5550
5551 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
5552
5553         * regrename.c (regrename_optimize): Fix dumping.
5554         (find_oldest_value_reg): Preserve REG_POINTER.
5555         (copy_hardreg_forward_1): Likewise.
5556
5557 2009-01-09  Diego Novillo  <dnovillo@google.com>
5558
5559         * gimple.h (struct gimple_statement_base) <uid>: Document
5560         the restrictions on its use.
5561         (gimple_uid): Tidy.
5562         (gimple_set_uid): Tidy.
5563
5564 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
5565
5566         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
5567         zero guard even if align_bytes != 0 and count is smaller than
5568         size_needed.
5569
5570 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
5571
5572         PR rtl-optimization/38495
5573         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
5574         (add_range_and_copies_from_move_list): Print all added ranges.
5575         Add ranges to memory optimized destination.
5576
5577 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
5578
5579         PR target/38686
5580         PR target/38708
5581         * config/i386/i386.c (override_options): Reject
5582         -mstringop-strategy=rep_8byte with -m32.
5583         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
5584         to 1.  Do count comparison against epilogue_size_needed at compile
5585         time even when count_exp was constant forced into register.  For
5586         size_needed don't jump to epilogue, instead just avoid aligning
5587         and invoke the body algorithm.  If need_zero_guard, add zero guard
5588         even if count is non-zero, but smaller than size_needed + number of
5589         bytes that could be stored for alignment.
5590         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
5591         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
5592         but smaller than size_needed + number of bytes that could be stored
5593         for alignment.  Compare size_needed with epilogue_size_needed instead
5594         of desired_align - align, don't adjust size_needed, pass
5595         epilogue_size_needed to the epilogue expanders.
5596
5597         PR c/35742
5598         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
5599
5600 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5601
5602         * pa.c (last_address): Change to unsigned.
5603         (update_total_code_bytes): Change argument to unsigned.  Don't
5604         check if insn addresses are set.
5605         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
5606         addresses are not set.
5607         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
5608
5609 2009-01-09  Nick Clifton  <nickc@redhat.com>
5610
5611         * config/sh/symbian.c: Replace uses of DECL_INLINE with
5612         DECL_DECLARED_INLINE_P.
5613
5614 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
5615
5616         PR middle-end/38347
5617         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
5618         GET_MODE (op0) in operand_subword_force calls.
5619
5620         PR middle-end/38771
5621         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
5622         fold_convert arg0 operands to TREE_TYPE (op0) first.
5623
5624 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
5625
5626         * params.def (ira-max-conflict-table-size): Decrease default value
5627         to 1000.
5628
5629 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
5630
5631         PR tree-optimization/37031
5632         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
5633         on parameter_set.
5634         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
5635         allocate it using gc instead of heap, use VEC_quick_push instead of
5636         VEC_safe_push.
5637         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
5638         instead of heap, use VEC_quick_push instead of VEC_safe_push.
5639         * tree-data-ref.h (struct access_matrix): Change matrix to gc
5640         allocated vector from heap allocated.
5641         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
5642         * tree-loop-linear.c (linear_transform_loops): Allocate nest
5643         vector only after perfect_loop_nest_depth call.
5644
5645 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
5646             Jan Sjodin  <jan.sjodin@amd.com>
5647
5648         PR tree-optimization/38559
5649         * graphite.c (debug_value, copy_constraint,
5650         swap_constraint_variables, scale_constraint_variable, ): New.
5651         (get_lower_bound, get_upper_bound): Removed.
5652         (graphite_trans_bb_strip_mine): Clean up this code that works
5653         only for constant number of iterations.  Fully copy upper and
5654         lower bound constraints, not only the constant part of them.
5655         * graphite.h (debug_value): Declared.
5656
5657 2009-01-08  Ira Rosen  <irar@il.ibm.com>
5658
5659         PR tree-optimization/37194
5660         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
5661         Don't add the cost of cost model guard in prologue to scalar 
5662         outside cost in case of known number of iterations.
5663
5664 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
5665             Alan Modra  <amodra@bigpond.net.au>
5666
5667         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
5668         non-word-aligned REG+CONST addressing.
5669
5670 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
5671
5672         PR target/38706
5673         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
5674         free_after_compilation when outputting a thunk.
5675         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
5676         Do not call free_after_compilation here.
5677
5678 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
5679
5680         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
5681         (ix86_valid_target_attribute_inner_p): Ditto.
5682
5683 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
5684
5685         PR tree-optimization/38492
5686         PR tree-optimization/38498
5687         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
5688         * tree-chrec.h (scev_is_linear_expression): Declared.
5689         * graphite.c (graphite_cannot_represent_loop_niter): New.
5690         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
5691         (graphite_loop_normal_form): Use gcc_assert.
5692         (scan_tree_for_params): Use CASE_CONVERT.
5693         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
5694         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
5695         Use gcc_assert.  Discard scops that contain unhandled cases.
5696         (build_scop_conditions): Return a boolean status for unhandled cases.
5697         (strip_mine_profitable_p): Print the loop number, not its depth.
5698         (is_interchange_valid): Pass the depth of the loop nest, don't
5699         recompute it wrongly.
5700         (graphite_trans_bb_block): Same.
5701         (graphite_trans_bb_block): Print tentative of loop blocking.
5702         (graphite_trans_scop_block): Do not print that the loop has been
5703         blocked.
5704         (graphite_transform_loops): Do not handle scops that contain condition
5705         scalar phi nodes.
5706
5707 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
5708
5709         AVX Programming Reference (December, 2008)
5710         * config/i386/avxintrin.h (_mm256_stream_si256): New.
5711         (_mm256_stream_pd): Likewise.
5712         (_mm256_stream_ps): Likewise.
5713
5714         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
5715         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
5716         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
5717         (bdesc_special_args): Add __builtin_ia32_movntdq256,
5718         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
5719         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
5720         (ix86_expand_special_args_builtin): Likewise.
5721
5722         * config/i386/sse.md (AVXMODEDI): New.
5723         (avx_movnt<mode>): Likewise.
5724         (avx_movnt<mode>): Likewise.
5725         (<sse>_movnt<mode>): Remove AVX support.
5726         (sse2_movntv2di): Likewise.
5727
5728 2009-01-07  Richard Guenther  <rguenther@suse.de>
5729
5730         PR middle-end/38751
5731         * fold-const.c (extract_muldiv): Remove obsolete comment.
5732         (fold_plusminus_mult_expr): Undo MINUS_EXPR
5733         to PLUS_EXPR canonicalization for the canonicalization.
5734
5735 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
5736
5737         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
5738         hosted cross-compilers generating less efficient code.
5739
5740 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
5741
5742         * function.h (rtl_data): Add a dbr_scheduled_p field.
5743         * reorg.c (dbr_schedule): Set it.
5744         (gate_handle_delay_slots): Check it.
5745         * config/mips/mips.c (mips_base_delayed_branch): Delete.
5746         (mips_reorg): Check flag_delayed_branch instead of
5747         mips_base_delayed_branch.
5748         (mips_override_options): Don't set mips_base_delayed_branch
5749         or flag_delayed_branch.
5750
5751 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
5752
5753         PR rtl-optimization/38426.
5754         * ira.c (ira): Set current_function_is_leaf earlier.
5755
5756 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
5757
5758         PR rtl-optimization/38722
5759         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
5760         too early, only set a flag and modify after last possible
5761         undo_all point.
5762
5763 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
5764
5765         PR c/34252
5766         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
5767         * real.c (decimal_single_format): Correct values of emin and emax.
5768         (decimal_double_format): Ditto.
5769         (decimal_quad_format): Ditto.
5770         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
5771         computation of DECnn_MIN and DECnn_MAX for corrected values of
5772         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
5773         __DECnn_MIN__, and adjust its computation for the corrected value
5774         of emin.
5775
5776 2009-01-06  Jan Hubicka  <jh@suse.cz>
5777
5778         PR target/38744
5779         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
5780
5781 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
5782
5783         * doc/contrib.texi (Contributors): Slightly adjust the end note.
5784         Add Robert Clark to the list of testers.
5785
5786 2009-01-06  Jan Hubicka  <jh@suse.cz>
5787             Kai Tietz  <kai.tietz@onevision.com>
5788
5789         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
5790         * config/i386/i386.c (ix86_expand_call): Add clobbers.
5791
5792 2009-01-06  Jan Hubicka  <jh@suse.cz>
5793             Kai Tietz  <kai.tietz@onevision.com>
5794
5795         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
5796         for w64 ABI.
5797         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
5798         (ix86_nsaved_regs): Count only general purpose regs.
5799         (ix86_nsaved_sseregs): New.
5800         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
5801         to 16 for w64; compute padding and size of sse reg save area.
5802         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
5803         general purpose regs.
5804         (ix86_emit_save_sse_regs_using_mov): New.
5805         (ix86_expand_prologue): Save SSE regs if needed.
5806         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
5807         (ix86_emit_restore_sse_regs_using_mov): New.
5808         (ix86_expand_epilogue): Save SSE regs if needed.
5809
5810 2009-01-06  Jan Hubicka  <jh@suse.cz>
5811             Kai Tietz  <kai.tietz@onevision.com>
5812
5813         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
5814         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
5815         functions when accumulate outgoing args is off.
5816
5817 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
5818
5819         PR bootstrap/38742
5820         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
5821         before using pseudos_have_intersected_live_ranges_p.
5822
5823         * ira-int.h (ira_assert): Always define.
5824
5825 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
5826
5827         AVX Programming Reference (December, 2008)
5828         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
5829         (_mm256_permute2_pd): Likewise.
5830         (_mm_permute2_ps): Likewise.
5831         (_mm256_permute2_ps): Likewise.
5832         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
5833         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
5834
5835         * config/i386/i386.c (ix86_builtins): Remove
5836         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
5837         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
5838         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
5839         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
5840         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
5841         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
5842         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
5843         __builtin_ia32_vpermil2ps256.
5844         (ix86_init_mmx_sse_builtins): Updated.
5845         (ix86_expand_args_builtin): Likewise.
5846
5847 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5848
5849         * pa.c (output_call): Relocate non-jump insns in the delay slot of
5850         long absolute calls when generating PA 2.0 code.
5851
5852 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
5853
5854         PR rtl-optimization/38583
5855         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
5856
5857         * params.def (ira-max-conflict-table-size): New.
5858
5859         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
5860         
5861         * ira.h (ira_conflicts_p): New external definition.
5862         
5863         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
5864         table.  Report this.  Return result of building.
5865         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
5866         building conflict table.
5867
5868         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
5869         (ira_color): Use ira_conflicts_p.
5870         
5871         * global.c: Include ira.h.
5872         (pseudo_for_reload_consideration_p, build_insn_chain): Use
5873         ira_conflicts_p.
5874
5875         * Makefile.in (global.o): Add ira.h.
5876         
5877         * ira-build.c (mark_all_loops_for_removal,
5878         propagate_some_info_from_allocno): New.
5879         (remove_unnecessary_allocnos): Call
5880         propagate_some_info_from_allocno.
5881         (remove_low_level_allocnos): New.
5882         (remove_unnecessary_regions): Add parameter.  Call
5883         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
5884         parameter to remove_unnecessary_regions.
5885         (ira_build): Remove all regions but root if the conflict table was
5886         not built.  Update conflict hard regs for allocnos crossing calls.
5887
5888         * ira.c (ira_conflicts_p): New global.
5889         (ira): Define and use ira_conflicts_p.
5890
5891         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5892         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
5893         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
5894         
5895 2009-01-06  Ben Elliston  <bje@au.ibm.com>
5896
5897         * gengtype-lex.l (YY_NO_INPUT): Define.
5898
5899 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5900
5901         PR c/34911
5902         * c-common.c (handle_vector_size_attribute): Also reject
5903         BOOLEAN_TYPE types.
5904
5905 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
5906
5907         PR tree-optimization/38492
5908         * graphite.c (rename_map_elt, debug_rename_elt,
5909         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
5910         rename_map_elt_info, eq_rename_map_elts,
5911         get_new_name_from_old_name, bb_in_sese_p): Moved around.
5912         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
5913         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
5914         (sese_build_livein_liveouts): New.
5915         (new_sese, free_sese): New.
5916         (new_scop): Call new_sese.
5917         (free_scop): Call free_sese.
5918         (rename_variables_from_edge, rename_phis_end_scop): Removed.
5919         (register_old_new_names): Renamed register_old_and_new_names.
5920         (register_scop_liveout_renames, add_loop_exit_phis,
5921         insert_loop_close_phis, struct igp,
5922         default_liveout_before_guard, add_guard_exit_phis,
5923         insert_guard_phis, copy_renames): New.
5924         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
5925         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
5926         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
5927         (scop_adjust_phis_for_liveouts): New.
5928         (gloog): Call scop_adjust_phis_for_liveouts.
5929
5930         * graphite.h (struct sese): Documented.  Added fields liveout,
5931         num_ver and livein.
5932         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
5933         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
5934         (struct scop): Added field liveout_renames.
5935         (SCOP_LIVEOUT_RENAMES): New.
5936
5937 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
5938
5939         PR tree-optimization/38510
5940         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
5941         (translate_clast): Call recompute_all_dominators before
5942         graphite_verify.
5943         (gloog): Call recompute_all_dominators before graphite_verify.
5944
5945 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
5946             Jan Sjodin  <jan.sjodin@amd.com>
5947
5948         PR tree-optimization/38500
5949         * graphite.c (create_sese_edges): Call fix_loop_structure after
5950         splitting blocks.
5951
5952 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
5953
5954         * config.gcc: Add m32r*-*-rtems*.
5955         * config/m32r/rtems.h: New file.
5956
5957 2009-01-05  Ben Elliston  <bje@au.ibm.com>
5958
5959         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
5960         (.po.pox): Likewise.
5961         (po/gcc.pot): Likewise.
5962
5963 2009-01-04  David S. Miller  <davem@davemloft.net>
5964
5965         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
5966         (STARTING_FRAME_OFFSET): Always set to zero.
5967
5968 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
5969
5970         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
5971         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
5972         fixed-point types, and vectors of the same.
5973
5974 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
5975
5976         * config/mips/sync.md (*mb_barrier): Rename to...
5977         (*memory_barrier): ...this.
5978
5979 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
5980
5981         * doc/extend.texi (Function Attributes): Move @cindex after @item
5982         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
5983         and put in alphabetical order. Fix 'target' name and put in order.
5984         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
5985         typos.
5986
5987 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
5988
5989         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
5990         (memory_barrier): Expand as unspec instead of unspec_volatile.
5991         Remove mem:BLK from insn operands.  Use Pmode scratch register.
5992         (*memory_barrier): Define as unspec instead of unspec_volatile.
5993         Use (match_dup 0) as input operand.
5994
5995         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
5996         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
5997         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
5998         scratch register.  Remove operand 1.
5999         (*stbar): Define as unspec instead of unspec_volatile.
6000         Use (match_dup 0) as input operand, remove (const_int 8).
6001         (*membar): Define as unspec instead of unspec_volatile.
6002         Use (match_dup 0) as input operand, remove input operand 2.
6003
6004         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
6005         (memory_barrier): Expand as unspec instead of unspec_volatile.
6006         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6007         (*memory_barrier): Define as unspec instead of unspec_volatile.
6008         Use (match_dup 0) as input operand.
6009
6010         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
6011         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6012         Set volatile flag on operand 0.
6013         (*memory_barrier): New insn pattern.
6014
6015         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
6016         insn operands.
6017         (*memory_barrier): Use (match_dup 0) as input operand.
6018
6019         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
6020         Remove mem:BLK from insn operands.  Use Pmode scratch register.
6021         Set volatile flag on operand 0.
6022         (*mb_internal): New insn pattern.
6023
6024         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
6025
6026 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6027
6028         PR middle-end/38586
6029         * function.c (struct temp_slot): Move to the section of the file
6030         that deals with temp slots.  Remove field 'address'.
6031         (temp_slot_address_table): New hash table of address -> temp slot.
6032         (struct temp_slot_address_entry): New struct, items for the table.
6033         (temp_slot_address_compute_hash, temp_slot_address_hash,
6034         temp_slot_address_eq, insert_temp_slot_address): Support functions
6035         for the new table.
6036         (find_temp_slot_from_address): Rewrite to use the new hash table.
6037         (remove_unused_temp_slot_addresses): Remove addresses of temp
6038         slots that have been made available.
6039         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
6040         worker function for remove_unused_temp_slot_addresses.
6041         (assign_stack_temp_for_type): Don't clear the temp slot address list.
6042         Add the temp slot address to the address -> temp slot map.
6043         (update_temp_slot_address): Update via insert_temp_slot_address.
6044         (free_temp_slots): Call remove_unused_temp_slot_addresses.
6045         (pop_temp_slots): Likewise.
6046         (init_temp_slots): Allocate the address -> temp slot map, or empty
6047         the map if it is already allocated.
6048         (prepare_function_start): Initialize temp slot processing.
6049
6050 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
6051
6052         PR middle-end/38584
6053         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
6054         Calculate the size of all stack vars assuming no packing of stack
6055         vars will happen, replacing a quadratic algorithm with a linear one.
6056
6057 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6058
6059         PR target/38707
6060         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
6061         can't be used.
6062
6063 2009-01-03  Diego Novillo  <dnovillo@google.com>
6064
6065         * doc/contrib.texi: Update contributions.
6066
6067 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
6068
6069         PR c++/38705
6070         * builtins.c (fold_builtin_memory_op): Give up if either operand
6071         is volatile.  Set srctype or desttype to non-qualified version
6072         of the other type.
6073
6074         PR c/38700
6075         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
6076         and FUNCTION_DECLs.
6077
6078 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
6079
6080         PR rtl-optimization/35805
6081         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
6082         problem if fast dce is able to remove any instructions.
6083         * dce.c (dce_process_block): Fix dump message.
6084         
6085 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
6086
6087         PR 33649
6088         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
6089
6090 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
6091
6092         PR middle-end/38690
6093         * tree-flow.h (op_code_prio, op_prio): New prototypes.
6094         * tree-pretty-print.c (op_code_prio): New function.
6095         (op_prio): No longer static.  Use op_code_prio.
6096         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
6097         Use op_prio and op_code_prio to determine if () should be
6098         printed around operand(s) or not.
6099
6100         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
6101         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
6102         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
6103         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
6104         pp_character instead of pp_string for single letter printing.
6105
6106 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
6107
6108         * doc/extend.texi: Fix '#pragma GCC option' typo.
6109
6110 2009-01-02  Richard Guenther  <rguenther@suse.de>
6111
6112         * doc/install.texi (--enable-checking): Mention different
6113         default for stage1.
6114         (--enable-stage1-checking): Document.
6115
6116 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
6117
6118         PR middle-end/30142
6119         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
6120         case to be an error.
6121
6122 2009-01-02  Ben Elliston  <bje@au.ibm.com>
6123
6124         * config/fp-bit.h (pack_d): Constify argument.
6125         * config/fp-bit.c (makenan): Constify return type. Remove casts.
6126         (isnan): Constify argument.
6127         (isinf): Likewise.
6128         (iszero): Likewise.
6129         (pack_d): Likewise.
6130         (_fpadd_parts): Constify return type.
6131         (_fpmul_parts): Likewise.
6132         (_fpdiv_parts): Likewise.
6133
6134 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
6135
6136         PR c/36489
6137         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
6138         warn about overwriting initializer with side-effects or
6139         -Woverride-init if !IMPLICIT.
6140         (output_init_element): Likewise.  Pass IMPLICIT down to
6141         add_pending_init.
6142         (process_init_element): Add IMPLICIT argument.  Pass it down
6143         to output_init_element.
6144         (push_init_element, pop_init_level, set_designator): Adjust
6145         process_init_element callers.
6146         (set_nonincremental_init, set_nonincremental_init_from_string):
6147         Adjust add_pending_init callers.
6148         (output_pending_init_elements): Adjust output_init_element callers.
6149         * c-tree.h (process_init_element): Adjust prototype.
6150         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
6151         process_init_element callers.