OSDN Git Service

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