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