OSDN Git Service

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