OSDN Git Service

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