OSDN Git Service

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