OSDN Git Service

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