OSDN Git Service

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