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