OSDN Git Service

2009-04-07 Uros Bizjak <ubizjak@gmail.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
2
3         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
4         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
5         (ia64_expand_builtin): Likewise.
6
7 2009-04-07  Martin Jambor  <mjambor@suse.cz>
8
9         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
10         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
11         ADDR_EXPRS are include too.
12
13 2009-04-07  Richard Guenther  <rguenther@suse.de>
14
15         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
16         decls are only used if passes as parameters or if they are
17         local statics and the call is not to a builtin.
18         (call_may_clobber_ref_p_1): Likewise.
19
20 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
21
22         * expr.c (do_store_flag): Remove last argument.  Simplify code
23         to avoid duplication of tests already done by can_compare_p.
24         (expand_expr_real_1): Adjust caller.
25
26 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
27
28         * optabs.c (can_compare_p): Test the predicate of a
29         cbranch and cstore pattern.
30
31 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
32
33         * expr.c (convert_move): Use emit_store_flag instead of
34         "emulating" it.
35
36 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
37
38         * config/i386/i386.c (ix86_compare_emitted): Remove.
39         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
40         ix86_compare_op0 like ix86_compare_emitted used to be handled.
41         * config/i386/i386.h (ix86_compare_emitted): Remove.
42         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
43         instead of ix86_compare_emitted.
44         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
45
46 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
47
48         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
49         Add t-sysroot-suffix to tmake_file.
50         * config/print-sysroot-suffix.sh: New file.
51         * config/t-sysroot-suffix: New file.
52
53 2009-04-07  Ben Elliston  <bje@au.ibm.com>
54
55         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
56         as the latter produces a warning when the target does not support
57         infinity.
58
59 2009-04-07  Ben Elliston  <bje@au.ibm.com>
60
61         * dfp.c: Replace type punning assignments with memcpy throughout.
62         * Makefile.in (dfp.o-warn): Remove.
63         
64 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
65
66         PR target/39634
67         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
68         Include soft-fp/t-softfp after rs6000/t-linux64.
69
70 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
71
72         * stor-layout.c (set_sizetype): Use the full precision of their
73         machine mode for bitsize types.
74
75 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
76
77         * config/i386/i386.md: Revert 2 accidental checkins.
78
79 2009-04-06  Joey Ye  <joey.ye@intel.com>
80             Xuepeng Guo <xuepeng.guo@intel.com>
81             H.J. Lu  <hongjiu.lu@intel.com>
82
83         Atom pipeline model, tuning and insn selection.
84         * config.gcc (atom): Add atom config options and target.
85
86         * config/i386/atom.md: New.
87
88         * config/i386/i386.c (atom_cost): New cost.
89         (m_ATOM): New macro flag.
90         (initial_ix86_tune_features): Set m_ATOM.
91         (x86_accumulate_outgoing_args): Likewise.
92         (x86_arch_always_fancy_math_387): Likewise.
93         (processor_target): Add Atom cost.
94         (cpu_names): Add Atom cpu name.
95         (override_options): Set Atom ISA.
96         (ix86_issue_rate): New case PROCESSOR_ATOM.
97         (ix86_adjust_cost): Likewise.
98
99         * config/i386/i386.h (TARGET_ATOM): New target macro.
100         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
101         (TARGET_OPT_AGU): New target option.
102         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
103         (processor_type): Add PROCESSOR_ATOM.
104
105         * config/i386/i386.md (cpu): Add new value "atom".
106         (use_carry, movu): New attr.
107         (atom.md): Include atom.md.
108         (adddi3_carry_rex64): Set attr "use_carry".
109         (addqi3_carry): Likewise.
110         (addhi3_carry): Likewise.
111         (addsi3_carry): Likewise.
112         (*addsi3_carry_zext): Likewise.
113         (subdi3_carry_rex64): Likewise.
114         (subqi3_carry): Likewise.
115         (subhi3_carry): Likewise.
116         (subsi3_carry): Likewise.
117         (x86_movdicc_0_m1_rex64): Likewise.
118         (*x86_movdicc_0_m1_se): Likewise.
119         (x86_movsicc_0_m1): Likewise.
120         (*x86_movsicc_0_m1_se): Likewise.
121         (*adddi_1_rex64): Emit add insn as much as possible.
122         (*addsi_1): Likewise.
123         (return_internal): Set atom_unit.
124         (return_internal_long): Likewise.
125         (return_pop_internal): Likewise.
126         (*rcpsf2_sse): Set atom_sse_attr attr.
127         (*qrt<mode>2_sse): Likewise.
128         (*prefetch_sse): Likewise.
129
130         * config/i386/i386-c.c (ix86_target_macros_internal): New case
131         PROCESSOR_ATOM.
132         (ix86_target_macros_internal): Likewise.
133
134         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
135         (*prefetch_sse_rex): Likewise.
136         (sse_rcpv4sf2): Likewise.
137         (sse_vmrcpv4sf2): Likewise.
138         (sse_sqrtv4sf2): Likewise.
139         (<sse>_vmsqrt<mode>2): Likewise.
140         (sse_ldmxcsr): Likewise.
141         (sse_stmxcsr): Likewise.
142         (*sse_sfence): Likewise.
143         (sse2_clflush): Likewise.
144         (*sse2_mfence): Likewise.
145         (*sse2_lfence): Likewise.
146         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
147         (<sse>_movup<ssemodesuffixf2c>): Likewise.
148         (avx_movdqu<avxmodesuffix>): Likewise.
149         (avx_lddqu<avxmodesuffix>): Likewise.
150         (sse2_movntv2di): Change attr "type" to "ssemov".
151         (sse2_movntsi): Likewise.
152         (rsqrtv8sf2): Change attr "type" to "sseadd".
153         (sse3_addsubv2df3): Set attr "atom_unit".
154         (sse3_h<plusminus_insn>v4sf3): Likewise.
155         (*sse2_pmaddwd): Likewise.
156         (*vec_extractv2di_1_rex64): Likewise.
157         (*vec_extractv2di_1_avx): Likewise.
158         (sse2_psadbw): Likewise.
159         (ssse3_phaddwv8hi3): Likewise.
160         (ssse3_phaddwv4hi3): Likewise.
161         (ssse3_phadddv4si3): Likewise.
162         (ssse3_phadddv2si3): Likewise.
163         (ssse3_phaddswv8hi3): Likewise.
164         (ssse3_phaddswv4hi3): Likewise.
165         (ssse3_phsubwv8hi3): Likewise.
166         (ssse3_phsubwv4hi3): Likewise.
167         (ssse3_phsubdv4si3): Likewise.
168         (ssse3_phsubdv2si3): Likewise.
169         (ssse3_phsubswv8hi3): Likewise.
170         (ssse3_phsubswv4hi3): Likewise.
171         (ssse3_pmaddubsw128): Likewise.
172         (sse3_pmaddubsw: Likewise.
173         (ssse3_palignrti): Likewise.
174         (ssse3_palignrdi): Likewise.
175
176 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
177
178         * doc/install.texi (Specific): Fix two cross-references to MinGW.
179
180 2009-04-06  Richard Guenther  <rguenther@suse.de>
181
182         PR tree-optimization/28868
183         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
184         of which PHI results we inserted.
185         (insert_into_preds_of_block): Record inserted PHIs.
186         (eliminate): Eliminate redundant PHI nodes.
187         (init_pre): Init inserted_phi_names.
188
189 2009-04-06  Richard Guenther  <rguenther@suse.de>
190
191         PR tree-optimization/39643
192         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
193         IMAGPART_EXPRs of complex constants.
194         (execute_fold_all_builtins): If we folded a call queue
195         TODO_update_address_taken.
196
197 2009-04-06  Jan Hubicka  <jh@suse.cz>
198
199         PR middle-end/39659
200         * except.c (remove_unreachable_regions): Propagate may_contain_throw
201         flag.
202
203 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
204
205         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
206         delay slot.
207         (ic_invalidate_array): Likewise.
208
209 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
210
211         * calls.c (emit_library_call_value_1): Fix a problem with parameter
212         alignment for library calls.
213
214 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
215
216         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
217         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
218         * config/i386/mingw-stdint.h:  New file.
219
220 2009-04-05  Richard Guenther  <rguenther@suse.de>
221
222         PR tree-optimization/39648
223         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
224         our &A vs. &A[0] IL deficiencies.
225
226 2009-04-04  Jan Hubicka  <jh@suse.cz>
227
228         * except.c (sjlj_find_directly_reachable_regions): Be ready for
229         removed toplevel regions.
230         (sjlj_mark_call_sites): Likewise.
231
232 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
233
234         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
235         (cygwin tm clause use_gcc_stdint):  Set to wrap.
236         * config/i386/cygwin-stdint.h:  New file.
237
238 2009-04-04  Richard Guenther  <rguenther@suse.de>
239
240         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
241         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
242         single-argument PHIs if we are in loop-closed SSA form.
243         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
244         for the pre-condition.
245         (slpeel_tree_peel_loop_to_edge): Likewise.
246         (vect_build_loop_niters): Take an optional sequence to append stmts.
247         (vect_generate_tmps_on_preheader): Likewise.
248         (vect_do_peeling_for_loop_bound): Take extra guards for the
249         pre-condition.
250         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
251         the cost model check.
252         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
253         guards if we are going to peel.  Do not apply versioning in that
254         case.
255         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
256         (vect_do_peeling_for_loop_bound): Likewise.
257         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
258         loop bound only record extra pre-conditions, do not apply loop
259         versioning.
260
261 2009-04-04  Richard Guenther  <rguenther@suse.de>
262
263         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
264         renaming code.
265
266 2009-04-04  Jan Hubicka  <jh@suse.cz>
267
268         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
269         last_basic_block for size of bb->index indexed array.
270         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
271         compute_out, link_btr_uses, build_btr_def_use_webs,
272         build_btr_def_use_webs, migrate_btr_defs): Likewise.
273
274 2009-04-04  Jan Hubicka  <jh@suse.cz>
275
276         * except.c (remove_eh_handler_and_replace): Break out from ...
277         (remove_eh_handler): ... here.
278         (bring_to_root): New function.
279         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
280         handled ones, bring others to root of tree.
281
282 2009-04-04  Jan Hubicka  <jh@suse.cz>
283
284         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
285         (all_phis_safe_to_merge): New function.
286         (update_info): New structure.
287         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
288         (cleanup_empty_eh): Update SSA if possible.
289
290 2009-04-04  Richard Guenther  <rguenther@suse.de>
291
292         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
293         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
294         (append_vuse): Likewise.
295
296 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
297
298         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
299         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
300         instead of REG_UNSAVED for DW_CFA_undefined.
301         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
302         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
303         outermost frame.
304
305 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
306
307         PR target/39501
308         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
309         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
310         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
311
312 2009-04-04  Richard Guenther  <rguenther@suse.de>
313
314         PR tree-optimization/8781
315         PR tree-optimization/37892
316         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
317         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
318         (valueize_refs): Call it for *& valueizations.
319         (shared_reference_ops_from_ref): Rename to ...
320         (valueize_shared_reference_ops_from_ref): ... this and valueize.
321         (shared_reference_ops_from_call): Rename to ...
322         (valueize_shared_reference_ops_from_call): ... this and valueize.
323         (vn_reference_lookup): Update.
324         (visit_reference_op_call): Likewise.
325         * tree-ssa-pre.c (phi_translate_1): Fold *&.
326         (eliminate): Value-replace the call address in call statements.
327
328 2009-04-04  Richard Guenther  <rguenther@suse.de>
329
330         PR tree-optimization/39636
331         * tree-ssa-forwprop.c
332         (forward_propagate_addr_into_variable_array_index): Check for
333         GIMPLE_ASSIGN before accessing the rhs code.
334
335 2009-04-03  Jason Merrill  <jason@redhat.com>
336
337         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
338
339 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
340
341         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
342         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
343         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
344         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
345         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
346         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
347         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
348         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
349         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
350         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
351         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
352         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
353         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
354         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
355         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
356         Use fr_reg_or_fp01_operand instead of fr_register_operand
357
358         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
359         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
360         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
361
362 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
363
364         PR rtl-optimization/39607
365         PR rtl-optimization/39631
366         Revert
367         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
368         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
369         instead of DF_LR_OUT.
370         * ira-lives.c (process_bb_node_lives): Ditto.
371         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
372         instead of DF_LR_{OUT,IN}.
373         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
374         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
375
376 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
377
378         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
379         (execute_lower_omp): Always run but take the short way out if -fopenmp
380         is not given.
381         (gate_lower_omp): Remove, forcing the pass manager to always run the
382         pass and always set PROP_gimple_lomp.
383         (pass_lower_omp): Remove gate function.
384         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
385         PROP_trees.  Instead, require it.
386         * ipa-cp.c (pass_ipa_cp): Likewise.
387         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
388         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
389         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
390         and PROP_gimple_leh.
391
392 2009-04-03  Richard Guenther  <rguenther@suse.de>
393
394         PR middle-end/13146
395         PR tree-optimization/23940
396         PR tree-optimization/33237
397         PR middle-end/33974
398         PR middle-end/34093
399         PR tree-optimization/36201
400         PR tree-optimization/36230
401         PR tree-optimization/38049
402         PR tree-optimization/38207
403         PR tree-optimization/38230
404         PR tree-optimization/38301
405         PR tree-optimization/38585
406         PR middle-end/38895
407         PR tree-optimization/38985
408         PR tree-optimization/39299
409         * tree-ssa-structalias.h: Remove.
410         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
411         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
412         (struct vuse_element_d): Remove.
413         (struct vuse_vec_d): Likewise.
414         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
415         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
416         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
417         VUSE_ELEMENT_VAR): Likewise.
418         (struct voptype_d): Likewise.
419         (NUM_VOP_FREE_BUCKETS): Likewise.
420         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
421         (struct stmt_operands_d): Remove.
422         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
423         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
424         VDEF_NUM, VDEF_VECT): Likewise.
425         (copy_virtual_operands): Remove.
426         (operand_build_cmp): Likewise.
427         (create_ssa_artificial_load_stmt): Likewise.
428         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
429         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
430         vuse_index and mayuse_index members.  Pack and move done and iter_type
431         members to the front.
432         (SSA_OP_VMAYUSE): Remove.
433         (SSA_OP_VIRTUAL_USES): Adjust.
434         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
435         (unlink_stmt_vdef): Declare.
436         (add_to_addressable_set): Remove.
437         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
438         (vrp_visit_stmt): Likewise.
439         * doc/tree-ssa.texi (Alias analysis): Update.
440         * doc/invoke.texi (max-aliased-vops): Remove docs.
441         (avg-aliased-vops): Likewise.
442         * tree-into-ssa.c (syms_to_rename): Remove.
443         (need_to_update_vops_p): Likewise.
444         (need_to_initialize_update_ssa_p): Rename to ...
445         (update_ssa_initialized_fn): ... this.  Track function we are
446         initialized for.
447         (symbol_marked_for_renaming): Simplify.
448         (add_new_name_mapping): Do not set need_to_update_vops_p.
449         (dump_currdefs): Use SYMS_TO_RENAME.
450         (rewrite_update_stmt): Always walk all uses/defs.
451         (dump_update_ssa): Adjust.
452         (init_update_ssa): Take function argument.  Track what we are
453         initialized for.
454         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
455         (create_new_def_for): Initialize for cfun, assert we are initialized
456         for cfun.
457         (mark_sym_for_renaming): Simplify.
458         (mark_set_for_renaming): Do not initialize update-ssa.
459         (need_ssa_update_p): Simplify.  Take function argument.
460         (name_mappings_registered_p): Assert we ask for the correct function.
461         (name_registered_for_update_p): Likewise.
462         (ssa_names_to_replace): Likewise.
463         (release_ssa_name_after_update_ssa): Likewise.
464         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
465         (dump_decl_set): Do not print a newline.
466         (debug_decl_set): Do it here.
467         (dump_update_ssa): And here.
468         * tree-ssa-loop-im.c (move_computations): Adjust.
469         (movement_possibility): Likewise.
470         (determine_max_movement): Likewise.
471         (gather_mem_refs_stmt): Likewise.
472         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
473         or NAME_MEMORY_TAG.
474         * tree-complex.c (update_all_vops): Remove.
475         (expand_complex_move): Adjust.
476         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
477         Simplify test for memory referencing statement.  Exclude
478         non-invariant ADDR_EXPRs.
479         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
480         * tree-loop-distribution.c (generate_memset_zero): Adjust.
481         (rdg_flag_uses): Likewise.
482         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
483         related code.
484         (tree_optimize_tail_calls_1): Also split the
485         edge from the entry block if we have degenerate PHI nodes in
486         the first basic block.
487         * tree.c (init_ttree): Remove memory-tag related code.
488         (tree_code_size): Likewise.
489         (tree_node_structure): Likewise.
490         (build7_stat): Re-write to be build6_stat.
491         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
492         (SSA_VAR_P): Adjust.
493         (struct tree_memory_tag): Remove.
494         (struct tree_memory_partition_tag): Likewise.
495         (union tree_node): Adjust.
496         (build7): Re-write to be build6.
497         * tree-pass.h (pass_reset_cc_flags): Remove.
498         (TODO_update_address_taken): New flag.
499         (pass_simple_dse): Remove.
500         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
501         * params.h (MAX_ALIASED_VOPS): Remove.
502         (AVG_ALIASED_VOPS): Likewise.
503         * omp-low.c (expand_omp_taskreg): Update SSA form.
504         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
505         aliases the lhs in a copy stmt.
506         * tree-ssa-dse.c (struct address_walk_data): Remove.
507         (memory_ssa_name_same): Likewise.
508         (memory_address_same): Likewise.
509         (get_kill_of_stmt_lhs): Likewise.
510         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
511         unused stores.  Look through PHI nodes into post-dominated regions.
512         (dse_optimize_stmt): Simplify.  Properly remove stores.
513         (tree_ssa_dse): Compute dominators.
514         (execute_simple_dse): Remove.
515         (pass_simple_dse): Likewise.
516         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
517         gimple_loaded_syms and gimple_stored_syms computation.
518         * toplev.c (dump_memory_report): Dump alias and pta stats.
519         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
520         (vn_reference_eq): Likewise.
521         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
522         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
523         valueize_vuses): Remove.
524         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
525         (get_def_ref_stmt_vuse): ... this.
526         (vn_reference_lookup_2): New function.
527         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
528         walking equivalent vuses.  Simplify.
529         (vn_reference_lookup): Likewise.
530         (vn_reference_insert): Likewise.
531         (vn_reference_insert_pieces): Likewise.
532         (visit_reference_op_call): Simplify.
533         (visit_reference_op_load): Likewise.
534         (visit_reference_op_store): Likewise.
535         (init_scc_vn): Remove shared_lookup_vuses initialization.
536         (free_scc_vn): Remove shared_lookup_vuses freeing.
537         (sort_vuses, sort_vuses_heap): Remove.
538         (get_ref_from_reference_ops): Export.
539         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
540         vector with single vuse pointer.
541         (vn_reference_lookup_pieces, vn_reference_lookup,
542         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
543         (shared_vuses_from_stmt): Remove.
544         (get_ref_from_reference_ops): Declare.
545         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
546         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
547         memory-tag related code.
548         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
549         (likely_value): Add comment, skip static-chain of call statements.
550         (surely_varying_stmt_p): Adjust.
551         (gimplify_and_update_call_from_tree): Likewise.
552         (execute_fold_all_builtins): Do not rebuild alias info.
553         (gimplify_and_update_call_from_tree): Properly update VOPs.
554         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
555         (copy_ref_info): Remove memory-tag related code.
556         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
557         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
558         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
559         computation.
560         * tree-ssa-dom.c (gimple_p): Remove typedef.
561         (eliminate_redundant_computations): Adjust.
562         (record_equivalences_from_stmt): Likewise.
563         (avail_expr_hash): Likewise.
564         (avail_expr_eq): Likewise.
565         * tree-ssa-propagate.c (update_call_from_tree): Properly
566         update VOPs.
567         (stmt_makes_single_load): Likewise.
568         (stmt_makes_single_store): Likewise.
569         * tree-ssa-alias.c: Rewrite completely.
570         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
571         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
572         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
573         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
574         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
575         Remove public functions.
576         (pass_reset_cc_flags): Remove.
577         (pass_build_alias): Move ...
578         * tree-ssa-structalias.c (pass_build_alias): ... here.
579         * tree-ssa-alias.c (may_be_aliased): Move ...
580         * tree-flow-inline.h (may_be_aliased): ... here.
581         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
582         count_uses_and_derefs): Move ...
583         * gimple.c: ... here.
584         * gimple.h (count_uses_and_derefs): Declare.
585         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
586         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
587         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
588         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
589         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
590         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
591         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
592         New functions.
593         * tree-dfa.c (refs_may_alias_p): Move ...
594         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
595         * tree-ssa-alias.h: New file.
596         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
597         (statement_sink_location): Likewise.
598         * opts.c (decode_options): Do not adjust max-aliased-vops or
599         avg-aliased-vops values.
600         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
601         (TV_CALL_CLOBBER): Likewise.
602         (TV_FLOW_SENSITIVE): Likewise.
603         (TV_FLOW_INSENSITIVE): Likewise.
604         (TV_MEMORY_PARTITIONING): Likewise.
605         (TV_ALIAS_STMT_WALK): New timevar.
606         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
607         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
608         (get_address_description): Remove memory-tag related code.
609         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
610         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
611         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
612         and immediate uses in statements.  Document.
613         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
614         (dump_symbols): Remove.
615         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
616         * alias.c (get_deref_alias_set): New function split out from ...
617         (get_alias_set): ... here.
618         * alias.h (get_deref_alias_set): Declare.
619         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
620         type parameter.  Remove restrict pointer handling.  Create a
621         ref-all pointer in case type-based alias sets do not conflict.
622         (vect_analyze_data_refs): Remove SMT related code.
623         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
624         (vectorizable_load): Likewise.
625         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
626         (DR_SYMBOL_TAG, DR_VOPS): Remove.
627         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
628         Ignore vops and SMTs.
629         (dr_analyze_alias): Likewise..
630         (free_data_ref): Likewise.
631         (create_data_ref): Likewise.
632         (analyze_all_data_dependences): Likewise.
633         (get_references_in_stmt): Adjust.
634         * tree-flow-inline.h (gimple_aliases_computed_p,
635         gimple_addressable_vars, gimple_call_clobbered_vars,
636         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
637         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
638         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
639         gimple_mem_ref_stats): Remove.
640         (gimple_vop): New function.
641         (op_iter_next_use): Remove vuses and mayuses cases.
642         (op_iter_next_def): Remove vdefs case.
643         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
644         (clear_and_done_ssa_iter): Do not set removed fields.
645         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
646         Assert we are not iterating over vuses or vdefs if not also
647         iterating over uses or defs.
648         (op_iter_init_use): Likewise.
649         (op_iter_init_def): Likewise.
650         (op_iter_next_vdef): Remove.
651         (op_iter_next_mustdef): Likewise.
652         (op_iter_init_vdef): Likewise.
653         (compare_ssa_operands_equal): Likewise.
654         (link_use_stmts_after): Handle vuse operand.
655         (is_call_used): Use is_call_clobbered.
656         (is_call_clobbered): Global variables are always call clobbered,
657         query the call-clobbers bitmap.
658         (mark_call_clobbered): Ignore global variables.
659         (clear_call_clobbered): Likewise.
660         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
661         virtual operands sanity check.
662         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
663         Remove.
664         (TARGET_MEM_REF): Remove TMR_TAG operand.
665         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
666         Remove call-clobber related code.
667         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
668         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
669         partitions or escape reason.
670         (get_single_def_stmt, get_single_def_stmt_from_phi,
671         get_single_def_stmt_with_phi): Remove.
672         (dump_referenced_vars): Tidy.
673         (get_ref_base_and_extent): Allow bare decls.
674         (collect_dfa_stats): Adjust.
675         * graphite.c (rename_variables_in_stmt): Adjust.
676         (graphite_copy_stmts_from_block): Likewise.
677         (translate_clast): Likewise.
678         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
679         (EXPR_DIES): New.
680         (translate_vuse_through_block): Use the oracle.
681         (phi_translate_1): Adjust.
682         (value_dies_in_block_x): Use the oracle.  Cache the outcome
683         in EXPR_DIES.
684         (valid_in_sets): Check if the VUSE for
685         a REFERENCE is available.
686         (eliminate): Do not remove stmts during elimination,
687         instead queue and remove them afterwards.
688         (do_pre): Do not rebuild alias info.
689         (pass_pre): Run TODO_rebuild_alias before PRE.
690         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
691         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
692         (mark_all_v_defs_stmt): Remove.
693         (mark_all_v_defs_seq): Adjust.
694         (sra_replace): Likewise.
695         (scalarize_use): Likewise.
696         (scalarize_copy): Likewise.
697         (scalarize_init): Likewise.
698         (scalarize_ldst): Likewise.
699         (todoflags): Remove.
700         (tree_sra): Do not rebuild alias info.
701         (tree_sra_early): Adjust.
702         (pass_sra): Run TODO_update_address_taken before SRA.
703         * tree-predcom.c (set_alias_info): Remove.
704         (prepare_initializers_chain): Do not call it.
705         (mark_virtual_ops_for_renaming): Adjust.
706         (mark_virtual_ops_for_renaming_list): Remove.
707         (initialize_root_vars): Adjust.
708         (initialize_root_vars_lm): Likewise.
709         (prepare_initializers_chain): Likewise.
710         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
711         (may_propagate_copy_into_stmt): Likewise.
712         (merge_alias_info): Do nothing for now.
713         (propagate_tree_value_into_stmt): Adjust.
714         (stmt_may_generate_copy): Likewise.
715         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
716         not mark symbols for renaming.
717         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
718         with the same statement, make sure to update the new pointed-to one.
719         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
720         call statements, do not mark symbols for renaming.
721         (mark_operand_necessary): Dump something.
722         (ref_may_be_aliased): New function.
723         (mark_aliased_reaching_defs_necessary_1): New helper function.
724         (mark_aliased_reaching_defs_necessary): Likewise.
725         (mark_all_reaching_defs_necessary_1): Likewise.
726         (mark_all_reaching_defs_necessary): Likewise.
727         (propagate_necessity): Do not process virtual PHIs.  For
728         non-aliased loads mark all reaching definitions as necessary.
729         For aliased loads and stores mark the immediate dominating
730         aliased clobbers as necessary.
731         (visited): New global static.
732         (perform_tree_ssa_dce): Free visited bitmap after propagating
733         necessity.
734         (remove_dead_phis): Perform simple dead virtual PHI removal.
735         (remove_dead_stmt): Properly unlink virtual operands when
736         removing stores.
737         (eliminate_unnecessary_stmts): Schedule PHI removal after
738         stmt removal.
739         * tree-ssa-ter.c (is_replaceable_p): Adjust.
740         (process_replaceable): Likewise.
741         (find_replaceable_in_bb): Likewise.
742         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
743         based on the single gimple vop.
744         (verify_flow_insensitive_alias_info): Remove.
745         (verify_flow_sensitive_alias_info): Likewise.
746         (verify_call_clobbering): Likewise.
747         (verify_memory_partitions): Likewise.
748         (verify_alias_info): Likewise.
749         (verify_ssa): Adjust..
750         (execute_update_addresses_taken): Export.  Update SSA
751         manually.  Optimize only when optimizing.  Use a local bitmap.
752         (pass_update_address_taken): Remove TODO_update_ssa, add
753         TODO_dump_func.
754         (pass_update_address_taken): Just use TODO_update_address_taken.
755         (init_tree_ssa): Do not initialize addressable_vars.
756         (verify_ssa): Verify new VUSE / VDEF properties.
757         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
758         Do not call verify_alias_info.
759         (delete_tree_ssa): Clear the VUSE, VDEF operands.
760         Do not free the loaded and stored syms bitmaps.  Reset the escaped
761         and callused solutions.  Do not free addressable_vars.
762         Remove memory-tag related code.
763         (warn_uninitialized_var): Aliases are always available.
764         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
765         * lambda-code.c (can_put_in_inner_loop): Adjust.
766         (can_put_after_inner_loop): Likewise.
767         (perfect_nestify): Likewise.
768         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
769         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
770         (vectorizable_conversion): Do not mark symbols for renaming.
771         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
772         (expand_call_inline): Unlink the calls virtual operands before
773         replacing it.
774         (tree_function_versioning): Do not call update_ssa if we are not
775         updating clones.  Simplify.
776         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
777         (propagate_with_phi): Likewise..
778         * tree-outof-ssa.c (create_temp): Remove memory tag and call
779         clobber code.  Assert we are not aliased or global.
780         * tree-flow.h: Include tree-ssa-alias.h
781         (enum escape_type): Remove.
782         (struct mem_sym_stats_d): Likewise.
783         (struct mem_ref_stats_d): Likewise.
784         (struct gimple_df): Add vop member.  Remove global_var,
785         call_clobbered_vars, call_used_vars, addressable_vars,
786         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
787         escaped and callused members.
788         (struct ptr_info_def): Remove all members, add points-to solution
789         member pt.
790         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
791         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
792         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
793         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
794         (tree-ssa-alias.o): Likewise.
795         (toplev.o): Add tree-ssa-alias.h
796         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
797         * gimple.c (gimple_set_bb): Fix off-by-one error.
798         (is_gimple_reg): Do not handle memory tags.
799         (gimple_copy): Also copy virtual operands.
800         Delay updating the statement.  Do not reset loaded and stored syms.
801         (gimple_set_stored_syms): Remove.
802         (gimple_set_loaded_syms): Likewise.
803         (gimple_call_copy_skip_args): Copy the virtual operands
804         and mark the new statement modified.
805         * tree-ssa-structalias.c (may_alias_p): Remove.
806         (set_uids_in_ptset): Take the alias set to prune with as
807         parameter.  Fold in the alias test of may_alias_p.
808         (compute_points_to_sets): Compute whether a ptr is dereferenced
809         in a local sbitmap.
810         (process_constraint): Deal with &ANYTHING on the lhs, reject all
811         other ADDRESSOF constraints on the lhs.
812         (get_constraint_for_component_ref): Assert that we don't get
813         ADDRESSOF constraints from the base of the reference.
814         Properly generate UNKNOWN_OFFSET for DEREF if needed.
815         (struct variable_info): Remove collapsed_to member.
816         (get_varinfo_fc): Remove.
817         (new_var_info): Do not set collapsed_to.
818         (dump_constraint): Do not follow cycles.
819         (dump_constraint_graph): Likewise.
820         (build_pred_graph): Likewise.
821         (build_succ_graph): Likewise.
822         (rewrite_constraints): Likewise.
823         (do_simple_structure_copy): Remove.
824         (do_rhs_deref_structure_copy): Remove.
825         (do_lhs_deref_structure_copy): Remove.
826         (collapse_rest_of_var): Remove.
827         (do_structure_copy): Re-implement.
828         (pta_stats): New global variable.
829         (dump_pta_stats): New function.
830         (struct constraint_expr): Make offset signed.
831         (UNKNOWN_OFFSET): Define special value.
832         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
833         (solution_set_expand): New helper function split out from ...
834         (do_sd_constraint): ... here.
835         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
836         (do_ds_constraint): Likewise.
837         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
838         and CALLUSED = *CALLUSED.
839         (set_union_with_increment): Make inc argument signed.
840         (type_safe): Remove.
841         (get_constraint_for_ptr_offset): Handle unknown and negative
842         constant offsets.
843         (first_vi_for_offset): Handle offsets before start.  Bail
844         out early for offsets beyond the variable extent.
845         (first_or_preceding_vi_for_offset): New function.
846         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
847         Together with ESCAPED = *ESCAPED this properly computes reachability.
848         (find_what_var_points_to): New function.
849         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
850         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
851         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
852         pt_solutions_intersect): New functions.
853         (compute_call_used_vars): Remove.
854         (compute_may_aliases): New main entry into PTA computation.
855         * gimple.h (gimple_p): New typedef.
856         (struct gimple_statement_base): Remove references_memory_p.
857         (struct gimple_statement_with_memory_ops_base): Remove
858         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
859         members.
860         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
861         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
862         gimple_set_references_memory): Remove.
863         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
864         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
865         New functions.
866         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
867         (verify_expr): Allow RESULT_DECL.
868         (gimple_duplicate_bb): Do not copy virtual operands.
869         (gimple_duplicate_sese_region): Adjust.
870         (gimple_duplicate_sese_tail): Likewise.
871         (mark_virtual_ops_in_region): Remove.
872         (move_sese_region_to_fn): Do not call it.
873         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
874         and pass_simple_dse.
875         (execute_function_todo): Handle TODO_update_address_taken,
876         call execute_update_addresses_taken for TODO_rebuild_alias.
877         (execute_todo): Adjust.
878         (execute_one_pass): Init dump files early.
879         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
880         call-clobbered.
881         (create_general_new_stmt): Clear vops.
882         * tree-ssa-reassoc.c (get_rank): Adjust.
883         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
884         symbols for renaming.
885         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
886         (PARAM_AVG_ALIASED_VOPS): Likewise.
887         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
888         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
889         * tree-ssa-operands.c: Simplify for new virtual operand
890         representation.
891         (operand_build_cmp, copy_virtual_operands,
892         create_ssa_artificial_load_stmt, add_to_addressable_set,
893         gimple_add_to_addresses_taken): Remove public functions.
894         (unlink_stmt_vdef): New function.
895
896 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
897
898         * config.gcc (powerpc-*-linux*): Merge variants.
899
900 2009-04-02  Chao-ying Fu  <fu@mips.com>
901             James Grosbach <james.grosbach@microchip.com>
902
903         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
904         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
905         cop0_sp_offset.
906         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
907         keep_interrupts_masked_p, use_debug_exception_return_p.
908         (mips_attribute_table): Add interrupt, use_shadow_register_set,
909         keep_interrupts_masked, use_debug_exception_return.
910         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
911         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
912         New functions.
913         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
914         (mips_print_operand): Process COP0 registers to print $0 .. $31
915         correctly for GAS to process.
916         (mips_interrupt_extra_call_saved_reg_p): New function.
917         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
918         extra registers.
919         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
920         (mips_compute_frame_info): Add supports for interrupt context that
921         includes doubleword accumulators and COP0 registers.
922         (mips_for_each_saved_acc): New function.
923         (mips_for_each_saved_gpr_and_fpr): Change the function name from
924         mips_for_each_saved_reg.
925         (mips_save_reg): Save accumulators.
926         (mips_kernel_reg_p): A new for_each_rtx callback.
927         (mips_expand_prologue): Support interrupt handlers.
928         (mips_restore_reg): Restore accumulators.
929         (mips_expand_epilogue): Support interrupt handlers.
930         (mips_can_use_return_insn): Return false for interrupt handlers.
931         (mips_epilogue_uses): New function.
932         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
933         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
934         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
935         cop0_move): New instructions.
936         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
937         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
938         defines.
939         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
940         New defines.
941         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
942         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
943         interrupt handlers, we use K0 as the temporary register.
944         (EPILOGUE_USES): Change to a function call.
945         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
946         handlers, we use K0 as the temporary register.
947         
948         * doc/extend.texi (Function Attributes): Document interrupt,
949         use_shadow_register_set, keep_interrupts_masked,
950         use_debug_exception_return for MIPS attributes.
951
952 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
953
954         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
955         Remove a number of t-files from tmake_file.
956         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
957         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
958         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
959         target_prototype, not TARGET_PROTOTYPE.
960         (LINK_OS_GNU_SPEC): Define.
961         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
962         and darwin-ldoubdle.c.
963
964 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
965
966         PR driver/39293
967         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
968         (cpp_options): Ditto.
969         (default_compilers): Ditto.
970         (display_help): Ditto.
971         (process_command): Ditto.
972         (do_spec_1): Ditto.
973         (set_input): Use lbasename instead of duplicate code.
974         (save_temps_prefix): New static for -save-temps=obj.
975         (save_temps_length): Ditto.
976         
977         * doc/invoke.texi (-save-temps=obj): Document new variant to
978         -save-temps switch.
979
980 2009-04-02  Jeff Law  <law@redhat.com>
981
982         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
983         variable.
984
985 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
986
987         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
988         * configure: Regenerated.
989
990 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
991
992         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
993         share the argument list.
994
995 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
996
997         Merge
998
999         2009-02-12  Diego Novillo  <dnovillo@google.com>
1000
1001         * varpool.c (debug_varpool): New.
1002         * cgraph.h (debug_varpool): Declare.
1003
1004 2009-04-02  Jan Hubicka  <jh@suse.cz>
1005
1006         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1007         pass.
1008
1009 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
1010
1011         * config/i386/i386.c (ix86_abi): Move initialization to ...
1012         (override_options): Here.
1013
1014 2009-04-02  Christian Bruel  <christian.bruel@st.com>
1015
1016         * config/sh/sh.c (sh_dwarf_register_span): New function.
1017         (TARGET_DWARF_REGISTER_SPAN): Define.
1018         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1019         
1020 2009-04-02  Ira Rosen  <irar@il.ibm.com>
1021
1022         PR tree-optimization/39595
1023         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 
1024         interleaved loads group is not  greater than the SLP group size.
1025
1026 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
1027
1028         * builtins.c (is_builtin_name): New.
1029         (called_as_built_in): Use is_builtin_name.
1030         * tree.h (is_builtin_name): New.
1031         * varasm.c (incorporeal_function_p): Use is_builtin_name
1032
1033 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
1034
1035         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1036
1037 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
1038
1039         PR c++/26693
1040         * c-decl.c: (clone_underlying_type): Move this ...
1041         * c-common.c (set_underlying_type): ... here.
1042         Also, make sure the function properly sets TYPE_STUB_DECL() on
1043         the newly created typedef variant type.
1044         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1045         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points.
1046
1047 2009-04-02  Richard Guenther  <rguenther@suse.de>
1048
1049         PR tree-optimization/37221
1050         * tree-flow.h (degenerate_phi_result): Declare.
1051         * tree-ssa-dom.c (degenerate_phi_result): Export.
1052         * tree-scalar-evolution.c (analyze_initial_condition): If
1053         the initial condition is defined by a degenerate PHI node
1054         use the degenerate value.
1055
1056 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
1057
1058         PR rtl-optimization/39588
1059         * combine.c (merge_outer_ops): Do not set the constant when this
1060         is not necessary.
1061         (simplify_shift_const_1): Do not modify it either in this case.
1062
1063 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
1064
1065         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1066         tuning is deprecated if -mtune value is set to an Itanium1 variant.
1067
1068 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
1069
1070         PR c/29027
1071         * c-lex.c (interpret_float): Default (no suffix) is double.
1072
1073 2009-04-1  Xinliang David Li  <davidxl@google.com>
1074
1075         * config/i386/i386.c (legitimate_constant_p): Recognize
1076         all one vector constant.
1077
1078 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1079
1080         * gcc/config/vax/vax.c: Add #includes to silence warnings.
1081         Change #include order to silence two warnings.
1082
1083 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1084
1085         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1086         (ASM_SPEC): Pass -k to the assembler for PIC code.
1087
1088 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1089
1090         * gcc/config.gcc: Add vax-*-linux* to the switch.
1091         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1092         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1093
1094 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1095
1096         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1097         Use predicate macros instead of GET_CODE() == foo.
1098         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1099         ashlsi3, rotrsi3, <unnamed>): Likewise.
1100
1101 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1102
1103         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1104         jbbccihi, jbbccisi): Remova trailing whitespace.
1105         * gcc/config/vax/constraints.md: Likewise.
1106         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1107         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1108         * gcc/config/vax/predicates.md: Likewise.
1109         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1110         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1111         * gcc/config/vax/vax.h: Likewise.
1112         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1113
1114 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1115
1116         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1117         (indirectable_address_p, adjacent_operands_p): Add spaces around
1118         braces.
1119         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1120
1121 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1122
1123         * gcc/config/vax/vax.c (legitimate_constant_address_p,
1124         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1125         index_term_p, reg_plus_index_p, legitimate_address_p,
1126         vax_mode_dependent_address_p): Update comments to match functions
1127         modified by the recent int->bool conversion.
1128
1129 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1130
1131         * gcc/config/vax/builtins.md: Update copyright message.
1132         * gcc/config/vax/constraints.md: Likewise.
1133         * gcc/config/vax/netbsd-elf.h: Likewise.
1134         * gcc/config/vax/predicates.md: Likewise.
1135         * gcc/config/vax/vax-protos.h: Likewise.
1136         * gcc/config/vax/vax.c: Likewise.
1137         * gcc/config/vax/vax.h: Likewise.
1138         * gcc/config/vax/vax.md: Likewise.
1139         * gcc/config/vax/vax.opt: Likewise.
1140
1141 2009-04-01      Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1142
1143         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1144         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1145         * gcc/config/vax/constraints.md (B, R): Likewise.
1146         * gcc/config/vax/predicates.md (external_memory_operand,
1147         nonimmediate_addsub_di_operand): Likewise.
1148         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1149         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1150         untyped_call): Likewise.
1151
1152 2009-04-01      Matt Thomas <matt@3am-software.com>
1153
1154         * config/vax/predicates.md: New file. (symbolic_operand,
1155         local_symbolic_operand, external_symbolic_operand,
1156         external_const_operand, nonsymbolic_operand, external_memory_operand,
1157         indirect_memory_operand, indexed_memory_operand,
1158         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1159         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1160         predicate.
1161         * config/vax/constraints.md: New file. (Z0, U06,  U08, U16, CN6, S08,
1162         S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
1163         * config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
1164         sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
1165         sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
1166         * config/vax/vax.opt (mqmath): Add option.
1167         * config/vax/vax.md (isfx): Extend with DI.
1168         (VAXintQH, VAXintQHSD): Define.
1169         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1170         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1171         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1172         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
1173         (movdi): Update constraints and use vax_output_int_move().
1174         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
1175         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
1176         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
1177         nonlocal_goto): New.
1178         (mov<mode>): Extend accepted operand types.
1179         (subdi3_old): Rename from subdi3, change update constraints and use
1180         a new implementation.
1181         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1182         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1183         MOVE_RATIO, CLEAR_RATIO): Define.
1184         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1185         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1186         (PRINT_OPERAND): Redefine using a function instead of inlined code.
1187         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1188         (split_quadword_operands): Make static and really allow variable
1189         splitting.
1190         (print_operand_address): Update for PIC generation.
1191         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1192         indexable_address_p, fixup_mathdi_operand,
1193         vax_expand_addsub_di_operands, adjacent_operands_p): New.
1194         (vax_float_literal, legitimate_constant_p,
1195         indirectable_constant_address_p, index_term_p,
1196         reg_plus_index_p): Return bool instead of int.
1197         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1198         where needed.
1199         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1200         generation.
1201         (vax_output_conditional_branch): Indent.
1202         (legitimate_constant_address_p, indirectable_constant_address_p,
1203         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1204         vax_mode_dependent_address_p): Return bool instead of int, update for
1205         PIC generation.
1206         * config/vax/vax-protos.h (legitimate_constant_address_p,
1207         legitimate_constant_p, legitimate_address_p,
1208         vax_mode_dependent_address_p): Change declaration to bool.
1209         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1210         vax_expand_addsub_di_operands, vax_output_int_subtract,
1211         vax_output_movmemsi): Declare.
1212         (split_quadword_operands, vax_float_literal): Delete declaration.
1213         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1214         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1215         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1216         ASM_OUTPUT_DWARF_PCREL): Define.
1217         (ASM_SPEC): Change definition to allow PIC generation.
1218
1219 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1220
1221         PR target/39226
1222         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1223         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1224         (booldi3_internal3): Use boolean_or_operator instead of
1225         boolean_operator.
1226
1227 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
1228
1229         PR c/39605
1230         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
1231         declarator whose size is not an integer constant expression but
1232         folds to an integer constant, then treat it as a constant
1233         subsequently.
1234
1235 2009-04-01  Richard Guenther  <rguenther@suse.de>
1236
1237         * fold-const.c (fold_plusminus_mult_expr): Do not fold
1238         i * 4 + 2 to (i * 2 + 1) * 2.
1239
1240 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1241
1242         PR c/37772
1243         * c-parser.c (c_parser_asm_statement): Skip until close paren and
1244         return if c_parser_asm_string_literal returned NULL.
1245
1246 2009-04-01  Nick Clifton  <nickc@redhat.com>
1247
1248         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
1249         already defined.
1250         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
1251         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
1252         other typedefs to avoid conflicts with libgcc2.c.  Define labels
1253         to gain 16-bit bit-manipulation functions from libgcc2.c and then
1254         include it.
1255         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
1256         to gain 16-bit trapping arithmetic functions from libgcc2.c and
1257         then include it.
1258
1259 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
1260
1261        * varasm.c (default_function_rodata_section): Declare DOT as const char*.
1262
1263 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
1264             Andrey Galkin <agalkin@hypercom.com>
1265
1266         PR/39492
1267         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
1268         Make object_name unique for each process.
1269
1270 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1271
1272         PR other/39591
1273         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
1274         addressable variables in the parallel that could go out of scope while
1275         running queued tasks.
1276
1277 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
1278
1279         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
1280         (CASE_VALUES_THRESHOLD): Redefine.
1281         * config/avr/avr.c (avr_override_options): Remove initialization of
1282         avr_case_values_threshold variable.
1283         (avr_case_values_threshold): Remove variable. Add new function.
1284         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
1285         * config/avr/avr.opt (mno-tablejump): Remove option.
1286         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
1287
1288 2009-04-01  DJ Delorie  <dj@redhat.com>
1289
1290         * varasm.c (default_function_rodata_section): Don't assume
1291         anything about where the first '.' in the section name is.
1292
1293 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
1294
1295         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
1296         rs6000_emit_stack_tie.
1297
1298 2009-03-31  Ian Lance Taylor  <iant@google.com>
1299
1300         * tree-eh.c (tree_remove_unreachable_handlers): Compare
1301         gimple_code with GIMPLE_RESX, not RESX.
1302
1303 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1304
1305         * c-common.c (c_get_ident): New.
1306         (c_common_nodes_and_builtins): Call it for type names that may be
1307         NULL.
1308
1309 2009-04-01  Ben Elliston  <bje@au.ibm.com>
1310
1311         * config/rs6000/sysv4.opt (msdata): Improve option description.
1312
1313 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
1314
1315         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
1316         (divdf3_internal_lat): Remove.
1317         (divxf3_internal_lat): Remove.
1318         (divxf3_internal_thr): Remove.
1319         (divxf): Use divxf3_internal.
1320         * config/ia64/div.md (divsf3_internal_lat): New.
1321         (divdf3_internal_lat): New.
1322         (divxf3_internal): New.
1323
1324 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1325
1326         PR c/448
1327         * Makefile.in (USE_GCC_STDINT): Define.
1328         (stmp-int-hdrs): Install stdint.h if applicable.
1329         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
1330         if known.
1331         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
1332         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
1333         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1334         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1335         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1336         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1337         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1338         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1339         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1340         (c_common_nodes_and_builtins): Initialize
1341         underlying_wchar_type_node.  Do not initialize
1342         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
1343         nodes for new types.
1344         (c_stddef_cpp_builtins): Define macros for new types.
1345         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
1346         Remove.
1347         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
1348         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
1349         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
1350         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
1351         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
1352         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
1353         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
1354         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
1355         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
1356         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
1357         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
1358         int16_type_node, int32_type_node, int64_type_node,
1359         uint8_type_node, uint16_type_node, c_uint32_type_node,
1360         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
1361         int_least32_type_node, int_least64_type_node,
1362         uint_least8_type_node, uint_least16_type_node,
1363         uint_least32_type_node, uint_least64_type_node,
1364         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
1365         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
1366         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
1367         uintptr_type_node): Define.
1368         * c-cppbuiltin.c (builtin_define_constants,
1369         builtin_define_type_minmax): New.
1370         (builtin_define_stdint_macros): Define more macros.
1371         (c_cpp_builtins): Define more limit macros.
1372         (type_suffix): New.
1373         (builtin_define_type_max): Define in terms of
1374         builtin_define_type_minmax.  Remove is_long parameter.  All
1375         callers changed.
1376         * config.gcc (use_gcc_stdint): Define.
1377         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
1378         Add newlib-stdint.h for generic targets.
1379         * config/glibc-stdint.h, config/newlib-stdint.h,
1380         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
1381         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
1382         * config/score/score.h (UINTPTR_TYPE): Define.
1383         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1384         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1385         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1386         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1387         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1388         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1389         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1390         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1391         * config/spu/spu.h (STDINT_LONG32): Define.
1392         * configure.ac (use_gcc_stdint): Substitute.
1393         * configure: Regenerate.
1394         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
1395         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
1396         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
1397         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
1398         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
1399         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
1400         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
1401         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
1402         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
1403         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
1404         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
1405         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
1406         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
1407         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
1408         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
1409         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
1410         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
1411         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
1412         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
1413         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
1414         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
1415         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
1416         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1417         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1418         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1419         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1420         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1421         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1422         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
1423
1424 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
1425
1426         * loop-iv.c (suitable_set_for_replacement): Renamed from
1427         simplify_using_assignment; changed to return bool and to accept new
1428         args DEST and SRC.  Return true iff we find a source/destination pair
1429         that can be used to make a replacement, and fill SRC and DEST if so.
1430         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
1431         changed.
1432         (simplify_using_initial_values): Deal with altered regs here and track
1433         more precisely the effect they have on the validity of our expression.
1434
1435         * loop-iv.c (simplify_using_condition): A condition of the form
1436         (EQ REG CONST) can be used to simply make a substitution.
1437         (simplify_using_initial_values): Keep track of conditions we have seen
1438         and keep using them to simplify new expressions, while applying the
1439         same substitutions to them as to the expression.
1440
1441         * simplify-rtx.c (simplify_relational_operation_1): Simplify
1442         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
1443         GEU/LTU reversed.
1444
1445         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
1446         changed.  Use this when trying to improve the upper bound.
1447         Generate the comparison by using simplify_gen_relational.
1448
1449         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
1450
1451         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
1452         functions.
1453         (simplify_using_assignment, simplify_using_initial_values): Call 
1454         replace_in_expr to make replacements.  Call replace_single_def_regs
1455         once on the initial version of the expression.
1456
1457 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1458
1459         PR target/27237
1460         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
1461         
1462 2009-03-31  Richard Guenther  <rguenther@suse.de>
1463
1464         PR middle-end/31029
1465         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
1466         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
1467
1468 2009-03-31  Richard Guenther  <rguenther@suse.de>
1469
1470         * tree.h (div_if_zero_remainder): Declare.
1471         * fold-const.c (div_if_zero_remainder): Export.
1472         * tree-ssa-forwprop.c
1473         (forward_propagate_addr_into_variable_array_index): Handle
1474         constant array index addition outside of the variable index.
1475
1476 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1477
1478         PR target/39592
1479         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
1480         define_splits, floatunssi<mode>2): Require x87 conversions from
1481         DImode to be permitted.
1482
1483 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
1484
1485         PR preprocessor/15638
1486         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
1487
1488 2009-03-31  Richard Guenther  <rguenther@suse.de>
1489
1490         PR middle-end/23401
1491         PR middle-end/27810
1492         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
1493         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
1494         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
1495         a separate statement.
1496         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
1497         (lookup_tmp_var): Likewise.
1498         (is_gimple_formal_tmp_or_call_rhs): Remove.
1499         (is_gimple_reg_or_call_rhs): Rename to ...
1500         (is_gimple_reg_rhs_or_call): ... this.
1501         (is_gimple_mem_or_call_rhs): Rename to ...
1502         (is_gimple_mem_rhs_or_call): ... this.
1503         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
1504         DECL_GIMPLE_REG_P only if is_formal is true.
1505         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
1506         for non-proper post-modify expression gimplification.
1507         (gimplify_self_mod_expr): For post-modify expressions gimplify
1508         the lvalue to a minimal lvalue.
1509         (rhs_predicate_for): Remove formal temp case.
1510         (gimplify_modify_expr_rhs): Likewise.
1511         (gimplify_addr_expr): Use is_gimple_reg.
1512         (gimplify_expr): Remove formal temp cases.
1513         (gimple_regimplify_operands): Likewise.
1514         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
1515         and FILTER_EXPR like constants.
1516         * gimple.c (walk_gimple_op): Fix val_only initialization, use
1517         is_gimple_reg.
1518         (is_gimple_formal_tmp_rhs): Remove.
1519         (is_gimple_reg_rhs): Remove special casing.
1520         (is_gimple_mem_rhs): Fix.
1521         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
1522         (is_gimple_formal_tmp_var): Remove.
1523         (is_gimple_formal_tmp_reg): Likewise.
1524         (is_gimple_min_lval): Allow invariant component ref parts.
1525         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
1526         is_gimple_formal_tmp_reg): Remove declarations.
1527         * tree-cfg.c (verify_expr): Verify that variables with address
1528         taken do not have DECL_GIMPLE_REG_P set.
1529         * tree-mudflap.c (mf_build_check_statement_for): Use
1530         force_gimple_operand instead of gimplify_expr.
1531
1532 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
1533
1534         * modulo-sched.c (sms_schedule_by_order): Pass the actual
1535         schedulable rows to compute_split_row.
1536
1537 2009-03-31  Ben Elliston  <bje@au.ibm.com>
1538
1539         PR target/31635
1540         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
1541         OPT_mvrsave.
1542
1543 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
1544
1545         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
1546         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
1547         * configure: Regenerate.
1548         * config.in: Regenerate.
1549         * config/rs6000/rs6000.opt (mtls-markers): Add.
1550         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
1551         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
1552         (tls_ld_aix, tls_ld_sysv): Likewise.
1553         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
1554         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
1555
1556 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
1557
1558         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
1559
1560 2009-03-30  Jan Hubicka  <jh@suse.cz>
1561
1562         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
1563         out of RESX.
1564         (tree_remove_unreachable_handlers): Cleanup EH predecestor
1565         detection and label handling.
1566
1567 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1568
1569         * ira-int.h (ira_allocno): Rename left_conflicts_num to
1570         left_conflicts_size.
1571         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
1572         ALLOCNO_LEFT_CONFLICTS_SIZE.
1573
1574         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
1575         remove_allocno_from_bucket_and_push,
1576         allocno_spill_priority_compare, push_allocnos_to_stack,
1577         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1578         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
1579         (setup_allocno_left_conflicts_num): Ditto.  Rename to
1580         setup_allocno_left_conflicts_size.
1581         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1582         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
1583         setup_allocno_left_conflicts_size instead of
1584         setup_allocno_left_conflicts_num.
1585
1586         * ira-build.c (ira_create_allocno): Use
1587         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
1588         ALLOCNO_LEFT_CONFLICTS_NUM.
1589                 
1590 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
1591
1592         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1593         instead of DF_LR_OUT.
1594
1595         * ira-lives.c (process_bb_node_lives): Ditto.
1596
1597         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1598         instead of DF_LR_{OUT,IN}.
1599
1600         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1601
1602         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1603
1604 2009-03-30  Jan Hubicka  <jh@suse.cz>
1605
1606         * except.c (label_to_region_map): Fix thinko.
1607
1608 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
1609
1610         PR middle-end/38237
1611         * tree.h (tree_find_value): New declaration.
1612         * tree.c (tree_find_value): New function.
1613         * varasm.c (assemble_external): Avoid duplicate entries on lists.
1614
1615 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
1616
1617         PR debug/39563
1618         * c-decl.c (struct c_binding): Add locus field.
1619         (bind): Add locus argument, set locus field from it.
1620         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
1621         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
1622         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
1623         implicitly_declare, undeclared_variable, lookup_label,
1624         declare_label, c_make_fname_decl, c_builtin_function,
1625         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
1626         bind callers.
1627
1628 2008-03-30  H.J. Lu  <hongjiu.lu@intel.com>
1629
1630         PR target/38781
1631         * config/i386/i386.c (classify_argument): Check total size of
1632         structure.
1633
1634 2009-03-30  Martin Jambor  <mjambor@suse.cz>
1635
1636         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
1637         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
1638         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
1639         respectively.
1640
1641         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
1642         seen_variable_array_ref while also traversing a union.
1643
1644         * tree-inline.c (optimize_inline_calls): Do not call
1645         cgraph_node_remove_callees.
1646         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
1647         (pass_remove_cgraph_callee_edges): New variable.
1648         * passes.c (init_optimization_passes): Add
1649         pass_remove_cgraph_callee_edges after early inlining and before all
1650         late intraprocedural passes.
1651
1652         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
1653
1654 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1655
1656         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
1657         Fix typos in names.
1658
1659 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1660
1661         * combine.c (simplify_comparison): Use have_insn_for.
1662         * dojump.c (do_jump): Likewise.
1663
1664 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1665
1666         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
1667         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
1668         sparc_compare_op0 like sparc_compare_emitted used to be handled.
1669         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
1670         instead of sparc_compare_emitted.
1671         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
1672         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
1673         instead of sparc_compare_emitted.
1674
1675 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1676
1677         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
1678         enter/exit cfglayout mode.
1679         (pass_partition_block): Require it.
1680         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
1681         (combine_instructions): Track basic blocks instead of labels.
1682         (update_cfg_for_uncondjump): New.
1683         (try_combine): Use it.  Update jumps after rescanning.
1684         (pass_combine): Require PROP_cfglayout.
1685         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
1686
1687 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1688
1689         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
1690         Provide/destroy PROP_cfglayout respectively.
1691         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
1692         * tree-pass.h (PROP_cfglayout): New.
1693
1694 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
1695
1696         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
1697         fold_convert_const_fixed_from_fixed,
1698         fold_convert_const_fixed_from_int,
1699         fold_convert_const_fixed_from_real, fold_negate_const): Do not
1700         set TREE_CONSTANT_OVERFLOW.
1701         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
1702         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
1703
1704 2009-03-30  Ira Rosen  <irar@il.ibm.com>
1705
1706         * tree-vect-loop-manip.c: New file.
1707         * tree-vectorizer.c: Update documentation and included files.
1708         (vect_loop_location): Make extern.
1709         (rename_use_op): Move to tree-vect-loop-manip.c
1710         (rename_variables_in_bb, rename_variables_in_loop, 
1711         slpeel_update_phis_for_duplicate_loop, 
1712         slpeel_update_phi_nodes_for_guard1,
1713         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
1714         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
1715         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
1716         set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 
1717         find_loop_location): Likewise.
1718         (new_stmt_vec_info): Move to tree-vect-stmts.c.
1719         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
1720         get_vectype_for_scalar_type, vect_is_simple_use,
1721         supportable_widening_operation, supportable_narrowing_operation):
1722         Likewise.
1723         (bb_in_loop_p): Move to tree-vect-loop.c.
1724         (new_loop_vec_info, destroy_loop_vec_info, 
1725         reduction_code_for_scalar_code, report_vect_op, 
1726         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
1727         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
1728         (vect_supportable_dr_alignment): Likewise.
1729         * tree-vectorizer.h (tree-data-ref.h): Include.
1730         (vect_loop_location): Declare.
1731         Reorganize function declarations according to the new file structure.
1732         * tree-vect-loop.c: New file.
1733         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 
1734         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
1735         * tree-vect-data-refs.c: New file.
1736         * tree-vect-patterns.c (timevar.h): Don't include.
1737         * tree-vect-stmts.c: New file.
1738         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 
1739         tree-vect-slp.c, tree-vect-loop.c.
1740         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 
1741         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 
1742         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
1743         (tree-vect-analyze.o): Remove.
1744         (tree-vect-transform.o): Likewise.
1745         (tree-vect-data-refs.o): Add rule.
1746         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 
1747         tree-vect-slp.o): Likewise.
1748         (tree-vect-patterns.o): Remove redundant dependencies.
1749         (tree-vectorizer.o): Likewise.
1750         * tree-vect-slp.c: New file.
1751
1752 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1753
1754         * optc-gen.awk: Warn if an option flag has multiple different
1755         help strings.
1756
1757 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
1758
1759         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
1760         -floop-block): Document dependences on PPL, CLooG and Graphite.
1761
1762 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
1763
1764         PR rtl-optimization/323
1765         * c-common.c (c_fully_fold, convert_and_check,
1766         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
1767         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
1768         * c-common.def (EXCESS_PRECISION_EXPR): New.
1769         * c-cppbuiltin.c (builtin_define_float_constants): Define
1770         constants with enough digits for long double.
1771         * c-lex.c (interpret_float): Interpret constant with excess
1772         precision where appropriate.
1773         * c-opts.c (c_common_post_options): Set
1774         flag_excess_precision_cmdline.  Give an error for
1775         -fexcess-precision=standard for C++ for processors where the
1776         option is significant.
1777         * c-parser.c (c_parser_conditional_expression): Handle excess
1778         precision in condition.
1779         * c-typeck.c (convert_arguments): Handle arguments with excess
1780         precision.
1781         (build_unary_op): Move excess precision outside operation.
1782         (build_conditional_expr): Likewise.
1783         (build_compound_expr): Likewise.
1784         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
1785         (build_modify_expr): Handle excess precision in RHS.
1786         (convert_for_assignment): Handle excess precision in converted
1787         value.
1788         (digest_init, output_init_element, process_init_element): Handle
1789         excess precision in initializer.
1790         (c_finish_return): Handle excess precision in return value.
1791         (build_binary_op): Handle excess precision in operands and add
1792         excess precision as needed for operation.
1793         * common.opt (-fexcess-precision=): New option.
1794         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
1795         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
1796         For standard excess precision, output explicit conversion to and
1797         truncation from XFmode.
1798         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
1799         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
1800         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
1801         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
1802         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
1803         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
1804         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
1805         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
1806         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
1807         define_splits, sqrt<mode>2): Disable where appropriate for
1808         standard excess precision.
1809         * convert.c (convert_to_real): Do not shorten arithmetic to type
1810         for which excess precision would be used.
1811         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
1812         * doc/invoke.texi (-fexcess-precision=): Document option.
1813         (-mfpmath=): Correct index entry.
1814         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
1815         flag_excess_precision): New.
1816         * langhooks.c (lhd_post_options): Set
1817         flag_excess_precision_cmdline.
1818         * opts.c (common_handle_option): Handle -fexcess-precision=.
1819         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
1820         init_excess_precision): New.
1821         (lang_dependent_init_target): Call init_excess_precision.
1822         * tree.c (excess_precision_type): New.
1823         * tree.h (excess_precision_type): Declare.
1824
1825 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
1826
1827         PR c/35235
1828         * c-typeck.c (build_component_ref): Do not copy qualifiers from
1829         non-lvalue to component.
1830
1831 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
1832
1833         PR preprocessor/34695
1834         * Makefile.in (c-opts.o): Depend on c-tree.h.
1835         * c-common.c: Move down include of diagnostic.h.
1836         (done_lexing, c_cpp_error): New.
1837         * c-common.h (done_lexing): Declare.
1838         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
1839         (parse_in).
1840         * c-opts.c: Include c-tree.h.
1841         (c_common_init_options): Set preprocessor error callback.
1842         (c_common_handle_option): Do not set preprocessor
1843         inhibit_warnings, warnings_are_errors, warn_system_headers,
1844         pedantic_errors or inhibit_warnings flags.
1845         (c_common_post_options): Do not check cpp_errors (parse_in).
1846         (c_common_finish): Do not output dependencies if there were
1847         errors.  Do not check return value of cpp_finish.
1848         * c-ppoutput.c (pp_file_change): Set input_location.
1849         * c-tree.h (c_cpp_error): Declare.
1850         * diagnostic.c (diagnostic_set_info_translated): Also initialize
1851         override_column.
1852         (diagnostic_build_prefix): Check override_column.
1853         * diagnostic.h (diagnostic_info): Add override_column field.
1854         (diagnostic_override_column): Define.
1855
1856 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
1857
1858         * c-common.c (c_expand_expr, c_staticp): Remove.
1859         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
1860         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
1861         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
1862         * c-gimplify.c (gimplify_compound_literal_expr,
1863         optimize_compound_literals_in_ctor): Remove.
1864         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
1865         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
1866         * c-semantics.c (emit_local_var): Remove.
1867
1868         * langhooks-def.h (lhd_expand_expr): Remove.
1869         * langhooks.c (lhd_expand_expr): Remove.
1870         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
1871
1872         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
1873         handling from c-semantics.c; don't call into langhook.
1874         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
1875         * gimplify.c (gimplify_compound_literal_expr,
1876         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
1877         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
1878         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
1879         as was done in c-gimplify.c.
1880         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
1881         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
1882         Move from c-common.h.
1883         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
1884
1885         * tree.c (staticp): Do not call langhook.
1886         * langhooks.c (lhd_staticp): Delete.
1887         * langhooks-def.h (lhd_staticp): Delete prototype.
1888         (LANG_HOOKS_STATICP): Delete.
1889         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
1890
1891         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
1892         instead of DECL_STMTs.
1893
1894 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
1895
1896         PR c/456
1897         PR c/5675
1898         PR c/19976
1899         PR c/29116
1900         PR c/31871
1901         PR c/35198
1902         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
1903         void_type_node.
1904         (fold_call_expr): Return a NOP_EXPR from folding rather than the
1905         contained expression.
1906         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
1907         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
1908         conditional expressions for C.
1909         (decl_constant_value_for_optimization): Move from
1910         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
1911         whether optimizing and that the expression is a VAR_DECL not of
1912         array type instead of doing such checks in the caller.  Do not
1913         check pedantic.  Call gcc_unreachable for C++.
1914         * c-common.def (C_MAYBE_CONST_EXPR): New.
1915         * c-common.h (c_fully_fold, c_save_expr,
1916         decl_constant_value_for_optimization): New prototypes.
1917         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
1918         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
1919         EXPR_INT_CONST_OPERANDS): Define.
1920         * c-convert.c (convert): Strip nops from expression.
1921         * c-decl.c (groktypename): Take extra parameters expr and
1922         expr_const_operands.  Update call to grokdeclarator.
1923         (start_decl): Update call to grokdeclarator.  Add statement for
1924         expressions used in type of decl.
1925         (grokparm): Update call to grokdeclarator.
1926         (push_parm_decl): Update call to grokdeclarator.
1927         (build_compound_literal): Add parameter non_const and build a
1928         C_MAYBE_COSNT_EXPR if applicable.
1929         (grokdeclarator): Take extra parameters expr and
1930         expr_const_operands.  Track expressions used in declaration
1931         specifiers and declarators.  Fold array sizes and track whether
1932         they are constant expressions and whether they are integer
1933         constant expressions.
1934         (parser_xref_tag): Set expr and expr_const_operands fields in
1935         return value.
1936         (grokfield): Update call to grokdeclarator.
1937         (start_function): Update call to grokdeclarator.
1938         (build_null_declspecs): Set expr and expr_const_operands fields in
1939         return value.
1940         (declspecs_add_type): Handle expressions in typeof specifiers.
1941         * c-parser.c (c_parser_declspecs): Set expr and
1942         expr_const_operands fields for declaration specifiers.
1943         (c_parser_enum_specifier): Likewise.
1944         (c_parser_struct_or_union_specifier): Likewise.
1945         (c_parser_typeof_specifier): Likewise.  Update call to
1946         groktypename.  Fold expression as needed.  Return expressions with
1947         type instead of adding statements.
1948         (c_parser_attributes): Update calls to c_parser_expr_list.
1949         (c_parser_statement_after_labels): Fold expression before passing
1950         to objc_build_throw_stmt.
1951         (c_parser_condition): Fold expression.
1952         (c_parser_asm_operands): Fold expression.
1953         (c_parser_conditional_expression): Use c_save_expr.  Update call
1954         to build_conditional_expr.
1955         (c_parser_alignof_expression): Update call to groktypename.
1956         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
1957         original_code.  Fold expression argument of va_arg.  Create
1958         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
1959         argument to va_arg.  Update calls to groktypename.  Fold array
1960         index for offsetof.  Verify that first argument to
1961         __builtin_choose_expr has integer type.
1962         (c_parser_postfix_expression_after_paren_type): Update calls to
1963         groktypename and build_compound_literal.  Handle expressions with
1964         side effects in type name.
1965         (c_parser_postfix_expression_after_primary): Update call to
1966         c_parser_expr_list.  Set original_code for calls to
1967         __builtin_constant_p.
1968         (c_parser_expr_list): Take extra parameter fold_p.  Fold
1969         expressions if requested.
1970         (c_parser_objc_type_name): Update call to groktypename.
1971         (c_parser_objc_synchronized_statement): Fold expression.
1972         (c_parser_objc_receiver): Fold expression.
1973         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
1974         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
1975         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
1976         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
1977         (struct c_typespec): Add elements expr and expr_const_operands.
1978         (struct c_declspecs): Add elements expr and expr_const_operands.
1979         (groktypename, build_conditional_expr, build_compound_literal):
1980         Update prototypes.
1981         (in_late_binary_op): Declare.
1982         * c-typeck.c (note_integer_operands): New function.
1983         (in_late_binary_op): New variable.
1984         (decl_constant_value_for_broken_optimization): Move to c-common.c
1985         and rename to decl_constant_value_for_optimization.
1986         (default_function_array_conversion): Do not strip nops.
1987         (default_conversion): Do not call
1988         decl_constant_value_for_broken_optimization.
1989         (build_array_ref): Do not fold result.
1990         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
1991         result when operand is a VLA.
1992         (c_expr_sizeof_type): Update call to groktypename.  Handle
1993         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
1994         result when operand names a VLA type.
1995         (build_function_call): Update call to build_compound_literal.
1996         Only fold result for calls to __builtin_* functions.  Strip
1997         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
1998         the function designator.
1999         (convert_arguments): Fold arguments.  Update call to
2000         convert_for_assignment.
2001         (build_unary_op): Handle increment and decrement of
2002         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
2003         decrement earlier.  Fold operand of increment and decrement.
2004         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
2005         built for integer operand.  Wrap returns that are INTEGER_CSTs
2006         without being integer constant expressions or that have integer
2007         constant operands without being INTEGER_CSTs.
2008         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2009         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
2010         result is an integer constant expression or can be used in
2011         unevaluated parts of one and avoid folding and wrap as
2012         appropriate.  Fold operands before possibly doing -Wsign-compare
2013         warnings.
2014         (build_compound_expr): Wrap result for C99 if operands can be used
2015         in integer constant expressions.
2016         (build_c_cast): Update call to digest_init.  Do not ignore
2017         overflow from casting floating-point constants to integers.  Wrap
2018         results that could be confused with integer constant expressions,
2019         null pointer constants or floating-point constants.
2020         (c_cast_expr): Update call to groktypename.  Handle expressions
2021         included in type name.
2022         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
2023         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
2024         Update calls to convert_for_assignment.
2025         (convert_for_assignment): Take new parameter
2026         null_pointer_constant.  Do not strip nops or call
2027         decl_constant_value_for_broken_optimization.  Set
2028         in_late_binary_op for conversions to boolean.
2029         (store_init_value): Update call to digest_init.
2030         (digest_init): Take new parameter null_pointer_constant.  Do not
2031         call decl_constant_value_for_broken_optimization.  pedwarn for
2032         initializers not constant expressions.  Update calls to
2033         convert_for_assignment.
2034         (constructor_nonconst): New.
2035         (struct constructor_stack): Add nonconst element.
2036         (really_start_incremental_init, push_init_level, pop_init_level):
2037         Handle constructor_nonconst and nonconst element.
2038         (set_init_index): Call constant_expression_warning for array
2039         designators.
2040         (output_init_element): Fold value.  Set constructor_nonconst as
2041         applicable.  pedwarn for initializers not constant expressions.
2042         Update call to digest_init.  Call constant_expression_warning
2043         where constant initializers are required.
2044         (process_init_element): Use c_save_expr.
2045         (c_finish_goto_ptr): Fold expression.
2046         (c_finish_return): Fold return value.  Update call to
2047         convert_for_assignment.
2048         (c_start_case): Fold switch expression.
2049         (c_process_expr_stmt): Fold expression.
2050         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
2051         ensure statement expression is not evaluated in constant expression.
2052         (build_binary_op): Track whether results are integer constant
2053         expressions or may occur in such, disable folding and wrap results
2054         as applicable.  Fold operands for -Wsign-compare warnings unless
2055         in_late_binary_op.
2056         (c_objc_common_truthvalue_conversion): Handle results folded to
2057         integer constants that are not integer constant expressions.
2058         * doc/extend.texi: Document when typeof operands are evaluated,
2059         that condition of __builtin_choose_expr is an integer constant
2060         expression, and more about use of __builtin_constant_p in
2061         initializers.
2062
2063 2009-03-29  Richard Guenther  <rguenther@suse.de>
2064
2065         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2066         propagate addresses of array references.
2067
2068 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
2069
2070         * regmove.c (perhaps_ends_bb_p): Remove.
2071         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
2072         from INSN and check that the main loop stays within that basic block.
2073         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2074         (regmove_forward_pass): Split out from regmove_optimize.  Use
2075         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2076         (regmove_backward_pass): Split out from regmove_optimize.  Use
2077         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2078         (regmove_optimize): Simplify.
2079
2080 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2081
2082         PR target/39545
2083         * config/i386/i386.c (classify_argument): Ignore flexible array
2084         member in struct and warn ABI change.
2085
2086 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
2087
2088         * config/i386/i386-protos.h (ix86_agi_dependent): New.
2089
2090         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2091         (ix86_adjust_cost): Updated.
2092
2093 2009-03-29  Jan Hubicka  <jh@suse.cz>
2094
2095         PR middle-end/28850
2096         * tree-pass.h (pass_cleanup_eh): New function.
2097         (remove_unreachable_regions): Break code handling RTL
2098         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2099         that can not be reached by runtime.
2100         (can_be_reached_by_runtime): New function.
2101         (label_to_region_map): New function.
2102         (num_eh_regions): New function.
2103         (rtl_remove_unreachable_regions): New function.
2104         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2105         (remove_eh_region): New function.
2106         * except.h: Include sbitmap and vecprim.
2107         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2108         num_eh_regions): Declare.
2109         * passes.c (init_optimization_passes): Schedule cleanup_eh.
2110         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
2111         * tree-eh.c (tree_remove_unreachable_handlers): New function.
2112         (tree_empty_eh_handler_p): New function.
2113         (cleanup_empty_eh): New function.
2114         (cleanup_eh): New function.
2115         (pass_cleanup_eh): New function.
2116
2117 2009-03-29  Jan Hubicka  <jh@suse.cz>
2118
2119         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2120         for removed regions.
2121
2122 2009-03-29  Jan Hubicka  <jh@suse.cz>
2123
2124         * except.c (dump_eh_tree): Dump all datastructures.
2125
2126 2009-03-29  Jan Hubicka  <jh@suse.cz>
2127
2128         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2129         (duplicate_eh_regions_1): Likewise.
2130         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2131         vector; call EH verification.
2132         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2133         Be ready for region being removed.
2134
2135 2009-03-29  Jan Hubicka  <jh@suse.cz>
2136
2137         * bitmap.c (bitmap_last_set_bit): New function.
2138         * bitmap.h (bitmap_last_set_bit): Declare.
2139
2140 2009-03-29  David Ayers  <ayers@fsfe.org>
2141
2142         PR objc/27377
2143         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2144         by calling objc_compare_types and surpress warnings about
2145         incompatible C pointers that are compatible ObjC pointers.
2146         
2147 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
2148
2149         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2150         call initialize_inline_failed.
2151         (initialize_inline_failed): Move it from here ...
2152         * cgraph.c (initialize_inline_failed): ... to here.
2153         (cgraph_create_edge): Call initialize_inline_failed rather than
2154         setting inline_failed directly.
2155
2156 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2157
2158         PR target/32542
2159         * sysv4.opt (msdata): Improve comment.
2160         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2161         * sysv4.h (SVR4_ASM_SPEC): Likewise.
2162
2163 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2164
2165         PR target/30451
2166         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2167         load and store attributes.
2168
2169 2009-03-29  Ben Elliston  <bje@au.ibm.com>
2170
2171         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
2172         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
2173         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
2174         * doc/extend.texi (X86 Built-in Functions): Add index entries for
2175         __builtin_infq and __builtin_huge_valq.
2176
2177 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
2178
2179         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2180         atmega8m1 devices.
2181         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2182         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2183
2184 2009-03-28  Xinliang David Li  <davidxl@google.com>
2185
2186         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 
2187         (do_dbg_cnt): New function.
2188
2189 2009-03-28  Jan Hubicka  <jh@suse.cz>
2190
2191         Merge from pretty-ipa:
2192
2193         2009-03-27  Jan Hubicka  <jh@suse.cz>
2194
2195         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2196         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2197         * passes.c (function_called_by_processed_nodes_p): New.
2198         * ipa-pure-const.c (check_call): Fix handling of operands.
2199         (analyze_function): Dump debug output for skipped bodies.
2200         (local_pure_const): Use function_called_by_processed_nodes_p.
2201         * dwarf2out.c (reference_to_unused): Use output.
2202         * passes.c (do_per_function_toporder): Likewise.
2203
2204         2008-11-12  Jan Hubicka  <jh@suse.cz>
2205
2206         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2207         * ipa-pure-const.c (funct_state_d): Add can throw field; make
2208         state_set_in_source enum
2209         (check_decl): Ignore memory tags; do not set fake looping flags;
2210         dump diagnostics.
2211         (check_operand, check_tree, check_rhs_var, check_lhs_var,
2212         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2213         (check_call, analyze_function): Rewrite.
2214         (check_stmt): New.
2215         (add_new_function): Update call of analyze_function.
2216         (generate_summary): Add call of analyze_function.
2217         (propagate): Propagate can_throw; handle state_set_in_source correctly.
2218         (local_pure_const): New function.
2219         (pass_local_pure_const): New pass.
2220         * ipa-inline.c (inline_transform): Set after_inlining.
2221         * tree-eh.c (stmt_can_throw_external): New.
2222         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2223         work with aliasing built.
2224         * tree-flow.h (stmt_can_throw_external): New.
2225         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2226         and local pure/const pass in early and late optimization queue.
2227
2228 2009-03-28  Martin Jambor  <mjambor@suse.cz>
2229
2230         * fold-const.c (get_pointer_modulus_and_residue): New parameter
2231         allow_func_align.
2232         (fold_binary): Allow function decl aligment consideration is the
2233         second argument is integer constant one.
2234         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
2235         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
2236         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
2237
2238 2009-03-28  Jan Hubicka  <jh@suse.cz>
2239
2240         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
2241         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
2242         * function.h (rtl_data): Add nothrow flag.
2243         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
2244         set DECL_NOTHROW for AVAILABLE functions.
2245
2246 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
2247
2248         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
2249         following vector keyword has expansion starting with pixel or bool
2250         keyword, expand vector to __vector and pixel or bool to __pixel or
2251         __bool.
2252
2253         PR c++/39554
2254         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
2255         warn_if_disallowed_function_p): Removed.
2256         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
2257         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
2258         warning_if_disallowed_function_p.
2259         * flags.h (warn_if_disallowed_function_p,
2260         warn_disallowed_functions): Removed.
2261         * common.opt (Wdisallowed-function-list=): Removed.
2262         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
2263
2264 2009-03-28  Richard Guenther  <rguenther@suse.de>
2265
2266         PR tree-optimization/38723
2267         * tree-ssa-pre.c (compute_avail): Add all default definitions to
2268         the entry block.
2269
2270 2009-03-28  Jan Hubicka  <jh@suse.cz>
2271
2272         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
2273         test introduced by my previous patch.
2274
2275 2009-03-28  Richard Guenther  <rguenther@suse.de>
2276
2277         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
2278         the PHIs value undefined.
2279
2280 2009-03-28  Jan Hubicka  <jh@suse.cz>
2281
2282         * tree-pass.h (pass_fixup_cfg): New pass.
2283         * ipa-inline.c (inline_transform): Set
2284         always_inline_functions_inlined/after_inlining.
2285         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
2286         (pass_fixup_cfg): New pass.
2287         * passes.c (init_optimization_passes): Add fixup_cfg.
2288
2289 2009-03-28  Richard Guenther  <rguenther@suse.de>
2290
2291         PR tree-optimization/38458
2292         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
2293         argument use the arguments copy-of value.
2294
2295 2009-03-28  Richard Guenther  <rguenther@suse.de>
2296
2297         PR tree-optimization/38180
2298         * tree-ssa-ccp.c (get_default_value): Simplify.
2299         (likely_value): Likewise.
2300         (surely_varying_stmt_p): Properly handle VOP case.
2301         (ccp_initialize): Likewise.
2302         (ccp_fold): Handle propagating through *&.
2303         (fold_const_aggregate_ref): Also handle decls.
2304
2305 2009-03-28  Jan Hubicka  <jh@suse.cz>
2306
2307         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2308         * cgraph.h (cgraph_node): Likewise.
2309         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
2310         (cgraph_reset_node): Use process flag.
2311         (cgraph_mark_functions_to_output): Likewise.
2312         (cgraph_expand_function): Likewise.
2313         (cgraph_expand_all_functions): Likewise.
2314         (cgraph_output_in_order): Likewise.
2315         * dwarf2out.c (reference_to_unused): Likewise.
2316         * passes.c do_per_function_toporder): Likewise.
2317
2318 2009-03-28  Jan Hubicka  <jh@suse.cz>
2319
2320         Bring from lto-branch:
2321
2322         2008-09-03  Doug Kwan  <dougkwan@google.com>
2323
2324         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
2325         enums instead of reason strings.
2326         * cgraph.c (cgraph_create_edge): Same.
2327         (cgraph_inline_failed_string): New function.
2328         * cgraph.h (cgraph_inline_failed_t): New enum type.
2329         (cgraph_inline_failed_string): New prototype.
2330         (struct cgraph_edge): Change type of INLINED_FAILED from constant
2331         char pointer to cgraph_inline_failed_t.
2332         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
2333         (cgraph_default_inline_p): Ditto.
2334         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
2335         to cgraph_inline_failed_t pointer.
2336         * cif-code.def: New file.
2337         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
2338         reason string.
2339         (cgraph_check_inline_limits): Change type of REASON to pointer to
2340         cgraph_inline_failed_t.  Replace reason strings with enums.
2341         (cgraph_default_inline_p): Ditto.
2342         (cgraph_recursive_inlining_p): Ditto.
2343         (update_caller_keys): Change type of FAILED_REASON to
2344         cgraph_inline_failed_t.
2345         (cgraph_set_inline_failed): Change type of REASON to pointer to
2346         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
2347         convert enums to strings for text output.
2348         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
2349         to be of type cgraph_inline_failed_t.  Replace reason strings with
2350         enums.  Call cgraph_inline_failed_string to covert enums
2351         to strings for text output.
2352         (cgraph_decide_inlining): Replace reason strings with enums.
2353         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
2354         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
2355         for text output.
2356         * tree-inline.c (expand_call_inline): Change type of REASON
2357         to cgraph_inline_failed_t.  Replace reason strings with enums.
2358         Call cgraph_inline_failed_string for text output.
2359         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
2360         (cgraph.o): Ditto.
2361
2362 2009-03-28  Jan Hubicka  <jh@suse.cz>
2363
2364         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
2365         cgraph_clone_node): Remove master clone handling.
2366         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2367         * cgraph.h (master_clone): Remove.
2368         (cgraph_is_master_clone, cgraph_master_clone): Remove.
2369         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
2370         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
2371
2372 2009-03-28  Jan Hubicka  <jh@suse.cz>
2373
2374         * cgraph.c (cgraph_function_body_availability): Functions declared
2375         inline are always safe to assume that it is not going to be replaced.
2376
2377 2009-03-28  Richard Guenther  <rguenther@suse.de>
2378
2379         PR tree-optimization/38513
2380         * tree-ssa-pre.c (eliminate): Remove redundant stores.
2381         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2382         EXC_PTR_EXPR and FILTER_EXPR.
2383         (get_ref_from_reference_ops): Likewise.
2384
2385 2009-03-28  Richard Guenther  <rguenther@suse.de>
2386
2387         PR tree-optimization/38968
2388         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
2389         Use FLOOR_MOD_EXPR to compute misalignment.
2390
2391 2009-03-28  Richard Guenther  <rguenther@suse.de>
2392
2393         PR tree-optimization/37795
2394         * tree.h (combine_comparisons): Declare.
2395         * fold-const.c (combine_comparisons): Export.
2396         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
2397         comparisons.
2398         (ifcombine_iforif): Use combine_comparisons.
2399
2400 2009-03-28  Jan Hubicka  <jh@suse.cz>
2401
2402         * tree-eh.c (inlinable_call_p): New function.
2403         (make_eh_edges): Use it.
2404         (verify_eh_edges): Use it.
2405         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
2406         * except.c (reachable_next_level): Add inlinable_function argument
2407         (sjlj_find_directly_reachable_regions): Update.
2408         (add_reachable_handler): Do not set saw_any_handlers.
2409         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
2410         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2411         Add new inlinable call parameter.
2412         (can_throw_internal, can_throw_external): Update.
2413         * except.h (can_throw_internal_1, can_throw_external_1,
2414         foreach_reachable_handler): Update declaration.
2415
2416 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
2417
2418         * config/arm/t-arm-coff, config/h8300/coff.h,
2419         config/i386/i386-aout.h, config/i386/i386-coff.h,
2420         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
2421         config/pdp11/2bsd.h, config/rs6000/aix41.h,
2422         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
2423         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
2424         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
2425         sys-types.h: Remove.
2426         * Makefile.in: Remove protoize and fixproto support and references
2427         in comments.
2428         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
2429         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
2430         Remove.
2431         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
2432         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
2433         unprotoize$(exeext).
2434         (rest.encap): Don't depend on $(STMP_FIXPROTO)
2435         (.PHONY): Don't depend on proto.
2436         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
2437         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
2438         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
2439         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
2440         build/gen-protos.o, build/scan.o, xsys-protos.h,
2441         build/fix-header$(build_exeext), build/fix-header.o,
2442         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
2443         stmp-install-fixproto): Remove.
2444         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
2445         SYSCALLS.c or fixproto files.
2446         (install-common): Don't install protoize.
2447         (install-headers-tar, install-headers-cpio, install-headers-cp):
2448         Don't depend on $(STMP_FIXPROTO).
2449         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
2450         install fixproto files or write out fixproto settings.
2451         (uninstall): Don't uninstall protoize.
2452         * config.gcc (use_fixproto): Remove.
2453         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
2454         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
2455         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
2456         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
2457         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
2458         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
2459         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
2460         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
2461         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
2462         * config/t-vxworks (STMP_FIXPROTO): Remove.
2463         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
2464         STMP_FIXPROTO): Remove.
2465         * config.in, configure: Regenerate.
2466         * crtstuff.c (gid_t, uid_t): Don't undefine.
2467         * doc/install.texi: Change m68k-coff to m68k-elf in example.
2468         (arm-*-coff, arm-*-aout: Remove target entries.
2469         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
2470         Remove mention of AIX 4.1.
2471         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
2472         * doc/invoke.texi (Running Protoize): Remove.
2473         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
2474         (Protoize Caveats): Remove.
2475         * tsystem.h: Update comments on headers assumed to exist.
2476
2477 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
2478
2479         * genautomata.c: Add a new year to the copyright.  Add a new
2480         reference.
2481         (struct insn_reserv_decl): Add comments for member bypass_list.
2482         (find_bypass): Remove.
2483         (insert_bypass): New.
2484         (process_decls): Use insert_bypass.
2485         (output_internal_insn_latency_func): Output all bypasses with the
2486         same input insn in one switch case.
2487
2488         * rtl.def (define_bypass): Describe bypass choice.
2489         * doc/md.texi (define_bypass): Ditto.
2490
2491 2009-03-27  Richard Guenther  <rguenther@suse.de>
2492
2493         * gimplify.c (mark_addressable): Export.
2494         * tree-flow.h (mark_addressable): Declare.
2495         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
2496         * tree-ssa.c (verify_phi_args): Verify that address taken
2497         variables have TREE_ADDRESSABLE set.
2498
2499 2009-03-27  Richard Guenther  <rguenther@suse.de>
2500
2501         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
2502         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
2503         Do not mark decls TREE_ADDRESSABLE.
2504         (build_fold_addr_expr): Adjust.
2505         (fold_addr_expr): Remove.
2506         (fold_unary): Use build_fold_addr_expr.
2507         (fold_comparison): Likewise.
2508         (split_address_to_core_and_offset): Likewise.
2509         * coverage.c (tree_coverage_counter_addr): Mark the array decl
2510         TREE_ADDRESSABLE.
2511         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
2512         (gimplify_modify_expr_to_memcpy): Mark source and destination
2513         addressable.
2514         * omp-low.c (create_omp_child_function): Mark the object decl
2515         TREE_ADDRESSABLE.
2516         (lower_rec_input_clauses): Mark the var we take the address of
2517         TREE_ADDRESSABLE.
2518         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
2519
2520 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2521
2522         PR middle-end/39315
2523         * cfgexpand.c (expand_one_stack_var_at): Change alignment
2524         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
2525
2526 2009-03-27  Richard Guenther  <rguenther@suse.de>
2527
2528         PR tree-optimization/39120
2529         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
2530         constraints.
2531         (handle_lhs_call): Process return constraints.  Add escape
2532         constraints if necessary.
2533         (handle_const_call): Fill out return constraints.  Make nested
2534         case more precise.  Avoid consttmp if possible.
2535         (handle_pure_call): Fill out return constraints.  Avoid
2536         callused if possible.
2537         (find_func_aliases): Simplify call handling.
2538
2539 2009-03-27  Richard Guenther  <rguenther@suse.de>
2540
2541         PR tree-optimization/39120
2542         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
2543         as a representative.
2544         (solve_graph): Do propagate CALLUSED.
2545         (handle_pure_call): Use a scalar constraint from CALLUSED for
2546         the return value.
2547         (find_what_p_points_to): CALLUSED shall not appear in poins-to
2548         solutions.
2549
2550 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2551
2552         PR c/39323
2553         * c-common.c (handle_aligned_attribute): Properly check alignment
2554         overflow.  Use (1U << i) instead of (1 << i).
2555
2556         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
2557
2558         * expr.h (get_mem_align_offset): Updated.
2559
2560         * tree.h (tree_decl_common): Change align to "unsigned int" and
2561         move it before pointer_alias_set.
2562
2563 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2564             Jakub Jelinek  <jakub@redhat.com>
2565
2566         PR target/38034
2567         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
2568         gr_register_operand with gr_reg_or_0_operand.
2569         (cmpxchg_rel_di): Likewise.
2570         (sync_lock_test_and_set<mode>): Likewise.
2571
2572 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2573
2574         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
2575         (true_regnum): Likewise.
2576
2577         * rtlanal.c (subreg_info): Moved to ...
2578         * rtl.h (subreg_info): Here.  New.
2579         (subreg_get_info): New.
2580
2581         * rtlanal.c (subreg_get_info): Make it extern.
2582
2583 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2584
2585         PR target/39472
2586         * config/i386/i386.c (ix86_abi): New.
2587         (override_options): Handle -mabi=.
2588         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
2589         (ix86_call_abi_override): Likewise.
2590         (init_cumulative_args): Likewise.
2591         (function_arg_advance): Likewise.
2592         (function_arg_64): Likewise.
2593         (function_arg): Likewise.
2594         (ix86_pass_by_reference): Likewise.
2595         (ix86_function_value_regno_p): Likewise.
2596         (ix86_build_builtin_va_list_abi): Likewise.
2597         (setup_incoming_varargs_64): Likewise.
2598         (is_va_list_char_pointer): Likewise.
2599         (ix86_init_machine_status): Likewise.
2600         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
2601         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
2602         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
2603         (ix86_function_abi): Make it static and return enum calling_abi.
2604         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
2605         with ix86_abi.
2606         (ix86_fn_abi_va_list): Updated.
2607
2608         * config/i386/i386.h (ix86_abi): New.
2609         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
2610         (CONDITIONAL_REGISTER_USAGE): Likewise.
2611         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
2612         (machine_function): Likewise.
2613
2614         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
2615         with ix86_abi.
2616         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
2617         (STACK_BOUNDARY): Likewise.
2618         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
2619
2620         * config/i386/i386.opt (mabi=): New.
2621
2622         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
2623         return enum calling_abi.
2624         (ix86_function_type_abi): Likewise.
2625         (ix86_function_abi): Removed.
2626
2627         * doc/invoke.texi: Document -mabi= option for x86.
2628
2629 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2630
2631         * builtins.c (real_dconstp): Delete.
2632         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
2633
2634 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
2635             Jakub Jelinek  <jakub@redhat.com>
2636
2637         PR debug/37959
2638         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
2639         (gen_subprogram_die): When a function is explicit, generate the
2640         DW_AT_explicit attribute.
2641         * langhooks.h (struct lang_hooks_for_decls): Add
2642         function_decl_explicit_p langhook.
2643         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
2644         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
2645
2646 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
2647
2648         * builtins.c (fold_builtin_memory_op): Optimize memmove
2649         into memcpy if we can prove source and destination don't overlap.
2650
2651         * tree-inline.c: Include gt-tree-inline.h.
2652         (clone_fn_id_num): New variable.
2653         (clone_function_name): New function.
2654         (tree_function_versioning): Use it.
2655         * Makefile.in (GTFILES): Add tree-inline.c.
2656
2657 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
2658
2659         * BASE-VER: Change to 4.5.0.
2660
2661 2009-03-27  Xinliang David Li  <davidxl@google.com>
2662
2663         PR tree-optimization/39557
2664         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
2665
2666 2009-03-27  Xinliang David Li  <davidxl@google.com>
2667
2668         PR tree-optimization/39548
2669         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 
2670         candidate check.
2671
2672 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2673
2674         * c-common.c (pointer_int_sum): Use %wd on return from
2675         tree_low_cst.
2676
2677 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
2678
2679         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
2680         on return from tree_low_cst.
2681
2682 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2683
2684         PR c++/36799
2685         * ginclude/stdarg.h (va_copy): Define also for
2686         __GXX_EXPERIMENTAL_CXX0X__.
2687
2688 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2689
2690         PR c++/35652
2691         * builtins.h (c_strlen): Do not warn here.
2692         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2693         * c-common.c (pointer_int_sum): Take an explicit location.
2694         Warn about offsets out of bounds.
2695         * c-common.h (pointer_int_sum): Adjust declaration.
2696
2697 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2698
2699         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
2700         markup glitch.
2701
2702 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
2703
2704         PR c++/39554
2705         * opts.c (warn_if_disallowed_function_p): Don't assume
2706         get_callee_fndecl must return non-NULL.
2707
2708 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
2709
2710         PR rtl-optimization/39522
2711         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
2712         when reg_reloaded_valid is set.
2713
2714 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2715
2716         * config/spu/divv2df3.c: New file.
2717         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
2718         (DPBIT_FUNCS): Filter out _div_df.
2719
2720 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
2721
2722         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
2723         a jump insn, count that jump in the distance to the loop start.
2724
2725 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
2726
2727         PR target/39523
2728         * config/sh/sh.c (calc_live_regs): Fix condition for global
2729         registers except PIC_OFFSET_TABLE_REGNUM.
2730
2731 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
2732
2733         PR/39518
2734         * doc/invoke.texi (-mconsole): New.
2735         (-mcygwin): New.
2736         (-mno-cygwin): New.
2737         (-mdll): New.
2738         (-mnop-fun-dllimport): New.
2739         (-mthread): New.
2740         (-mwin32): New.
2741         (-mwindows): New.
2742         (sub section "i386 and x86-64 Windows Options"): New.
2743
2744 2009-03-25  Ralf Cors├ępius <ralf.corsepius@rtems.org>
2745
2746         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
2747         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
2748
2749 2009-03-25  Richard Guenther  <rguenther@suse.de>
2750
2751         PR middle-end/39497
2752         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
2753         of -Wno-error.
2754
2755 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
2756
2757         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
2758         neither of haifa/selective schedulers are working.
2759
2760 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2761
2762         * doc/invoke.texi (Debugging Options): Fix description of
2763         -fno-merge-debug-strings.
2764
2765 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
2766
2767         * config/cris/libgcc.ver: New version-script.
2768         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
2769
2770         * configure.ac <GAS features, nop mnemonic>: Add pattern
2771         crisv32-*-* for "nop".
2772         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
2773         * configure: Regenerate.
2774
2775 2009-03-24  Ira Rosen  <irar@il.ibm.com>
2776
2777         PR tree-optimization/39529
2778         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
2779         mark_sym_for_renaming for the tag copied to the new vector
2780         pointer.
2781
2782 2009-03-24  Arthur Loiret  <aloiret@debian.org>
2783
2784         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
2785         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
2786         EXTRA_SPEC_FUNCTIONS.
2787         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
2788         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
2789         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
2790         -march and -mtune options.
2791
2792 2009-03-24  Ralf Cors├ępius <ralf.corsepius@rtems.org>
2793
2794         * config/m68k/t-rtems: Add m5329 multilib.
2795
2796 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
2797             Jakub Jelinek  <jakub@redhat.com>
2798
2799         PR debug/39524
2800         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
2801         nodes.
2802
2803 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2804
2805         PR c/39495
2806         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
2807         instead of c_parser_expression_conv, if original_code isn't one of the
2808         4 allowed comparison codes, fail.
2809
2810 2009-03-23  Richard Guenther  <rguenther@suse.de>
2811
2812         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
2813         * tree.h (struct tree_type): Likewise.
2814         * reload.h (struct insn_chain): Likewise.
2815         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
2816         * function.h (struct function): Likewise.
2817         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
2818
2819 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2820
2821         PR tree-optimization/39516
2822         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
2823
2824 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
2825
2826         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 
2827         should be set true if BITS_PER_WORD of target is bigger than 32
2828
2829 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
2830
2831         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
2832         Translate -B-options to -rpath-link.  Correct existing
2833         rpath-link and conditionalize on !nostdlib.
2834
2835 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2836
2837         * doc/extend.texi (Function Attributes, Variable Attributes):
2838         Fix typos.
2839         * doc/invoke.texi (Debugging Options, Optimize Options)
2840         (i386 and x86-64 Options, MCore Options): Likewise.
2841
2842 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
2843
2844         PR debug/37890
2845         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
2846         it for block local namespace aliases.
2847         (gen_decl_die): Pass context_die to gen_namespace_die.
2848
2849 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
2850
2851         PR c/39495
2852         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
2853         minimum or maximum value.
2854
2855 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
2856
2857         * reginfo.c (globalize_reg): Recompute derived reg sets.
2858
2859 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
2860
2861         PR target/39063
2862         * libgcc2.c (mprotect): Do not use signed arguments for
2863         VirtualProtect, use DWORD arguments.  Also fix the 'may
2864         be used uninitialized' warning for the np variable.
2865
2866 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
2867
2868         PR target/39496
2869         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
2870         functions using regparm calling conventions when not optimizing.
2871         (ix86_function_sseregparm): Similarly for sseregparm calling
2872         conventions.
2873
2874 2009-03-19  Li Feng  <nemokingdom@gmail.com>
2875
2876         PR middle-end/39500
2877         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
2878         dependence if the first conflict is after niter iterations.
2879
2880 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
2881
2882         PR middle-end/38609
2883         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
2884         functions with dynamic stack-pointer adjustments.
2885
2886 2009-03-19  Ben Elliston  <bje@au.ibm.com>
2887
2888         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
2889         option; change to -msdata=data.
2890
2891 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2892
2893         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
2894         and -fopenmp.
2895
2896 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
2897
2898         PR target/35180
2899         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
2900
2901 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
2902
2903         * doc/invoke.texi (Code Gen Options): Expand discussion of
2904         -fno-common.
2905
2906 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
2907
2908         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
2909         * matrix-reorg.c (struct matrix_info): Likewise.
2910         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
2911         * rtl.h (struct mem_attrs): Likewise.
2912         * df.h (struct df): Likewise.
2913         * tree-data-ref.h (struct data_dependence_relation): Likewise.
2914         * ira-int.h (struct ira_allocno): Likewise.
2915         * df-scan.c (struct df_collection_rec): Likewise.
2916         * ira.c (struct equivalence): Likewise.
2917         * function.c (struct temp_slot): Likewise.
2918         * cfgloop.h (struct loop): Likewise.
2919
2920         PR debug/39485
2921         * function.c (use_register_for_decl): When not optimizing, disregard
2922         register keyword for variables with types containing methods.
2923
2924 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
2925
2926         PR middle-end/39447
2927         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
2928         (is_simple_operand): Call contains_component_ref_p before calling data
2929         reference analysis that would fail on COMPONENT_REFs.
2930
2931         * tree-vrp.c (search_for_addr_array): Fix formatting.
2932
2933 2009-03-18  Richard Guenther  <rguenther@suse.de>
2934
2935         * tree-vect-transform.c (vect_loop_versioning): Fold the
2936         generated comparisons.
2937         * tree-vectorizer.c (set_prologue_iterations): Likewise.
2938         (slpeel_tree_peel_loop_to_edge): Likewise.
2939
2940 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2941
2942         PR middle-end/37805
2943         * opts.c (print_specific_help): In addition to `undocumented',
2944         accept `separate' and `joined' flags if passed alone.  Describe
2945         output by the first matched one of those.
2946         (common_handle_option): Skip over empty strings.
2947         * gcc.c (display_help): Fix help string for `--help='.
2948         * doc/invoke.texi (Option Summary, Overall Options): With
2949         `--help=', classes and qualifiers can both be repeated, but
2950         only the latter can be negated.  One should not pass only
2951         negated qualifiers.  Fix markup and examples.
2952
2953         Revert
2954         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
2955         PR middle-end/37805
2956         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
2957         and -fhelp=separate.
2958
2959 2009-03-17  Jing Yu  <jingyu@google.com>
2960
2961         PR middle-end/39378
2962         * function.h (struct rtl_data): Move is_thunk from here...
2963         (struct function): ...to here.
2964         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
2965         * varasm.c (assemble_start_function): Change is_thunk from crtl to
2966         cfun.
2967         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
2968         cfun.
2969         (alpha_does_function_need_gp, alpha_start_function): Likewise.
2970         (alpha_output_function_end_prologue): Likewise.
2971         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
2972         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
2973         (rs6000_output_function_epilogue): Likewise.
2974         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
2975
2976 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
2977
2978         PR target/39482
2979         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
2980         from different units in a single alternative.
2981         (*truncdfsf_i387): Ditto.
2982         (*truncxfsf2_mixed): Ditto.
2983         (*truncxfdf2_mixed): Ditto.
2984
2985 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
2986
2987         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
2988         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
2989
2990         PR debug/39474
2991         * tree-ssa-live.c (remove_unused_locals): Don't remove local
2992         unused non-artificial variables when not optimizing.
2993
2994         PR debug/39471
2995         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
2996         DW_TAG_imported_module even if decl is IMPORTED_DECL with
2997         NAMESPACE_DECL in its DECL_INITIAL.
2998
2999         PR middle-end/39443
3000         * optabs.c (set_user_assembler_libfunc): New function.
3001         * expr.h (set_user_assembler_libfunc): New prototype.
3002         * c-common.c: Include libfuncs.h.
3003         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3004         for memcmp, memset, memcpy, memmove and abort.
3005         * Makefile.in (c-common.o): Depend on libfuncs.h.
3006
3007         PR debug/39412
3008         * dwarf2out.c (gen_inlined_enumeration_type_die,
3009         gen_inlined_structure_type_die, gen_inlined_union_type_die,
3010         gen_tagged_type_instantiation_die): Removed.
3011         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3012         do nothing.
3013
3014 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
3015
3016         PR testsuite/38526
3017         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3018         its use.
3019         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3020         (check-parallel-%): Ditto.
3021         (check-consistency): Ditto.
3022
3023 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
3024
3025         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3026         local variable rhs by NULL_TREE.
3027
3028 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3029
3030         PR target/39477
3031         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
3032
3033 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3034
3035         PR target/39476
3036         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
3037
3038 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3039
3040         PR target/39473
3041         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3042         for ms->sysv ABI calls only in 64bit mode.
3043
3044         * config/i386/i386.md (untyped_call): Support 32bit.
3045
3046 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
3047
3048         * doc/extend.texi: Replace x86_65 with x86_64.
3049
3050 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
3051
3052         PR tree-optimization/39455
3053         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3054         mismatches for POINTER_TYPE_P (type).
3055         (number_of_iterations_le): Likewise.
3056
3057 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
3058
3059         * config/picochip/picochip.c: Removed profiling support.
3060         * config/picochip/picochip.md: Removed profiling instruction.
3061         * config/picochip/picochip.h: Removed profiling builtin.
3062
3063 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
3064
3065         * doc/install.texi (--with-host-libstdcxx): Document.
3066
3067 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
3068
3069         PR target/34299
3070         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3071         generate a warning if the function name does not begin with
3072         "__vector" and the function has either the 'signal' or 'interrupt'
3073         attribute, from here to ...
3074         (avr_declare_function_name): ...here. New function.
3075         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3076         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3077
3078 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
3079
3080         PR bootstrap/39454
3081         * cse.c (fold_rtx): Don't modify original const_arg1 when
3082         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3083         separate variable instead.
3084         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3085         from out of range shift counts.
3086         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3087
3088 2008-03-13  Catherine Moore  <clm@codesourcery.com>
3089
3090         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
3091         diagnostic.h with $(DIAGNOSTIC_H).
3092
3093 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3094
3095         PR target/39431
3096         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3097         predicate.
3098         * config/i386/sync.md (sync_compare_and_swap<mode>,
3099         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3100         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3101         into a register.
3102         (sync_double_compare_and_swapdi_pic,
3103         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3104         cmpxchg8b_pic_memory_operand instead of just memory_operand.
3105
3106 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3107
3108         PR target/39445
3109         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
3110
3111 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3112
3113         PR target/39327
3114         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3115         (avx_addsubv4df3): Likewise.
3116         (*avx_addsubv4sf3): Likewise.
3117         (sse3_addsubv4sf3): Likewise.
3118
3119 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
3120
3121         PR target/38824
3122         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
3123
3124 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3125
3126         PR debug/39432
3127         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3128         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3129         registers for allocnos created from user-defined variables.
3130
3131 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3132
3133         PR target/39181
3134         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
3135         of non-integer mode as well.
3136
3137 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
3138
3139         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
3140         for functions for which the parameter types are unknown.
3141
3142 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
3143
3144         PR target/39137
3145         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
3146         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
3147         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
3148         * config/i386/i386.c (ix86_local_alignment): For
3149         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
3150         long long variables on the stack to avoid dynamic realignment.
3151         Allow the first argument to be a decl rather than type.
3152         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
3153
3154 2009-03-11  Nick Clifton  <nickc@redhat.com>
3155
3156         PR target/5362
3157         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
3158         options.
3159         Add description to mno-lsim option.
3160         * config/mcore/mcore.h: Remove comment about deprecated m4align
3161         option.
3162         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
3163         * doc/invoke.texi: Add description of mno-lsim and
3164         mstack-increment options.
3165
3166         * config/fr30/fr30.opt: Document the -mno-lsim option.
3167         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
3168         and -mno-lsim options.
3169
3170 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3171
3172         * fold-const.c (fold_comparison): Only call fold_inf_compare
3173         if the mode supports infinities.
3174
3175 2009-03-11  Jason Merrill  <jason@redhat.com>
3176
3177         PR debug/39086
3178         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3179         end already did.  Notice GIMPLE_CALL modifications of the result.
3180         Don't copy debug information from an ignored decl or a decl from
3181         another function.
3182
3183 2009-03-10  Richard Guenther  <rguenther@suse.de>
3184             Nathan Froyd  <froydnj@codesourcery.com>
3185
3186         PR middle-end/37850
3187         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
3188         (__divMODE3): Likewise.
3189
3190 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
3191
3192         PR tree-optimization/39394
3193         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3194         DECL_SIZE_UNIT of variable length FIELD_DECLs.
3195
3196 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3197
3198         * recog.c (verfiy_changes): Disallow renaming of hard regs in
3199         inline asms for register asm ("") declarations.
3200
3201 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
3202
3203         * fold-const.c (fold_unary): Fix comment.
3204
3205 2009-03-07  Jan Hubicka  <jh@suse.cz>
3206
3207         PR target/39361
3208         * tree-inline.c (setup_one_parameter): Do replacement of const
3209         argument by constant in SSA form.
3210
3211 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3212
3213         PR middle-end/38028
3214         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3215         determine alignment passed to assign_stack_local.
3216         (assign_parms_unsplit_complex): Likewise.
3217         * except.c (sjlj_build_landing_pads): Likewise.
3218
3219 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3220
3221         PR middle-end/39360
3222         * tree-flow.h (add_referenced_var): Return bool instead of void.
3223         * tree-dfa.c (add_referenced_var): Return result of
3224         referenced_var_check_and_insert call.
3225         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3226         of referenced_var_check_and_insert.
3227
3228         PR debug/39372
3229         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
3230         (gen_variable_die): Emit DW_AT_location on abstract static variable's
3231         DIE, don't emit it if abstract origin already has it.
3232         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
3233         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
3234
3235 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3236
3237         * genpreds.c (needs_variable): Fix parentheses at variable name
3238         detection.
3239         (write_tm_constrs_h): Indent generated code.
3240
3241 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3242
3243         * doc/extend.texi (Function Attributes): Add documentation
3244         for isr attributes.
3245
3246 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
3247
3248         PR debug/39387
3249         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
3250         take locus from its DECL_SOURCE_LOCATION instead of input_location.
3251
3252 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3253
3254         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
3255         the loop as bad.
3256
3257 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
3258
3259         PR debug/39379
3260         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
3261         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
3262
3263 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
3264
3265         * config/i386/i386.md (R8_REG, R9_REG): New constants.
3266         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
3267         constants instead of magic numbers.
3268         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3269         (QI_REG_P): Ditto.
3270         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
3271         (x86_64_ms_abi_int_parameter_registers): Ditto.
3272         (x86_64_int_return_registers): Ditto.
3273         (ix86_maybe_switch_abi): Ditto.
3274         (ix86_expand_call): Ditto for clobbered_registers array.
3275         (ix86_hard_regno_mode_ok): Ditto.
3276         (x86_extended_QIreg_mentioned_p): Ditto.
3277
3278 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
3279
3280         PR tree-optimization/39349
3281         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
3282
3283         * combine.c (gen_lowpart_for_combine): Use omode when generating
3284         clobber.
3285
3286 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
3287
3288         PR rtl-optimization/39235
3289         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
3290
3291 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3292
3293         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
3294
3295 2009-03-04  Richard Guenther  <rguenther@suse.de>
3296
3297         PR tree-optimization/39362
3298         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
3299         that occur in abnormal PHIs should be varying.
3300
3301 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
3302
3303         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
3304         Extend comments.
3305         (simple_iv):  Take loop as an argument instead of statement.
3306         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3307         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
3308         to simple_iv.
3309         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
3310         Ditto.
3311         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
3312         * matrix-reorg.c (analyze_transpose): Ditto.
3313         * tree-data-ref.c (dr_analyze_innermost): Ditto.
3314         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3315         * tree-predcom.c (ref_at_iteration): Ditto.
3316         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
3317
3318 2009-03-04  Richard Guenther  <rguenther@suse.de>
3319
3320         PR tree-optimization/39358
3321         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
3322         escaped_id and callused_id.
3323         (solve_graph): Likewise.
3324
3325 2009-03-04  Richard Guenther  <rguenther@suse.de>
3326
3327         PR tree-optimization/39339
3328         * tree-sra.c (try_instantiate_multiple_fields): Make it
3329         no longer ICE on the above.
3330
3331 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
3332
3333         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
3334         that fits within Pmode.
3335
3336 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3337
3338         PR middle-end/10109
3339         * tm.texi (LIBCALL_VALUE): Update description.
3340
3341 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
3342
3343         PR middle-end/34443
3344         * doc/extend.texi (section): Update description.
3345
3346 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
3347
3348         PR middle-end/39345
3349         * tree-inline.c (remapped_type): New.
3350         (can_be_nonlocal): Call remapped_type instead of remap_type.
3351
3352 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3353
3354         PR fortran/39354
3355         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
3356         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
3357
3358 2009-03-03  Richard Guenther  <rguenther@suse.de>
3359
3360         PR middle-end/39272
3361         * tree.c (tree_nonartificial_location): New function.
3362         * tree.h (tree_nonartificial_location): Declare.
3363         * builtins.c (expand_builtin_memory_chk): Provide location
3364         of the call location for artificial function pieces.
3365         (maybe_emit_chk_warning): Likewise.
3366         (maybe_emit_sprintf_chk_warning): Likewise.
3367         (maybe_emit_free_warning): Likewise.
3368         * expr.c (expand_expr_real_1): Likewise.
3369
3370 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
3371
3372         PR tree-optimization/39343
3373         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
3374         COMPONENT_REF t has ARRAY_TYPE.
3375
3376 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
3377
3378         PR middle-end/39335
3379         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
3380         when the type precision of the induction variable should be
3381         larger than the type precision of nit.
3382         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
3383         * graphite.c (graphite_loop_normal_form): Same.
3384         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
3385
3386 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
3387
3388         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
3389         (*call_1_rex64_ms_sysv): Use named constants instead of magic
3390         numbers to describe clobbered registers.
3391         (*call_value_0_rex64_ms_sysv): Ditto.
3392         * config/i386/mmx.md (mmx_emms): Ditto.