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