OSDN Git Service

17520f47292814aae4c2a0fde968199cf1dff0c0
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
4         (cprop, hoist, pre, store_motion): New debug counters.
5         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
6         is not an RTL pass anymore.
7         (pass_profiling): Remove extern decl for pass removed in 2005.
8         (pass_gcse, pass_jump_bypass): Remove.
9         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
10         to 0 for clean state.
11         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
12         * cse.c (gate_handle_cse_after_global_opts,
13         rest_of_handle_cse_after_global_opts): New functions.
14         (pass_cse_after_global_opts): New pass, does local CSE.
15         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
16         (TV_CPROP): New timevar.
17         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
18         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
19         (gcse_main, recompute_all_luids): Remove.
20         (compute_hash_table_work): Call max_reg_num instead of reading
21         max_gcse_regno.
22         (cprop_jump): Don't set run_jump_opt_after_gcse.
23         (constprop_register): Always allow to alter jumps.
24         (cprop_insn): Likewise.
25         (do_local_cprop): Likewise.
26         (local_cprop_pass): Likewise.  Return non-zero if something changed.
27         (cprop): Remove function, fold interesting bits into one_cprop_pass.
28         (find_implicit_sets): Add note about missed optimization opportunity.
29         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
30         pass_rtl_cprop execute function.
31         Don't bother tracking the pass number, each pass gets its own dumpfile
32         now anyway.
33         Always allow to alter jumpsand bypass jumps.
34         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
35         will just find no suitable set.
36         (pre_edge_insert): Fix dumping, this function is for PRE only.
37         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
38         pass_rtl_pre execute function.
39         (hoist_code): Return non-zero if something changed.  Keep track of
40         substitutions and insertions for statistics gathering similar to PRE.
41         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
42         called from the pass_rtl_hoist execute function.  Show pass statistics.
43         (compute_store_table): Use max_reg_num directly instead of using the
44         formerly global max_gcse_regno.
45         (build_store_vectors): Likewise.
46         (replace_store_insn): Fix dumping.
47         (store_motion): Rename to ...
48         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
49         pass, called from the pass_rtl_store_motion execute function.  Keep
50         track of substitutions and insertions for statistics gathering similar
51         to PRE.
52         (bypass_jumps): Remove, fold interesting bits into ...
53         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
54         from the pass_rtl_cprop execute function.
55         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
56         pass_jump_bypass): Remove.
57         (gate_handle_gcse, rest_of_handle_gcse): Remove.
58         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
59         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
60         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
61         (gate_rtl_store_motion, execute_rtl_store_motion,
62         pass_rtl_store_motion): New.
63         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
64         make it clear that -fcse-skip-blocks is a no-op for backward compat.
65         * passes.c (init_optimization_passes): Remove pass_gcse and
66         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
67         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
68         instead of pass_jump_bypass.
69
70 2009-04-27  Richard Guenther  <rguenther@suse.de>
71
72         PR middle-end/39928
73         * gimplify.c (gimplify_expr): If we are required to create
74         a temporary make sure it ends up as register.
75
76 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
77
78         PR target/39903
79         * config/i386/i386.c (construct_container): Don't call
80         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
81         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
82
83 2009-04-27  Michael Matz  <matz@suse.de>
84
85         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
86         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
87         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
88         (dump_replaceable_exprs): Take a bitmap.
89         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
90         array.
91         (expand_gimple_basic_block): Likewise.
92         * tree-ssa-ter.c (struct temp_expr_table_d): Make
93         replaceable_expressions member a bitmap.
94         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
95         (mark_replaceable): Likewise.
96         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
97         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
98
99 2009-04-27  Richard Guenther  <rguenther@suse.de>
100
101         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
102         (verify_stmts): Dispatch to gimple/type verification code.
103         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
104         issue with call argument types.
105
106 2009-04-27  Michael Matz  <matz@suse.de>
107
108         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
109         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
110         to above.
111
112 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
113             Eric Botcazou  <ebotcazou@adacore.com>
114
115         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
116         a label's basic block.
117         (mark_target_live_regs): Tidy and rework obsolete comments.
118         Change back DF problem to LIVE.  If a label starts a basic block,
119         assume that all registers that used to be live then still are.
120         (init_resource_info): If a label starts a basic block, set its
121         BLOCK_FOR_INSN accordingly.
122         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
123
124 2009-04-27  Richard Guenther  <rguenther@suse.de>
125
126         * tree-flow-inline.h (function_ann): Remove.
127         (get_function_ann): Likewise.
128         * tree-dfa.c (create_function_ann): Remove.
129         * tree-flow.h (struct static_var_ann_d): Remove.
130         (struct function_ann_d): Likewise.
131         (union tree_ann_d): Remove fdecl member.
132         (function_ann_t): Remove.
133         (function_ann, get_function_ann, create_function_ann): Remove
134         declarations.
135
136 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
137
138         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
139
140 2009-04-27  Jan Hubicka  <jh@suse.cz>
141
142         * ipa-pure-const.c (struct funct_state_d): New fields
143         state_previously_known, looping_previously_known; remove
144         state_set_in_source.
145         (analyze_function): Use new fields.
146         (propagate): Avoid assumption that state_set_in_source imply
147         nonlooping.
148
149         * tree-ssa-loop-niter.c (finite_loop_p): New function.
150         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
151         * cfgloop.h (finite_loop_p): Declare.
152
153 2009-04-26  Michael Matz  <matz@suse.de>
154
155         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
156
157 2009-04-26  Michael Matz  <matz@suse.de>
158
159         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
160         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
161         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
162         pass_mark_used_blocks): Remove.
163         * tree-optimize.c (pass_free_datastructures,
164         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
165         * passes.c (init_optimization_passes): Don't call
166         pass_mark_used_blocks, remove dead code.
167
168 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
169
170         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
171         * tree-ssa-live.h (register_ssa_partition): Likewise.
172
173 2009-04-26  Michael Matz  <matz@suse.de>
174
175         Expand from SSA.
176         * builtins.c (fold_builtin_next_arg): Handle SSA names.
177         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
178         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
179         SSA names. 
180         (compare_pairs): Swap cost comparison.
181         (coalesce_ssa_name): Don't use change_partition_var.
182         * tree-nrv.c (struct nrv_data): Add modified member.
183         (finalize_nrv_r): Set it.
184         (tree_nrv): Use it to update statements.
185         (pass_nrv): Require PROP_ssa.
186         * tree-mudflap.c (mf_decl_cache_locals,
187         mf_build_check_statement_for): Use make_rename_temp.
188         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
189         * alias.c (find_base_decl): Handle SSA names.
190         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
191         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
192         * rtl.h (set_reg_attrs_for_parm): Declare.
193         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
194         to "optimized", remove unused locals at finish.
195         (execute_free_datastructures): Make global, call
196         delete_tree_cfg_annotations.
197         (execute_free_cfg_annotations): Don't call
198         delete_tree_cfg_annotations.
199
200         * ssaexpand.h: New file.
201         * expr.c (toplevel): Include ssaexpand.h.
202         (expand_assignment): Handle SSA names the same as register variables.
203         (expand_expr_real_1): Expand SSA names.
204         * cfgexpand.c (toplevel): Include ssaexpand.h.
205         (SA): New global variable.
206         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
207         (SSAVAR): New macro.
208         (set_rtl): New helper function.
209         (add_stack_var): Deal with SSA names, use set_rtl.
210         (expand_one_stack_var_at): Likewise.
211         (expand_one_stack_var): Deal with SSA names.
212         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
213         before unique numbers.
214         (expand_stack_vars): Use set_rtl.
215         (expand_one_var): Accept SSA names, add asserts for them, feed them
216         to above subroutines.
217         (expand_used_vars): Expand all partitions (without default defs),
218         then only the local decls (ignoring those expanded already).
219         (expand_gimple_cond): Remove edges when jumpif() expands an
220         unconditional jump.
221         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
222         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
223         SSA name.
224         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
225         members of SA; deal with PARM_DECL partitions here; expand
226         all PHI nodes, free tree datastructures and SA.  Commit instructions
227         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
228         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
229         info and statements at start, collect garbage at finish.
230         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
231         (VAR_ANN_PARTITION) Remove.
232         (change_partition_var): Don't declare.
233         (partition_to_var): Always return SSA names.
234         (var_to_partition): Only accept SSA names.
235         (register_ssa_partition): Only check argument.
236         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
237         member.
238         (delete_var_map): Don't free it.
239         (var_union): Only accept SSA names, simplify.
240         (partition_view_init): Mark only useful SSA names as used.
241         (partition_view_fini): Only deal with SSA names.
242         (change_partition_var): Remove.
243         (dump_var_map): Use ssa_name instead of partition_to_var member.
244         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
245         basic blocks.
246         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
247         (struct _elim_graph): New member const_dests; nodes member vector of
248         ints.
249         (set_location_for_edge): New static helper.
250         (create_temp): Remove.
251         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
252         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
253         (new_elim_graph): Allocate const_dests member.
254         (clean_elim_graph): Truncate const_dests member.
255         (delete_elim_graph): Free const_dests member.
256         (elim_graph_size): Adapt to new type of nodes member.
257         (elim_graph_add_node): Likewise.
258         (eliminate_name): Likewise.
259         (eliminate_build): Don't take basic block argument, deal only with
260         partition numbers, not variables.
261         (get_temp_reg): New static helper.
262         (elim_create): Use it, deal with RTL temporaries instead of trees.
263         (eliminate_phi): Adjust all calls to new signature.
264         (assign_vars, replace_use_variable, replace_def_variable): Remove.
265         (rewrite_trees): Only do checking.
266         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
267         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
268         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
269         contains_tree_r, MAX_STMTS_IN_LATCH,
270         process_single_block_loop_latch, analyze_edges_for_bb,
271         perform_edge_inserts): Remove.
272         (expand_phi_nodes): New global function.
273         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
274         functions, initialize new parameter, remember partitions having a
275         default def.
276         (finish_out_of_ssa): New global function.
277         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
278         don't reset in_ssa_p here, don't disable TER when mudflap.
279         (pass_del_ssa): Remove.
280         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
281         partition members.
282         (execute_free_datastructures): Declare.
283         * Makefile.in (SSAEXPAND_H): New variable.
284         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
285         * basic-block.h (commit_one_edge_insertion): Declare.
286         * passes.c (init_optimization_passes): Move pass_nrv and
287         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
288         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
289         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
290         (redirect_branch_edge): Deal with super block when expanding, split
291         out jump patching itself into ...
292         (patch_jump_insn): ... here, new static helper.
293
294 2009-04-26  Michael Matz  <matz@suse.de>
295
296         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
297         beyond num_ssa_names.
298         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
299         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
300
301 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
302
303         PR inline-asm/39543
304         * fwprop.c (forward_propagate_asm): New function.
305         (forward_propagate_and_simplify): Propagate also into __asm, if it
306         doesn't increase the number of referenced registers.
307
308         PR c/39889
309         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
310
311 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
312
313         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
314         note_nonlocal_vla_type for nonlocal VLAs.
315         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
316         contains_remapped_vars, remap_vla_decls): New functions.
317         (convert_nonlocal_reference_stmt): If not optimizing, call
318         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
319         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
320         if it wasn't found in var_map.
321         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
322         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
323         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
324         declare_vars.
325         * gimplify.c (nonlocal_vlas): New variable.
326         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
327         referenced VLAs.
328         (gimplify_body): Create and destroy nonlocal_vlas.
329
330         * dwarf2out.c (loc_descr_plus_const): New function.
331         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
332         mem_loc_descriptor, loc_descriptor_from_tree_1,
333         descr_info_loc, gen_variable_die): Use it.
334
335         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
336         !TREE_STATIC VAR_DECLs.
337         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
338         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
339         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
340         DECL_BY_REFERENCE is valid.
341         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
342         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
343         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
344         Copy DECL_BY_REFERENCE.
345         (struct nesting_copy_body_data): New type.
346         (nesting_copy_decl): New function.
347         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
348         if they have variable length.
349
350 2009-04-26  Michael Matz  <matz@suse.de>
351
352         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
353         mark new temporaries for renaming.
354
355 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
356
357         PR c/39581
358         * c-decl.c (global_bindings_p): Return negative value.
359         (c_variable_size): New.  Based on variable_size from
360         stor-layout.c.
361         (grokdeclarator): Call c_variable_size not variable_size.
362
363 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
364
365         * config/i386/i386.c (print_operand) ['z']: Fix typo.
366
367 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
368
369         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
370         Redefine it to just use mingw/include.
371         (ASM_SPEC): Rules for -m32 and -m64.
372         (LINK_SPEC): Use Likewise.
373         (SPEC_32): New define.
374         (SPEC_64): Likewise.
375         (SUB_LINK_SPEC): Likewise.
376         (MULTILIB_DEFAULTS): New define.
377         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
378         Add multilib options.
379         (MULTILIB_DIRNAMES): Likewise.
380         (MULTILIB_OSDIRNAMES): Likewise.
381         (LIBGCC): Likewise.
382         (INSTALL_LIBGCC): Likewise.
383
384 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
385
386         PR c/39556
387         * c-tree.h (enum c_inline_static_type): New.
388         (record_inline_static): Declare.
389         * c-decl.c (struct c_inline_static, c_inline_statics,
390         record_inline_static, check_inline_statics): New.
391         (pop_file_scope): Call check_inline_statics.
392         (start_decl): Call record_inline_static instead of pedwarning
393         directly for static in inline function.
394         * c-typeck.c (build_external_ref): Call record_inline_static
395         instead of pedwarning directly for static referenced in inline
396         function.
397
398 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
399
400         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
401         not new but only being rescanned.
402         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
403         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
404         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
405         record_set_info, compute_set, grealloc): Remove.
406         (recompute_all_luids): New function.
407         (gcse_main): Don't compute sets, and don't do related memory
408         allocations/free-ing.  If something changed before the end of the
409         pass, update LUIDs using recompute_all_luids.
410         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
411         (free_gcse_mem): Don't free it either.
412         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
413         Use the df insn LUIDs.
414         (load_killed_in_block): Likewise.
415         (compute_hash_table_work): Don't compute reg_set_in_block.
416         (compute_transp): Use DF_REG_DEF_CHAINs.
417         (local_cprop_pass): Don't use compute_sets and related functions.
418         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
419         Use get_max_uid() instead of max_cuid.
420         (insert_insn_end_basic_block, pre_insert_copy_insn,
421         update_ld_motion_stores): Don't try to
422         keep reg_set tables up to date.
423         (pre_insert_copies): Use df insn LUIDs.
424         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
425         (reg_set_info): Don't use extra bitmap argument.
426         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
427         information to compute regs_set_in_block.
428         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
429         (bypass_jumps): Don't use compute_sets and friends.
430
431 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
432
433         PR testsuite/39710
434         * opts.c (undocumented_msg): Do not leave blank even with
435         ENABLE_CHECKING.
436
437 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
438
439         * c-decl.c (build_enumerator): Allow values folding to integer
440         constants but not integer constant expressions with a pedwarn if
441         pedantic.
442
443 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
444
445         PR c/39582
446         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
447         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
448         type is an integer constant.
449
450 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
451
452         PR target/39897
453         * config/i386/i386.c (print_operand) ['z']: Revert handling of
454         HImode operands.
455
456 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
457
458         PR c/39564
459         * c-decl.c (grokdeclarator): Diagnose declarations of functions
460         with variably modified return type and no storage class
461         specifiers, except for the case of nested functions.  Distinguish
462         extern declarations of functions with variably modified return
463         types from those of objects with variably modified types.
464
465 2009-04-25  Jan Hubicka  <jh@suse.cz>
466
467         * tree.c (list_equal_p): New function.
468         * tree.h (list_equal_p): Declare.
469         * coretypes.h (edge_def, edge, const_edge, basic_block_def
470         basic_block_def, basic_block, const_basic_block): New.
471         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
472         (redirect_eh_edge): New function.
473         (make_eh_edge_update_phi): EH edges are not abnormal.
474         * except.c: Include tree-flow.h.
475         (list_match): New function.
476         (eh_region_replaceable_by_p): New function.
477         (replace_region): New function.
478         (hash_type_list): New function.
479         (hash_eh_region): New function.
480         (eh_regions_equal_p): New function.
481         (merge_peers): New function.
482         (remove_unreachable_regions): Verify EH tree when checking;
483         merge peers.
484         (copy_eh_region_1): New function.
485         (copy_eh_region): New function.
486         (push_reachable_handler): New function.
487         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
488         regions without label but with live RESX.
489         * except.h (redirect_eh_edge_to_label): New.
490         * tree-flow.h (redirect_eh_edge): New.
491         * coretypes.h (edge_def, edge, const_edge, basic_block_def
492         basic_block_def, basic_block, const_basic_block): Remove.
493         * Makefile.in (except.o): Add dependency on tree-flow.h
494         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
495         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
496         Remove.
497
498 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
499
500         PR bootstrap/39645
501         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
502         on the destination of memcpy.
503
504 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
505
506         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
507         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
508         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
509
510 2009-04-25  Jan Hubicka  <jh@suse.cz>
511
512         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
513         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
514         to be reached by different label than left.
515         (update_eh_edges): Update comment; remove edge_to_remove if possible
516         and return true if suceeded.
517         (cleanup_empty_eh): Accept sharing map; handle shared regions.
518         (cleanup_eh): Compute sharing map.
519         * except.c (remove_eh_handler_and_replace): Add argument if we should
520         update regions.
521         (remove_unreachable_regions): Update for label sharing.
522         (label_to_region_map): Likewise.
523         (get_next_region_sharing_label): New function.
524         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
525         prev_try pointers.
526         (remove_eh_handler): Update.
527         (remove_eh_region_and_replace_by_outer_of): New function.
528         * except.h (struct eh_region): Add next_region_sharing_label.
529         (remove_eh_region_and_replace_by_outer_of,
530         get_next_region_sharing_label): Declare.
531         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
532
533 2009-04-25  Jan Hubicka  <jh@suse.cz>
534
535         * tree-cfg.c (split_critical_edges): Split also edges where we can't
536         insert code even if they are not critical.
537
538 2009-04-25  Jan Hubicka  <jh@suse.cz>
539
540         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
541         (gimple_can_remove_branch_p): EH edges won't remove branch by
542         redirection.
543         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
544         updating of non-abnormal EH edges.
545         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
546         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
547         (split_critical_edges): Split also edges where emitting code on them
548         will lead to splitting later.
549
550 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
551             H.J. Lu  <hongjiu.lu@intel.com>
552
553         PR target/39590
554         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
555         the configured assembler supports fildq and fistpq mnemonics.
556         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
557         * configure: Regenerated.
558         * config.in: Ditto.
559
560         * config/i386/i386.c (print_operand): Handle 'Z'.
561         ['z']: Remove handling of special fild/fist suffixes.
562         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
563         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
564         suffix of fild insn.
565         (*floatsi<mode>2_vector_mixed): Ditto.
566         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
567         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
568         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
569         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
570         * config/i386/gas.h (GAS_MNEMONICS): Remove.
571
572 2009-04-25  Ben Elliston  <bje@au.ibm.com>
573  
574         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
575         the source of a set operation.
576
577 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
578
579         * target.h (struct gcc_target): Add case_values_threshold field.
580         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
581         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
582         * targhooks.c (default_case_values_threshold): New function.
583         * targhooks.h (default_case_values_threshold): Declare function.
584         * stmt.c (expand_case): Use case_values_threshold target hook.
585         * expr.h (case_values_threshold): Remove declartation.
586         * expr.c (case_values_threshold): Remove function.
587         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
588
589         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
590         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
591         (avr_case_values_threshold): Declare as static.
592         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
593
594         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
595         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
596         (mn10300_case_values_threshold): New function.
597
598 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
599
600         * ira.c (setup_cover_and_important_classes): Add enum cast.
601
602 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
603
604         * genpreds.c (write_enum_constraint_num): Output definition of
605         CONSTRAINT_NUM_DEFINED_P macro.
606         * ira.c (setup_cover_and_important_classes): Use
607         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
608         
609 2009-04-24  DJ Delorie  <dj@redhat.com>
610
611         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
612         __SH2A_SINGLE_ONLY__ also.
613
614 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
615
616         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
617         (movdf_internal): Ditto.
618         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
619         SFmode and DFmode constants.
620         (ia64_print_operand): Add 'G' format for printing
621         floating point constants.
622
623 2009-04-24  Richard Guenther  <rguenther@suse.de>
624
625         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
626         from unsigned additions.
627
628 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
629
630         * c-typeck.c (set_init_index): Allow array designators that are
631         not integer constant expressions with a pedwarn if pedantic.
632
633 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
634
635         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
636         zero if no overlap in nonzero bits between the operands.
637
638 2009-04-24  Ian Lance Taylor  <iant@google.com>
639
640         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
641         (record_dead_and_set_regs): Likewise.
642         * df.h (struct df_mw_hardreg): Change flags field to int.
643         (struct df_base_ref): Likewise.
644         (struct df): Change changeable_flags field to int.
645         * df-scan.c (df_defs_record): Change clobber_flags to int.
646         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
647         constants rather than #define macros.
648         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
649         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
650         (enum dwarf_calling_convention): Likewise.
651         (enum dwarf_line_number_x_ops): Likewise.
652         (enum dwarf_call_frame_info): Likewise.
653         (enum dwarf_source_language): Likewise.
654         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
655         (add_calling_convention_attribute): Likewise.
656         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
657         (combine_comparisons): Change compcode to int.  Add cast to enum type.
658         * genrecog.c (maybe_both_true_2): Change c to int.
659         (write_switch): Likewise.  Add cast to enum type.
660         * gimplify.c (gimplify_omp_for): Handle return values from
661         gimplify_expr using MIN rather than bitwise or.
662         (gimplify_expr): Add cast to enum type.
663         * ipa-prop.c (update_jump_functions_after_inlining): Change
664         IPA_BOTTOM to IPA_JF_UNKNOWN.
665         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
666         Add casts to enum type.
667         (setup_cover_and_important_classes): Change cl to int.  Add casts
668         to enum type.
669         (setup_class_translate): Change cl and mode to int.
670         (ira_init_once): Change mode to int.
671         (free_register_move_costs): Likewise.
672         (setup_prohibited_mode_move_regs): Add casts to enum type.
673         * langhooks.c (add_builtin_function_common): Rework assertion that
674         value fits bitfield.
675         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
676         * omega.c (omega_do_elimination): Avoid math on enum types.
677         * optabs.c (expand_vec_shift_expr): Remove casts to int.
678         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
679         int local to handle integral_argment value.
680         * regmove.c (try_auto_increment): Change PUT_MODE to
681         PUT_REG_NOTE_KIND.
682         * reload.c (push_secondary_reload): Add casts to enum type.
683         (secondary_reload_class, find_valid_class): Likewise.
684         * reload1.c (emit_input_reload_insns): Likewise.
685         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
686         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
687         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
688         constant.
689         * tree.c (build_common_builtin_nodes): Add casts to enum type.
690         * tree-complex.c (complex_lattice_t): Typedef to int rather than
691         enum type.
692         (expand_complex_libcall): Add casts to enum type.
693         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
694         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
695         with ERROR_MARK, not NUM_TREE_CODES.
696         (vect_create_epilog_for_reduction): Likewise.
697         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
698         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
699         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
700         enum machine_mode.
701         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
702         vect_unused_in_loop.  Change 0 to loop_vect.
703         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
704         * var-tracking.c (get_init_value): Change return type to enum
705         var_init_status.
706         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
707         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
708         arm_fp_model.
709         (arm_override_options): Add casts to enum type.
710         (arm_emit_tls_decoration): Likewise.
711         * config/i386/i386.c (ix86_function_specific_restore): Add casts
712         to enum type.
713         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
714         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
715         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
716         enum type.
717         * config/s390/s390.c (code_for_builtin_64): Change to array of
718         enum insn_code.
719         (code_for_builtin_31): Likewise.
720         (s390_expand_builtin): Change code_for_builtin to enum insn_code
721         const *.
722         * config/sparc/sparc.c (sparc_override_options): Change value
723         field in struct code_model to enum cmodel.  In initializer change
724         0 to NULL and add cast to enum type.
725
726         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
727         Change all callers.  Issue a -Wc++-compat warning using
728         lhs_origtype if necessary.
729         (convert_for_assignment): Issue -Wc++-compat warnings about
730         invalid conversions to enum type on assignment.
731         * c-common.h (build_modify_expr): Update declaration.
732
733 2009-04-24  Nick Clifton  <nickc@redhat.com>
734
735         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
736         (function_arg_advance): Likewise.
737         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
738         5th alternative.
739
740 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
741
742         * config/s390/constraints.md ('I', 'J'): Fix condition.
743
744 2009-04-24  Diego Novillo  <dnovillo@google.com>
745
746         * gengtype-parse.c (parse_error): Add newline after message.
747
748 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
749
750         * config/i386/sse.md (avxmodesuffixs): Removed.
751         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
752         (*avx_pinsr<ssevecsize>): This.
753
754 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
755
756         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
757         follow chains of regs with a single definition, and allow expressions
758         that are function_invariant_p.
759         (simple_rhs_p): Allow expressions that are function_invariant_p.
760
761 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
762
763         PR middle-end/39867
764         * fold-const.c (fold_cond_expr_with_comparison): When folding
765         > and >= to MAX, make sure the MAX uses the same type as the
766         comparison's operands.
767
768 2009-04-24  Nick Clifton  <nickc@redhat.com>
769
770         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
771         addressing for DImode accesses.
772         (frv_print_operand_address): Handle PLUS case.
773         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
774
775 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
776
777         PR rtl-optimization/39794
778         * alias.c (canon_true_dependence): Add x_addr argument.
779         * rtl.h (canon_true_dependence): Adjust prototype.
780         * cse.c (check_dependence): Adjust canon_true_dependence callers.
781         * cselib.c (cselib_invalidate_mem): Likewise.
782         * gcse.c (compute_transp): Likewise.
783         * dse.c (scan_reads_nospill): Likewise.
784         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
785         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
786         canon_base_addr of the group, plus optional offset.
787         (struct group_info): Rename canon_base_mem to
788         canon_base_addr.
789         (get_group_info): Set canon_base_addr to canon_rtx of base, not
790         canon_rtx of base_mem.
791
792 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
793
794         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
795         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
796
797 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
798
799         * config/spu/spu-builtins.h: Delete file.
800
801         * config/spu/spu.h (enum spu_builtin_type): Move here from
802         spu-builtins.h.
803         (struct spu_builtin_description): Likewise.  Add GTY marker.
804         Do not use enum spu_function_code or enum insn_code.
805         (spu_builtins): Add extern declaration.
806
807         * config/spu/spu.c: Do not include "spu-builtins.h".
808         (enum spu_function_code, enum spu_builtin_type_index,
809         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
810         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
811         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
812         unsigned_V2DI_type_node): Move here from spu-builtins.h.
813         (spu_builtin_types): Make static.  Add GTY marker.
814         (spu_builtins): Add extern declaration with GTY marker.
815         Include "gt-spu.h".
816
817         * config/spu/spu-c.c: Do not include "spu-builtins.h".
818         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
819         Check programmatically whether all parameters are scalar.
820
821         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
822
823 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
824
825         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
826         assignment from the constructor either if the target is volatile.
827
828 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
829
830         * config/arm/arm.md (insv): Do not share operands[0].
831
832 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
833
834         * config/vxlib-tls.c (active_tls_threads): Delete.
835         (delete_hook_installed): New.
836         (tls_delete_hook): Don't delete the delete hook.
837         (tls_destructor): Delete it here.
838         (__gthread_set_specific): Adjust installing the delete hook.
839         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
840         __gthread_leave_tsd_dtor_context.
841
842 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
843
844         * c-format.c (gcc_tdiag_char_table): Add support for %E.
845
846 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
847
848         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
849         enum type.
850         (alpha_rtx_costs): Ditto.
851         (emit_unlikely_jump): Use add_reg_note.
852         (emit_frame_store_1): Ditto.
853         (alpha_expand_prologue): Ditto.
854         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
855         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
856
857 2009-04-23  Nick Clifton  <nickc@redhat.com>
858
859         * config/v850/v850.md (epilogue): Remove suppressed code.
860         (return): Rename to return_simple and remove test of frame size.
861         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
862         to gen_return_simple.
863
864 2009-04-22  Jing Yu  <jingyu@google.com>
865
866         PR testsuite/39781
867         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
868
869 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
870
871         PR C/31499
872         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
873         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
874         value is a VECTOR_CST, the element type is the element type of the
875         vector.
876
877 2009-04-22  DJ Delorie  <dj@redhat.com>
878
879         * config/m32c/m32c.h: Update GTY annotations to new syntax.
880
881 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
882
883         * alias.c (find_base_term): Move around LO_SUM case, so that
884         CONST falls through into PLUS/MINUS handling.
885
886         PR c/39855
887         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
888         into 0, use omit_one_operand.
889
890 2009-04-23  Ben Elliston  <bje@au.ibm.com>
891
892         * config/rs6000/linux-unwind.h (get_regs): Remove type
893         puns. Change the type of `pc' to an array of unsigned ints and
894         update all users.  Constify frame24.
895
896 2009-04-22  DJ Delorie  <dj@redhat.com>
897
898         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
899         declarations before code.
900         (current_function_special_page_vector): Likewise.
901         (m32c_expand_insv): Silence a warning.
902
903 2009-04-21  Taras Glek <tglek@mozilla.com>
904
905         * alias.c: Update GTY annotations to new syntax.
906         * basic-block.h: Likewise.
907         * bitmap.h: Likewise.
908         * c-common.h: Likewise.
909         * c-decl.c: Likewise.
910         * c-parser.c: Likewise.
911         * c-pragma.c: Likewise.
912         * c-tree.h: Likewise.
913         * cfgloop.h: Likewise.
914         * cgraph.h: Likewise.
915         * config/alpha/alpha.c: Likewise.
916         * config/arm/arm.h: Likewise.
917         * config/avr/avr.h: Likewise.
918         * config/bfin/bfin.c: Likewise.
919         * config/cris/cris.c: Likewise.
920         * config/darwin.c: Likewise.
921         * config/frv/frv.c: Likewise.
922         * config/i386/i386.c: Likewise.
923         * config/i386/i386.h: Likewise.
924         * config/i386/winnt.c: Likewise.
925         * config/ia64/ia64.h: Likewise.
926         * config/iq2000/iq2000.c: Likewise.
927         * config/mips/mips.c: Likewise.
928         * config/mmix/mmix.h: Likewise.
929         * config/pa/pa.c: Likewise.
930         * config/pa/pa.h: Likewise.
931         * config/rs6000/rs6000.c: Likewise.
932         * config/s390/s390.c: Likewise.
933         * config/sparc/sparc.c: Likewise.
934         * config/xtensa/xtensa.c: Likewise.
935         * cselib.h: Likewise.
936         * dbxout.c: Likewise.
937         * dwarf2out.c: Likewise.
938         * except.c: Likewise.
939         * except.h: Likewise.
940         * fixed-value.h: Likewise.
941         * function.c: Likewise.
942         * function.h: Likewise.
943         * gimple.h: Likewise.
944         * integrate.c: Likewise.
945         * optabs.c: Likewise.
946         * output.h: Likewise.
947         * real.h: Likewise.
948         * rtl.h: Likewise.
949         * stringpool.c: Likewise.
950         * tree-data-ref.c: Likewise.
951         * tree-flow.h: Likewise.
952         * tree-scalar-evolution.c: Likewise.
953         * tree-ssa-address.c: Likewise.
954         * tree-ssa-alias.h: Likewise.
955         * tree-ssa-operands.h: Likewise.
956         * tree.c: Likewise.
957         * tree.h: Likewise.
958         * varasm.c: Likewise.
959         * varray.h: Likewise.
960         * vec.h: Likewise.
961         * coretypes.h: Do not define GTY macro if it is already defined.
962         * doc/gty.texi: Update GTY documentation to new syntax.
963         * gengtype-lex.l: Enforce attribute-like syntax for GTY
964         annotations on structs.
965         * gengtype-parse.c: Likewise.
966
967 2009-04-22  Mark Heffernan  <meheff@google.com>
968
969         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
970
971 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
972
973         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
974         where appropriate.
975
976 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
977
978         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
979         the same as a PLUS without a shift.  Increase the cost of a
980         CONST_INT in MULT.
981
982 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
983
984         * Makefile.in: Update dependencies.
985         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
986         * errors.h: Remove bogus comment about compatibility.
987         (warning): Update declaration.
988         * genautomata.c: Update all calls to warning.
989         * gimple.c: Do not include errors.h. Include toplev.h.
990         * tree-ssa-structalias.c: Do not include errors.h.
991         * omega.c: Likewise.
992         * tree-ssa-reassoc.c: Likewise.
993         * config/spu/spu-c.c: Likewise.
994         * config/spu/t-spu-elf: Update dependencies.
995
996 2009-04-22  Richard Guenther  <rguenther@suse.de>
997
998         PR tree-optimization/39824
999         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
1000         make sure the types are compatible.
1001
1002 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1003
1004         PR c++/14875
1005         * c-common.c (c_parse_error): Take a token_flags parameter.
1006         Use token_type for the token type instead.
1007         Pass token_flags to cpp_type2name.
1008         * c-common.h (c_parse_error): Update declaration.
1009         * c-parser.c (c_parser_error): Pass 0 as token flags.
1010
1011 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
1012
1013         PR rtl-optimization/39580
1014         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
1015         
1016 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1017
1018         * function.c (expand_function_end): Do not emit a jump to the "naked"
1019         return label for fall-through returns.
1020         * except.c (sjlj_emit_function_exit): Always place the call to the
1021         unregister function at the location installed by expand_function_end.
1022
1023 2009-04-22  Richard Guenther  <rguenther@suse.de>
1024
1025         PR tree-optimization/39845
1026         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
1027         (gen_inbound_check): Likewise.
1028
1029 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1030
1031         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
1032         padding for PPC.
1033         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
1034         * config/vxlib.c (__gthread_once): Add race guard for PPC.
1035
1036 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1037
1038         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
1039         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
1040         shift counts to avoid out-of-bounds array accesses.
1041
1042 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1043
1044         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
1045         (Pmode): Move above.
1046
1047 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
1048
1049         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
1050         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
1051         GET_CODE macro.  Use IN_RANGE macro where appropriate.
1052         * config/alpha/alpha.h: Ditto.
1053         * config/alpha/alpha.md: Ditto.
1054         * config/alpha/constraints.md: Ditto.
1055         * config/alpha/predicates.md: Ditto.
1056         
1057 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
1058
1059         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
1060         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1061         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1062         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1063         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1064         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1065         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1066         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1067         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1068         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1069         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1070         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1071         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1072         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1073         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1074         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1075         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1076         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1077         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1078         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1079         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1080         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1081         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1082         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1083         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1084         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1085         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
1086
1087 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1088
1089         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
1090         references from comments.
1091         * cfgbuild.c: (count_basic_blocks): Delete.
1092         (find_basic_blocks_1): Delete.
1093         (find_basic_blocks): Delete.
1094         * except.c (finish_eh_generation): Make static.  Move comment from
1095         except.h here.  Remove find_basic_blocks references from comments.
1096         * except.h (finish_eh_generation): Delete.
1097         * basic-block.h (find_basic_blocks): Delete.
1098         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
1099
1100 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
1101
1102         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
1103         (sdbout_parms):  Likewise.
1104
1105 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1106
1107         * config/sh/sh.c (prepare_cbranch_operands): Use
1108         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
1109         (expand_cbranchdi4): Likewise.
1110         (from_compare): Add cast to enum type.
1111         (expand_cbranchsi4): Use add_reg_note.
1112         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
1113         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
1114         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
1115         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1116         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
1117         instead of CODE_FOR_nothing.
1118         (cbranchdi4): Likewise.  Fix the order of arguments for
1119         gen_rtx_fmt_ee.
1120         (push_fpscr): Use add_reg_note.
1121         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
1122         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
1123         
1124 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
1125
1126         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
1127         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1128         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1129         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
1130         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
1131         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
1132         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
1133         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
1134         config/alpha/x-vms, config/arc/t-arc,
1135         config/arm/README-interworking, config/arm/arm-c.c,
1136         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
1137         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
1138         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
1139         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
1140         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
1141         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
1142         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
1143         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
1144         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
1145         config/cris/t-elfmulti, config/crx/t-crx,
1146         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
1147         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
1148         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
1149         config/h8300/t-h8300, config/i386/athlon.md,
1150         config/i386/darwin-libgcc.10.4.ver,
1151         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
1152         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
1153         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
1154         config/i386/t-linux64, config/i386/t-nwld,
1155         config/i386/t-rtems-i386, config/i386/t-sol2-10,
1156         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
1157         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
1158         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
1159         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
1160         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
1161         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
1162         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
1163         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
1164         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
1165         config/m68k/t-uclinux, config/mcore/t-mcore,
1166         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
1167         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
1168         config/mips/crtn.asm, config/mips/irix-crti.asm,
1169         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
1170         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
1171         config/mips/mips-fixed.md, config/mips/sb1.md,
1172         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
1173         config/mips/t-iris6, config/mips/t-isa3264,
1174         config/mips/t-libgcc-mips16, config/mips/t-linux64,
1175         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
1176         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
1177         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
1178         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
1179         config/mn10300/t-linux, config/mn10300/t-mn10300,
1180         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
1181         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
1182         config/picochip/libgccExtras/clzsi2.asm,
1183         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
1184         config/rs6000/darwin-libgcc.10.4.ver,
1185         config/rs6000/darwin-libgcc.10.5.ver,
1186         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
1187         config/rs6000/t-aix43, config/rs6000/t-aix52,
1188         config/rs6000/t-darwin, config/rs6000/t-fprules,
1189         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
1190         config/rs6000/t-lynx, config/rs6000/t-netbsd,
1191         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
1192         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
1193         config/rs6000/t-rtems, config/rs6000/t-spe,
1194         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
1195         config/score/t-score-elf, config/sh/divcost-analysis,
1196         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
1197         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
1198         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
1199         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
1200         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
1201         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
1202         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
1203         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
1204         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
1205         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
1206         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
1207         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
1208         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
1209         limitx.h, version.c, xcoff.h: Add copyright and license notices.
1210         * config/h8300/genmova.sh: Include copyright and license notices
1211         in generated output.
1212         * config/h8300/mova.md: Regenerate.
1213         * doc/install.texi2html: Include word "Copyright" in copyright
1214         notice and use name "Free Software Foundation, Inc.".
1215         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
1216         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
1217         ChangeLog-2007, ChangeLog-2008: Correct dates.
1218
1219 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
1220
1221         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
1222         NE_EXPR operations as well.
1223         * c-parser.c (c_parser_condition): Do not set location information on
1224         the condition.
1225         (c_parser_conditional_expression): Likewise.
1226         (c_parser_binary_expression): Set location information on operators.
1227         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
1228         TRUTH_NOT_EXPR has been folded.
1229         * fold-const.c (fold_truth_not_expr): Copy location information from
1230         the incoming expression to the outgoing one.
1231         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
1232         recursive calls on the LHS of the operator but pass that of the
1233         operator to recursive calls on the RHS of the operator.  Set it
1234         on the COND_EXPR.
1235         (shortcut_cond_expr): Set the locus of the operator on the second
1236         COND_EXPR and that of the expression on the first in degenerate cases.
1237         Pass the locus of the expression to calls to shortcut_cond_r.
1238         Set the locus of the 'then' block on the associated jump, if any.
1239         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
1240         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
1241         expression to call to gimplify_boolean_expr.
1242
1243 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
1244
1245         * config.gcc: Add additional configuration for
1246         i686-w64-mingw* and x86_64-w64-mingw* triplet.
1247         * config/i386/mingw-w64.h: New mingw-w64 specific header.
1248         (CPP_SPEC): Redefine for allowing -municode option.
1249         (STARTFILE_SPEC): Likewise.
1250         * config/i386/t-mingw-w64: New.
1251         * config/i386/mingw-w64.opt: New.
1252         (municode): Add new target option.
1253         * doc/invoke.texi (municode): Add documentation for new option.
1254
1255 2009-04-21  Ian Lance Taylor  <iant@google.com>
1256
1257         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1258         Correct test for number of arguments.
1259         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
1260
1261 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
1262
1263         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
1264         argument of emit_library_call.
1265
1266 2009-04-21  Richard Guenther  <rguenther@suse.de>
1267
1268         PR middle-end/39829
1269         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
1270         inside VIEW_CONVERT_EXPRs.
1271
1272 2009-04-21  Martin Jambor  <mjambor@suse.cz>
1273
1274         * tree-switch-conversion.c (build_constructors): Split a long line.
1275         (constructor_contains_same_values_p): New function.
1276         (build_one_array): Create assigns of constants if possible, do not
1277         call mark_sym_for_renaming, call update_stmt.
1278         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
1279         make_rename_temp.  Do not call mark_symbols_for_renaming, call
1280         update_stmt.
1281         (gen_def_assigns): Do not call mark_symbols_for_renaming or
1282         find_new_referenced_vars, call update_stmt.
1283         (gen_inbound_check): Use create_tmp_var and create ssa names manually
1284         instead of calling make_rename_temp.  Do not call
1285         find_new_referenced_vars or mark_symbols_for_renaming, call
1286         update_stmt.
1287
1288 2009-04-21  Richard Guenther  <rguenther@suse.de>
1289
1290         PR tree-optimization/39827
1291         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
1292         (tree_ssa_phiprop): Pass the correct array size.
1293
1294 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
1295
1296         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
1297
1298 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1299
1300         PR 16202
1301         * c-typeck.c (lvalue_p): Move declaration ...
1302         * c-common.h (lvalue_p): ... to here.
1303         * c-common.c (candidate_equal_p): New.
1304         (add_tlist): Use it.
1305         (merge_tlist): Use it.
1306         (warn_for_collisions_1): Likewise.
1307         (warning_candidate_p): Accept more candidates.
1308         (verify_tree): A warning candidate can be an expression. Use
1309         candidate_equal_p.
1310
1311 2009-04-21  Ben Elliston  <bje@au.ibm.com>
1312
1313         PR target/5267
1314         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
1315         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
1316         options.  Remove -mcall-solaris documentation.
1317
1318 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1319
1320         PR c++/13358
1321         * doc/invoke.texi (-Wlong-long): Update description.
1322         * c-lex (interpret_integer): Only warn if there was no previous
1323         overflow and -Wlong-long is enabled.
1324         * c-decl.c (declspecs_add_type): Drop redundant flags.
1325         * c.opt (Wlong-long): Init to -1.
1326         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
1327         and front-end warn_long_long. Wlong-long only depends on other
1328         flags if it is uninitialized.
1329         * c-parser.c (disable_extension_diagnostics): warn_long_long is
1330         the same for CPP and FE.
1331         (restore_extension_diagnostics): Likewise.
1332
1333 2009-04-20  Ian Lance Taylor  <iant@google.com>
1334
1335         Fix enum conversions which are invalid in C++:
1336         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
1337         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
1338         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
1339         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
1340         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
1341         (dbxout_parms): Likewise.
1342         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
1343         (df_clear_flags): Likewise.
1344         * df-problems.c (df_rd_bb_local_compute_process_def): Change
1345         top_flag parameter to int.
1346         (df_chain_create_bb_process_use): Likewise.
1347         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
1348         Remove cast.
1349         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
1350         (df_ref_create_structure, df_def_record_1): Likewise.
1351         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
1352         (df_notes_rescan): Change 0 to VOIDmode in function call.
1353         (df_get_call_refs, df_insn_refs_collect): Likewise.
1354         (df_bb_regs_collect): Likewise.
1355         (df_entry_block_defs_collect): Likewise.
1356         (df_exit_block_uses_collect): Likewise.
1357         * df.h: Update declarations.
1358         * double-int.c (double_int_divmod): Add cast to enum type.
1359         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
1360         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
1361         (based_loc_descr): Likewise.
1362         (loc_descriptor_from_tree_1): Change first_op and second_op to
1363         enum dwarf_location_atom.  Add cast to enum type.
1364         * expmed.c (init_expmed): Change 0 to SET in function call.
1365         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
1366         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
1367         (do_store_flag): Likewise.
1368         * fixed-value.h (struct fixed_value): Change mode to enum
1369         machine_mode.
1370         * function.c (assign_parms): Change 0 to VOIDmode in function call.
1371         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
1372         function call.
1373         (insert_insn_decl, insert_decl, insert_state): Likewise.
1374         (automata_list_finish): Likewise.
1375         * genrecog.c (process_define_predicate): Add cast to enum type.
1376         * gensupport.c (init_predicate_table): Add cast to enum type.
1377         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
1378         function call.
1379         (gimple_build_call_1, gimple_build_label): Likewise.
1380         (gimple_build_goto, gimple_build_asm_1): Likewise.
1381         (gimple_build_switch_1, gimple_build_cdt): Likewise.
1382         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
1383         (enum fallback): Rename from enum fallback_t.
1384         (fallback_t): Typedef as int.
1385         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
1386         GSI_SAME_STMT in function call.
1387         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
1388         enum type.
1389         (setup_reg_class_relations): Likewise.
1390         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
1391         (setup_prohibited_class_mode_regs): Add cast to enum type.
1392         (setup_prohibited_mode_move_regs): Likewise.
1393         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
1394         (record_address_regs): Change i to enum reg_class.
1395         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
1396         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
1397         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
1398         (GET_MODE_2XWIDER_MODE): Likewise.
1399         (GET_CLASS_NARROWEST_MODE): Likewise.
1400         * omp-low.c (expand_omp_for): Add cast to enum type.
1401         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
1402         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
1403         * postreload.c (reload_cse_simplify_operands): Change rclass local
1404         to enum reg_class.
1405         * predict.c (combine_predictions_for_insn): Change best_predictor
1406         and predictor to enum br_predictor.
1407         (combine_predictions_for_bb): Likewise.
1408         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
1409         use SET_PREDICT_EXPR_OUTCOME.
1410         * real.c (real_arithmetic): Change icode to code in function call.
1411         * reginfo.c (init_move_cost): Add casts to enum type.
1412         (init_reg_sets_1, init_fake_stack_mems): Likewise.
1413         * regmove.c (regclass_compatible_p): Change class0 and class1 to
1414         enum reg_class.
1415         * reload.c (find_valid_class): Add casts to enum type.
1416         (push_reload): Change 0 to NO_REGS in function call.
1417         (find_reloads): Change this_alternative to array of enum
1418         reg_class.  Remove some now-unnecessary casts.
1419         (make_memloc): Change 0 to VOIDmode in function call.
1420         * reload1.c (reload): Change 0 to VOIDmode in function call.
1421         (eliminate_regs_1, elimination_effects): Likewise.
1422         (eliminate_regs_in_insn): Likewise.
1423         (emit_input_reload_insns): Add cast to enum type.
1424         (delete_output_reload): Change 0 to VOIDmode in function call.
1425         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
1426         to enum type in function call.
1427         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
1428         (SET_PREDICT_EXPR_OUTCOME): Define.
1429         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
1430         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
1431         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
1432         (dump_function): Likewise.
1433         * tree-dump.h: Update declarations.
1434         * tree-pass.h: Update declarations.
1435         * varasm.c (assemble_integer): Change mclass to enum mode_class.
1436         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
1437         enum type.
1438         (arm_rtx_costs_1): Correct parenthesization.
1439         (arm_rtx_costs): Add casts to enum type.
1440         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
1441         (vfp_emit_fstmd): Use add_rg_note.
1442         (emit_multi_reg_push, emit_sfm): Likewise.
1443         (thumb_set_frame_pointer): Likewise.
1444         (arm_expand_prologue): Likewise.
1445         (arm_regno_class): Change return type to enum reg_class.
1446         (thumb1_expand_prologue): Use add_reg_note.
1447         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
1448         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
1449         in function call.
1450         * config/arm/gentune.sh: Add cast to enum type.
1451         * config/arm/arm-tune.md: Rebuild.
1452         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
1453         (ix86_split_fp_branch, predict_jump): Likewise.
1454         (ix86_expand_multi_arg_builtin): Change sub_code from enum
1455         insn_code to enum rtx_code.
1456         (ix86_builtin_vectorized_function): Add cast to enum type.
1457         * config/i386/i386.md (truncdfsf2): Change slot to enum
1458         ix86_stack_slot.
1459         (truncxf<mode>2, isinf<mode>2): Likewise.
1460         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
1461         enum type.
1462         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
1463         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
1464         (insert_bundle_state): Change 1 to INSERT in function call.
1465         (ia64_add_bundle_selector_before): Likewise.
1466         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
1467         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
1468         (restore_stack_nonlocal): Likewise.
1469         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
1470         function call.
1471         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
1472         function call.
1473         (mips_rtx_costs): Likewise.
1474         (mips_override_options): Add casts to enum type.
1475         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
1476         in function call.
1477         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
1478         (store_reg, set_reg_plus_d): Likewise.
1479         (hppa_expand_prologue, hppa_profile_hook): Likewise.
1480         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1481         cast to enum type.
1482         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
1483         function call.
1484         (emit_unlikely_jump): Use add_reg_note.
1485         (rs6000_emit_allocate_stack): Likewise.
1486         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
1487         (output_toc): Change 1 to INSERT in function call.
1488         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
1489         (rs6000_initialize_trampoline): Likewise.
1490         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
1491         function call.
1492         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
1493         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
1494         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
1495         (save_gprs): Use add_reg_note.
1496         (s390_emit_prologue): Likewise.
1497         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
1498         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
1499         (sparc_fold_builtin): Add cast to enum type.
1500         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
1501         enum insn_code.
1502         (spu_expand_prologue): Use add_reg_note.
1503         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
1504
1505 2009-04-20  Ian Lance Taylor  <iant@google.com>
1506
1507         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
1508         (c_parser_postfix_expression_after_primary): Get VEC for list of
1509         arguments.  Get original types of arguments.  Call
1510         build_function_call_vec.
1511         (cached_expr_list_1, cached_expr_list_2): New static variables.
1512         (c_parser_expr_list): Change return type to VEC *.  Add
1513         p_orig_types parameter.  Change all callers.
1514         (c_parser_release_expr): New static function.
1515         (c_parser_vec_to_tree_list): New static function.
1516         * c-typeck.c (build_function_call): Rewrite to build a VEC and
1517         call build_function_call_vec.
1518         (build_function_call_vec): New function, based on old
1519         build_function_call.
1520         (convert_arguments): Remove nargs and argarray parameters.  Change
1521         values to a VEC.  Add origtypes parameter.
1522         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
1523         (convert_for_assignment): Add origtype parameter.  Change all
1524         callers.  If warn_cxx_compat, check for conversion to an enum
1525         type when calling a function.
1526         (store_init_value): Add origtype parameter.  Change all callers.
1527         (digest_init): Likewise.
1528         (struct init_node): Add origtype field.
1529         (add_pending_init): Add origtype parameter.  Change all callers.
1530         (output_init_element): Likewise.
1531         (output_pending_init_elements): Pass origtype from init_node to
1532         output_init_element.
1533         (process_init_element): Pass origtype from c_expr to
1534         output_init_element.
1535         (c_finish_return): Add origtype parameter.  Change all callers.
1536         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
1537         caller.
1538         (sync_resolve_params): Likewise.
1539         (sync_resolve_return): Change params to first_param.  Change caller.
1540         (resolve_overloaded_builtins): Change params to VEC *.  Change
1541         callers.  Save first parameter around call to build_function_call_vec.
1542         * c-decl.c (finish_decl): Add origtype parameter.  Change all
1543         callers.  Call build_function_call_vec rather than
1544         build_function_call for cleanup.
1545         * c-tree.h: Update declarations.
1546         * c-common.h: Update declarations.
1547         * stub-objc.c (objc_rewrite_function_call): Change parameter from
1548         params to first_param.
1549         * target.h (struct gcc_target): Change resolve_overloaded_builtin
1550         params parameter from tree to void *.
1551         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1552         Change arglist parameter to have type void *, and to be a pointer
1553         to a VEC.
1554         * config/rs6000/rs6000-protos.h
1555         (altivec_resolve_overloaded_builtin): Update declaration.
1556         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
1557         fnargs parameter to have type void *, and to be a pointer to a
1558         VEC.  Call build_function_call_vec instead of
1559         build_function_call.
1560         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
1561
1562 2009-04-20  Joey Ye  <joey.ye@intel.com>
1563             Xuepeng Guo <xuepeng.guo@intel.com>
1564             H.J. Lu  <hongjiu.lu@intel.com>
1565
1566         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
1567
1568         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
1569         (IX86_LEA_PRIORITY): Likewise.
1570         (distance_non_agu_define): New function.
1571         (distance_agu_use): Likewise.
1572         (ix86_lea_for_add_ok): Likewise.
1573         (ix86_dep_by_shift_count): Likewise.
1574
1575         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
1576         should split for LEA.
1577
1578         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
1579         function.
1580         (ix86_dep_by_shift_count): Likewise.
1581
1582 2009-04-20  Richard Guenther  <rguenther@suse.de>
1583
1584         * expr.c (handled_component_p): Move ...
1585         * tree.h (handled_component_p): ... here.
1586         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
1587         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
1588         and REALPART_EXPR to be in one group.
1589
1590 2009-04-20  Richard Guenther  <rguenther@suse.de>
1591
1592         * basic-block.h (get_all_dominated_blocks): Declare.
1593         * dominance.c (get_all_dominated_blocks): New function.
1594         * tree-cfg.c (get_all_dominated_blocks): Remove.
1595         (remove_edge_and_dominated_blocks): Adjust.
1596         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
1597         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
1598         instead of recursing.
1599
1600 2009-04-20  Doug Kwan  <dougkwan@google.com>
1601
1602         * cgraph.h (cgraph_node_ptr): New type for vector functions.
1603         (struct cgraph_node_set_def): New type.
1604         (cgraph_node_set) New type. Also declare vector functions.
1605         (struct cgraph_node_set_element_def): New type.
1606         (cgraph_node_set_element): Ditto.
1607         (cgraph_node_set_iterator): New iterator type.
1608         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
1609         cgraph_node_set_remove, dump_cgraph_node_set,
1610         debug_cgraph_node_set): New prototypes.
1611         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
1612         cgraph_node_set_size): New inlines.
1613         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
1614         including cgraph.h.
1615         (struct ipa_opt_pass): Add struct cgraph_node_set_def
1616         argument to function 'write_summary'.
1617         * ipa.c: Include ggc.h.
1618         (hash_cgraph_node_set_element,
1619         eq_cgraph_node_set_element, cgraph_node_set_new,
1620         cgraph_node_set_add, cgraph_node_set_remove,
1621         cgraph_node_set_find, dump_cgraph_node_set,
1622         debug_cgraph_node_set): New functions.
1623         * Makefile.in (ipa.o): Add dependency on GGC_H.
1624
1625 2009-04-20  Ira Rosen  <irar@il.ibm.com>
1626
1627         PR tree-optimization/39675
1628         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
1629         check of the return code of vect_schedule_slp. Check that
1630         stmt_vec_info still exists for the statement, before checking its
1631         vectorization type.
1632
1633 2009-04-20  Michael Matz  <matz@suse.de>
1634
1635         * Makefile.in (generated_files): Take out $(simple_generated_c).
1636
1637 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
1638
1639         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
1640         (UINTPTR_TYPE):  Likewise.
1641
1642 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1643
1644         PR c/37481
1645         * c-typeck.c (digest_init): Check for initializing an array with a
1646         string literal.
1647
1648 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1649
1650         PR c/19771
1651         * c-semantics.c (pop_stmt_list): Propagate
1652         STATEMENT_LIST_HAS_LABEL to parent statement list.
1653
1654 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
1655
1656         * config/mips/mips.h (mips_tune_attr): New macro.
1657         * config/mips/mips.md (cpu): Use it.
1658
1659 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
1660
1661         PR c/38243
1662         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
1663         declaring a tag.
1664
1665 2009-04-19  Diego Novillo  <dnovillo@google.com>
1666
1667         * toplev.c (compile_file): Move call to coverage_finish ...
1668         * cgraphunit.c (ipa_passes): ... here.
1669         Call cgraph_process_new_functions.
1670         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
1671         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
1672
1673 2009-04-19  Jan Hubicka  <jh@suse.cz>
1674
1675         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
1676         cfun.
1677         (dump_cgraph_node): Dump can throw external flag.
1678         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
1679
1680 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1681
1682         PR c/32061
1683         PR c++/36954
1684         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
1685         * common.opt (Wlogical-op): Move from here...
1686         * c.opt (Wlogical-op): ... to here.
1687         * c-typeck.c (parser_build_binary_op): Update call to
1688         warn_logical_operator.
1689         * c-opts.c (c_common_post_options): Enable warn_logical_op with
1690         extra_warnings.
1691         * c-common.c (warn_logical_op): Update.
1692         * c-common.h (warn_logical_op): Update declaration.
1693
1694 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1695
1696         * tree.c (protected_set_expr_location): Fix formatting.
1697
1698 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1699
1700         PR c/27676
1701         * c-typeck.c (readonly_warning): new.
1702         (build_unary_op, build_modify_expr): Use readonly_warning for
1703         storing into something readonly but not const-qualified.
1704
1705 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1706
1707         PR c/22367
1708         * c-typeck.c (build_unary_op): Check for taking address of
1709         expression of type void.
1710
1711 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
1712
1713         PR c/35210
1714         * c-typeck.c (build_function_call): Check for calling a function
1715         with qualified void return types.  Call require_complete_type when
1716         generating a trap.
1717
1718 2009-04-18  Jan Hubicka  <jh@suse.cz>
1719
1720         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
1721         Set nothrow flag.
1722         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
1723         can_throw_external flag.
1724         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
1725         * ipa-pure-const.c (ignore_edge): New function.
1726         (propagate): Compute order for NOTHROW computation; set NOTHROWs
1727         only over can_throw_external edges.
1728         (local_pure_const): Add nothrow flag.
1729         * ipa-utils.c (searchc): Add ignore_edge callback.
1730         (ipa_utils_reduced_inorder): Add ignore_edge callback.
1731         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
1732         (set_nothrow_function_flags): Update cgraph.
1733         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
1734
1735 2009-04-18  Richard Guenther  <rguenther@suse.de>
1736
1737         PR middle-end/39804
1738         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
1739         (fold_stmt): ... this and ...
1740         (fold_stmt_inplace): ... this.
1741         (fold_stmt_1): Fold references in calls and asms.
1742         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
1743
1744 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1745
1746         * tree-vrp.c (ssa_name_nonzero_p): Remove.
1747         * tree.h: Remove the prototype for ssa_name_nonzero_p.
1748
1749 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1750
1751         * tree.c (function_args_count): Remove.
1752         * tree.h: Remove the prototype for function_args_count.
1753
1754 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1755
1756         * tree-iterator.c (expr_only): Remove.
1757         * tree.h: Remove the prototype for expr_only.
1758
1759 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1760
1761         * reginfo.c (cannot_change_mode_set_regs): Remove.
1762         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
1763
1764 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
1765
1766         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
1767         whether operands 0 and 1 overlaps.
1768
1769 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1770
1771         PR middle-end/36902
1772         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
1773         pointer. Use warning_at instead of warning.
1774         (search_for_addr_array): Likewise.
1775         (check_array_bounds): Likewise.
1776         (check_all_array_refs): Check that the incoming edge is not in the
1777         list of edges to be removed.
1778         (check_all_array_refs): Avoid the temporal pointer.
1779         (vrp_visit_cond_stmt): Fix typo.
1780         (simplify_switch_using_ranges): Handle the case where the switch
1781         index is an integer constant.
1782
1783 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
1784
1785         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
1786
1787 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
1788
1789         * doc/extend.texi, doc/invoke.texi: Fix typos.
1790
1791 2009-04-17  Cary Coutant  <ccoutant@google.com>
1792
1793         * tree-flow-inline.h (get_lineno): Fix inverted test.
1794
1795 2009-04-17  Diego Novillo  <dnovillo@google.com>
1796
1797         * tree-ssa-pre.c (create_expression_by_pieces): Remove
1798         assertion for AVAIL_OUT.
1799
1800 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
1801
1802         PR target/38627
1803         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
1804         * config/sh/linux-atomic.asm: Likewise.
1805
1806 2009-04-17  Diego Novillo  <dnovillo@google.com>
1807
1808         * except.c (debug_eh_tree): New.
1809         (struct eh_region, struct eh_status): Move ...
1810         * except.h: ... here.
1811         (add_type_for_runtime): Declare extern.
1812         (lookup_type_for_runtime): Likewise.
1813         (debug_eh_tree): Declare.
1814         * Makefile.in (GTFILES): List except.h before except.c
1815
1816 2009-04-17  Diego Novillo  <dnovillo@google.com>
1817
1818         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
1819         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
1820         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
1821         (find_vars_r): ... here.
1822         * tree-flow.h (find_referenced_vars_in): Declare.
1823         * tree-ssa-pre.c (create_expression_by_pieces): Assert
1824         that AVAIL_OUT exists for BLOCK.
1825         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
1826         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
1827         (tree-parloops.o): Likewise.
1828
1829 2009-04-17  Simon Baldwin  <simonb@google.com>
1830
1831         * toplev.c (default_tree_printer): Add handling for %E format.
1832
1833 2009-04-17  Diego Novillo  <dnovillo@google.com>
1834
1835         * tree-pretty-print.c (dump_generic_node): Add break after
1836         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
1837         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
1838         FUNCTION_TYPE together.  Call print_struct_decl when printing
1839         structures and TDF_SLIM is not given.
1840         (print_struct_decl): Fix logic for detecting recursion.
1841
1842 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1843
1844         PR 31567
1845         * gcc.c (create_at_file): New.
1846         (compile_input_file_p): New.
1847         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
1848         * main.c (main): Update call to toplev_main.
1849         * toplev.c (toplev_main): Change signature. Call expandargv.
1850         * toplev.h (toplev_main): Change signature.
1851
1852 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1853
1854         * dwarf2out.c (field_byte_offset): Use the type size as the field size
1855         if the latter is not constant.
1856
1857 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
1858
1859         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
1860
1861 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
1862
1863         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
1864         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
1865
1866 2009-04-17  Richard Guenther  <rguenther@suse.de>
1867
1868         * tree-ssa-structalias.c (get_constraint_for_component_ref):
1869         Handle component references view-converting an invariant address.
1870
1871 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
1872
1873         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
1874         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
1875         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
1876         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
1877         Use @deftypevr rather than @deftypevar.
1878
1879 2009-04-17  Richard Guenther  <rguenther@suse.de>
1880
1881         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
1882         (get_prop_source_stmt): Likewise.
1883         (can_propagate_from): Likewise.
1884
1885 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
1886
1887         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
1888         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
1889         (--with-multilib-list): Add default value.
1890         * configure: Regenerate.
1891         * Makefile.in (TM_ENDIAN_CONFIG): Define.
1892         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
1893         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
1894         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
1895         Don't add default cpu to multilib list unnecessarily, but do enable
1896         the relevant compiler option..
1897         Add support for --with-multilib-list=<blank> and
1898         --with-multilib-list=!<somelib> to supress unwanted multilibs.
1899         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
1900         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
1901         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
1902         TM_MULTILIB_CONFIG.
1903         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
1904         (MULTILIB_OSDIRNAMES): New variable.
1905         * config/sh/t-1e: Delete file.
1906         * config/sh/t-mlib-sh1: Delete file.
1907         * config/sh/t-mlib-sh2: Delete file.
1908         * config/sh/t-mlib-sh2a: Delete file.
1909         * config/sh/t-mlib-sh2a-nofpu: Delete file.
1910         * config/sh/t-mlib-sh2a-single: Delete file.
1911         * config/sh/t-mlib-sh2a-single-only: Delete file.
1912         * config/sh/t-mlib-sh2e: Delete file.
1913         * config/sh/t-mlib-sh3e: Delete file.
1914         * config/sh/t-mlib-sh4: Delete file.
1915         * config/sh/t-mlib-sh4-nofpu: Delete file.
1916         * config/sh/t-mlib-sh4-single: Delete file.
1917         * config/sh/t-mlib-sh4-single-only: Delete file.
1918         * config/sh/t-mlib-sh4a: Delete file.
1919         * config/sh/t-mlib-sh4a-nofpu: Delete file.
1920         * config/sh/t-mlib-sh4a-single: Delete file.
1921         * config/sh/t-mlib-sh4a-single-only: Delete file.
1922         * config/sh/t-mlib-sh4al: Delete file.
1923         * config/sh/t-mlib-sh5-32media: Delete file.
1924         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
1925         * config/sh/t-mlib-sh5-64media: Delete file.
1926         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
1927         * config/sh/t-mlib-sh5-compact: Delete file.
1928         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
1929         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
1930         * doc/install.texi (Options specification): Add
1931         --with-multilib-list and --with-endian.
1932
1933 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
1934
1935         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
1936         REVISION_c.
1937         (OBJS-common): Add plugin-version.o.
1938         (plugin-version.o): New.
1939         * gcc-plugin.h (plugin_gcc_version): New.
1940         (plugin_default_version_check): New.
1941         (plugin_init_func, plugin_init): Add version argument.
1942         * plugin-version.c: New.
1943         * plugin.c (str_plugin_gcc_version_name): New.
1944         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
1945         pass it to the init function.
1946         (plugin_default_version_check): New.
1947
1948 2009-04-17  Richard Guenther  <rguenther@suse.de>
1949
1950         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
1951         for decl-vs-decl disambiguation.
1952
1953 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1954
1955         * config/s390/s390.h (s390_tune_attr): New macro definition.
1956         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
1957
1958 2009-04-17  Richard Guenther  <rguenther@suse.de>
1959
1960         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
1961         (fold_stmt_r): Likewise.
1962         (maybe_fold_reference): New function.
1963         (fold_gimple_assign): Handle cases fold_stmt_r did.
1964         (fold_stmt): Do not use fold_stmt_r.
1965         (fold_stmt_inplace): Likewise.
1966
1967 2009-04-17  Richard Guenther  <rguenther@suse.de>
1968
1969         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
1970         (record_equivalences_from_stmt): Remove useless checks and
1971         simplifications.
1972         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
1973         the type is already suitable.
1974
1975 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
1976
1977         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
1978
1979 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
1980
1981         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
1982         (CMPtype): Define as __gcc_CMPtype.
1983
1984 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
1985
1986         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
1987         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
1988
1989 2009-04-17  Richard Guenther  <rguenther@suse.de>
1990
1991         PR tree-optimization/39746
1992         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
1993         special-casing for builtins and static variable use/def.
1994         (call_may_clobber_ref_p_1): Likewise.
1995
1996 2009-04-16  Ian Lance Taylor  <iant@google.com>
1997
1998         * df.h: Include "timevar.h".
1999         (struct df_problem): Change tv_id field to timevar_id_t.
2000         * tree-pass.h: Include "timevar.h".
2001         (struct opt_pass): Change tv_id field to timevar_id_t.
2002         * timevar.h (timevar_id_t): Define TV_NONE.
2003         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
2004         TV_NONE rather than tv_id != 0.
2005         (execute_one_pass): Likewise.
2006         * Makefile.in (DF_H): Add $(TIMEVAR_H).
2007         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
2008         dependencies to $(TREE_PASS_H).
2009         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
2010         to TV_NONE.
2011         (pass_branch_target_load_optimize2): Likewise.
2012         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
2013         (pass_outof_cfg_layout_mode): Likewise.
2014         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
2015         (pass_rebuild_cgraph_edges): Likewise.
2016         (pass_remove_cgraph_callee_edges): Likewise.
2017         * df-core.c (pass_df_initialize_opt): Likewise.
2018         (pass_df_initialize_no_opt): Likewise.
2019         (pass_df_finish): Likewise.
2020         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
2021         * except.c (pass_set_nothrow_function_flags): Likewise.
2022         (pass_convert_to_eh_region_ranges): Likewise.
2023         * final.c (pass_compute_alignments): Likewise.
2024         * function.c (pass_instantiate_virtual_regs): Likewise.
2025         (pass_init_function): Likewise.
2026         (pass_leaf_regs): Likewise.
2027         (pass_match_asm_constraints): Likewise.
2028         * gimple-low.c (pass_lower_cf): Likewise.
2029         (pass_mark_used_blocks): Likewise.
2030         * init-regs.c (pass_initialize_regs): Likewise.
2031         * integrate.c (pass_initial_value_sets): Likewise.
2032         * ira.c (pass_ira): Likewise.
2033         * jump.c (pass_cleanup_barriers): Likewise.
2034         * omp-low.c (pass_expand_omp): Likewise.
2035         (pass_lower_omp): Likewise.
2036         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
2037         * recog.c (pass_split_all_insns): Likewise.
2038         (pass_split_after_reload): Likewise.
2039         (pass_split_before_regstack): Likewise.
2040         (pass_split_before_sched2): Likewise.
2041         (pass_split_for_shorten_branches): Likewise.
2042         * reginfo.c (pass_reginfo_init): Likewise.
2043         (pass_subregs_of_mode_init): Likewise.
2044         (pass_subregs_of_mode_finish): Likewise.
2045         * passes.c (pass_postreload): Likewise.
2046         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
2047         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
2048         (pass_warn_function_return): Likewise.
2049         (pass_warn_function_noreturn): Likewise.
2050         * tree-complex.c (pass_lower_complex): Likewise.
2051         (pass_lower_complex_O0): Likewise.
2052         * tree-if-conv.c (pass_if_conversion): Likewise.
2053         * tree-into-ssa.c (pass_build_ssa): Likewise.
2054         * tree-mudflap.c (pass_mudflap_1): Likewise.
2055         (pass_mudflap_2): Likewise.
2056         * tree-nomudflap.c (pass_mudflap_1): Likewise.
2057         (pass_mudflap_2): Likewise.
2058         * tree-nrv.c (pass_return_slot): Likewise.
2059         * tree-object-size.c (pass_object_sizes): Likewise.
2060         * tree-optimize.c (pass_all_optimizations): Likewise.
2061         (pass_early_local_passes): Likewise.
2062         (pass_all_early_optimizations): Likewise.
2063         (pass_cleanup_cfg): Likewise.
2064         (pass_cleanup_cfg_post_optimizing): Likewise.
2065         (pass_free_datastructures): Likewise.
2066         (pass_free_cfg_annotations): Likewise.
2067         (pass_fixup_cfg): Likewise.
2068         (pass_init_datastructures): Likewise.
2069         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
2070         (pass_late_warn_uninitialized): Likewise.
2071         (pass_update_address_taken): Likewise.
2072         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
2073         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
2074         (pass_cse_sincos): Likewise.
2075         (pass_convert_to_rsqrt): Likewise.
2076         * tree-ssa-structalias.c (pass_build_alias): Likewise.
2077         * tree-stdarg.c (pass_stdarg): Likewise.
2078         * tree-tailcall.c (pass_tail_recursion): Likewise.
2079         (pass_tail_calls): Likewise.
2080         * tree-vect-generic.c (pass_lower_vector): Likewise.
2081         (pass_lower_vector_ssa): Likewise.
2082         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
2083
2084 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
2085
2086         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
2087         XLR entry.
2088         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
2089         Handle -march=xlr.
2090         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
2091         logical and signext.
2092
2093 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
2094
2095         PR target/39767
2096         * config/sh/predicates.md (arith_operand): Check if the operand
2097         of TRUNCATE is a REG.
2098
2099 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2100
2101         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
2102         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
2103
2104 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2105
2106         * tree-iterator.c (tsi_split_statement_list_after,
2107         tsi_split_statement_list_before): Remove.
2108         * tree-iterator.h: Remove the prototypes for
2109         tsi_split_statement_list_after and tsi_split_statement_list_before.
2110
2111 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2112
2113         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
2114         * tree-ssa-propagate.h: Remove the prototype for
2115         stmt_makes_single_load.
2116
2117 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2118
2119         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
2120         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
2121
2122 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2123
2124         * tree-iterator.c (EXPR_LAST_BODY): Remove.
2125
2126 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2127
2128         * except.c (eh_region_outer_p): Remove.
2129         * except.h: Remove the prototype for eh_region_outer_p.
2130
2131 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
2132
2133         * function.c (current_function_assembler_name): Remove.
2134         * function.h: Remove the prototype for
2135         current_function_assembler_name.
2136
2137 2009-04-16  Ian Lance Taylor  <iant@google.com>
2138
2139         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
2140         (add_reg_note): Call alloc_reg_note.
2141         * rtl.h (alloc_reg_note): Declare.
2142         * combine.c (try_combine): Use alloc_reg_note.
2143         (recog_for_combine, move_deaths): Likewise.
2144         (distribute_notes): Use alloc_reg_note and add_reg_note.
2145         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
2146         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
2147         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
2148
2149 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
2150
2151         PR rtl-optimization/39762
2152         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
2153         ira_may_move_out_cost): Add comments about way of their usage.
2154         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
2155
2156         * ira-conflicts.c (process_regs_for_copy): Use function
2157         ira_get_register_move_cost instead of global
2158         ira_register_move_cost.
2159
2160         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
2161         color_pass, move_spill_restore, update_curr_costs): Ditto.
2162
2163         * ira-lives.c (process_single_reg_class_operands): Ditto.
2164
2165         * ira-emit.c (emit_move_list): Ditto.
2166
2167         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
2168         (record_reg_classes): Ditto.  Use functions
2169         ira_get_register_move_cost and ira_get_may_move_cost instead of
2170         global vars ira_register_move_cost, ira_may_move_out_cost and
2171         ira_may_move_in_cost.
2172         (record_address_regs): Don't call ira_init_register_move_cost.
2173         Use function ira_get_may_move_cost instead of global
2174         ira_may_move_in_cost.
2175         (process_bb_node_for_hard_reg_moves): Use function
2176         ira_get_register_move_cost instead of global ira_register_move_cost.
2177         (ira_costs): Don't call ira_init_register_move_cost.
2178
2179 2009-04-16  Richard Guenther  <rguenther@suse.de>
2180
2181         * tree-cfg.c (verify_gimple_assign_binary):
2182         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
2183         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
2184         (create_general_new_stmt): Note that this function is broken.
2185
2186 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2187
2188         * common.opt (fhelp): Add Var(help_flag).
2189         * gcc-plugin.h (plugin_info): Add help.
2190         * plugin.c (plugin_name_args): Add help.
2191         (register_plugin_info): Set plugin->help.
2192         (print_help_one_plugin): New.
2193         (print_plugins_help): New.
2194         * plugin.h (print_plugins_help): New.
2195         * toplev.c (toplev_main): Call print_plugins_help if needed.
2196
2197 2009-04-16  Richard Guenther  <rguenther@suse.de>
2198
2199         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
2200         (gimple_ior_addresses_taken_1): New function.
2201         (gimple_ior_addresses_taken): Likewise.
2202         * gimple.h (struct gimple_statement_with_ops_base): Remove
2203         addresses_taken member.
2204         (gimple_ior_addresses_taken): Declare.
2205         (gimple_addresses_taken, gimple_addresses_taken_ptr,
2206         gimple_set_addresses_taken): Remove.
2207         * ipa-reference.c (mark_address): New function.
2208         (scan_stmt_for_static_refs): Use it for marking addresses taken.
2209         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
2210         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
2211         (gimple_add_to_addresses_taken): Remove.
2212         (get_tmr_operands): Call mark_address_taken.
2213         (get_asm_expr_operands): Likewise.
2214         (get_expr_operands): Likewise.
2215         (build_ssa_operands): Do not clear the addresses_taken bitmap.
2216         (free_stmt_operands): Do not free it.
2217         * tree-ssa.c (delete_tree_ssa): Likewise.
2218         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
2219
2220 2009-04-16  Richard Guenther  <rguenther@suse.de>
2221
2222         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
2223         (walk_stmt_load_store_ops): Likewise.
2224         * gimple.c (get_base_loadstore): New function.
2225         (walk_stmt_load_store_addr_ops): Likewise.
2226         (walk_stmt_load_store_ops): Likewise.
2227         * ipa-pure-const.c (check_op): Simplify.
2228         (check_load, check_store): New functions.
2229         (check_stmt): Use walk_stmt_load_store_ops.
2230         * ipa-reference.c (mark_load): Adjust signature.
2231         (mark_store): Likewise.
2232         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
2233
2234 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2235
2236         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
2237         (plugin_info): New.
2238         * opts.c (common_handle_option): Don't call print_version.
2239         * plugin.c (plugin_name_args): Add version.
2240         (register_plugin_info): New.
2241         (register_callback): Handle PLUGIN_INFO.
2242         (try_init_one_plugin): New.
2243         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
2244         if failed to init.
2245         (finalize_one_plugin): New.
2246         (finalize_plugins): New.
2247         (print_one_plugin): New.
2248         (print_plugins_versions): New.
2249         * plugin.h (print_plugins_versions): New.
2250         (finalize_plugins): New.
2251         * toplev.c (compile_file): Don't call initialize_plugins.
2252         (print_version): Call print_plugins_versions.
2253         (toplev_main): Call initialize_plugins. Print version if needed.
2254         Call finalize_plugins.
2255
2256 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
2257
2258         * common.opt (fversion): New.
2259         * gcc.c (print_version): New.
2260         (process_command): Don't print the version. Just set print_version.
2261         (main): Print version. Call subprocesses if print_version and
2262         verbose_flag are set.
2263         * opts.c (common_handle_option): Handle OPT_fversion.
2264
2265 2009-04-16  Richard Guenther  <rguenther@suse.de>
2266             Ira Rosen  <irar@il.ibm.com>
2267
2268         PR tree-optimization/39698
2269         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
2270         type of the reduction variable.  Only generate the def if
2271         it is needed.
2272
2273         * omp-low.c (expand_omp_for_generic): When converting to a pointer
2274         make sure to first convert to an integer of the same precision.
2275         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
2276         the type of the evolution correctly in computing the new
2277         induction variable base.
2278
2279 2009-04-16  Richard Guenther  <rguenther@suse.de>
2280
2281         PR middle-end/39625
2282         * tree-cfg.c (make_blocks): Split statements with to-be
2283         abnormal SSA names on the lhs.
2284
2285 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
2286
2287         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
2288         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
2289         * c-typeck.c (really_start_incremental_init): Likewise.
2290         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
2291         (TARGET_INITIALIZER): Remove it.
2292         * target.h (struct target): Remove vector_opaque_p.
2293         * tree.c (build_opaque_vector_type): New.
2294         * tree.h (TYPE_VECTOR_OPAQUE): New.
2295         (build_opaque_vector_type): Declare.
2296         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
2297         * config/rs6000/rs6000.c (build_opaque_vector_type,
2298         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
2299         (rs6000_init_builtins): Use build_opaque_vector_type for
2300         opaque_V4SI_type_node.
2301
2302 2009-04-15  Catherine Moore  <clm@codesourcery.com>
2303
2304         * debug.h (set_name):  Declare.
2305         * dwarf2out.c (dwarf2out_set_name): Declare.
2306         (dwarf2_debug_hooks): Add set_name.
2307         (find_AT_string): New.
2308         (add_AT_string): Call find_AT_string.
2309         (dwarf2out_set_name): New.
2310         * cp/decl.c (grokdeclarator): Call set_name.
2311         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
2312         * debug.c (do_nothing_debug_hooks):  Likewise.
2313         * dbxout.c (dbx_debug_hooks): Likewise.
2314         * sdbout.c (sdb_debug_hooks): Likewise.
2315
2316 2009-04-15  Michael Eager <eager@eagercon.com>
2317
2318         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
2319         reg for single-precision FPU.
2320         * config/rs6000/rs6000.md (movsi_internal1): Only for
2321         !TARGET_SINGLE_FPU.
2322         (movsi_internal1_single): New. Add pattern to move SI values to/from
2323         single-precision FP regs.
2324
2325 2009-04-15  Richard Guenther  <rguenther@suse.de>
2326
2327         * omp-low.c (lower_rec_input_clauses): Build correct address
2328         expressions.
2329         (expand_omp_for_generic): Fix multiplication type.
2330         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
2331         (generate_memset_zero): Fix types.
2332         * tree-profile.c (prepare_instrumented_value): Correctly
2333         widen a pointer.
2334
2335 2009-04-15  Ian Lance Taylor  <iant@google.com>
2336
2337         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
2338         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
2339         for -Wall and for -Wc++-compat.
2340         (c_common_post_options): For C++, set warn_enum_compare if not
2341         already set.
2342         * c-tree.h (struct c_expr): Add field original_type.
2343         (build_external_ref): Update declaration.
2344         * c-parser.c (c_parser_braced_init): Set original_type.
2345         (c_parser_initelt): Likewise.
2346         (c_parser_expr_no_commas): Likewise.
2347         (c_parser_conditional_expression): Likewise.
2348         (c_parser_cast_expression): Likewise.
2349         (c_parser_unary_expression): Likewise.  Pull setting of
2350         original_code to top of function.
2351         (c_parser_sizeof_expression): Set original_type.
2352         (c_parser_alignof_expression): Likewise.
2353         (c_parser_postfix_expression): Likewise.  Pull setting of
2354         original_code to top of function.
2355         (c_parser_postfix_expression_after_paren_type): Set original_type.
2356         (c_parser_postfix_expression_after_primary): Likewise.
2357         (c_parser_expression): Likewise.
2358         * c-typeck.c (build_external_ref): Add type parameter.  Change all
2359         callers.
2360         (c_expr_sizeof_expr): Set original_type field.
2361         (parser_build_unary_op): Likewise.
2362         (parser_build_binary_op): Likewise.  Optionally warn about
2363         comparisons of enums of different types.
2364         (digest_init): Set original_type field.
2365         (really_start_incremental_init): Likewise.
2366         (push_init_level, pop_init_level): Likewise.
2367         * doc/invoke.texi (Warning Options): -Wenum-compare now
2368         supported in C.
2369
2370 2009-04-15  Richard Guenther  <rguenther@suse.de>
2371
2372         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
2373         out a necessary conversion.
2374         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
2375         names we didn't value number.
2376         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
2377
2378 2009-04-15  Richard Guenther  <rguenther@suse.de>
2379
2380         PR tree-optimization/39764
2381         * tree-ssa-ccp.c (get_value): Canonicalize value with
2382         canonicalize_float_value.
2383
2384 2009-04-15  Jan Hubicka  <jh@suse.cz>
2385
2386         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
2387         Wrong version of patch.
2388
2389 2009-04-15  Jan Hubicka  <jh@suse.cz>
2390
2391         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
2392
2393 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
2394
2395         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
2396         our distinct integral and vector types.
2397
2398 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
2399
2400         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
2401         * init.c (build_vtbl_address): Remove call to assemble_external.
2402
2403 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
2404
2405         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
2406         output for other floating point modes.
2407
2408 2009-04-14  Diego Novillo  <dnovillo@google.com>
2409
2410         * diagnostic.c (diagnostic_report_diagnostic): Do not
2411         warn about loaded plugins for DK_ERROR and DK_WARNING.
2412         * c-decl.c (declspecs_add_type): Move call to
2413         invoke_plugin_callbacks ...
2414         * c-parser.c (c_parser_declspecs): ... here.
2415         * plugin.c (dump_active_plugins): Tidy output.
2416
2417 2009-04-14  Diego Novillo  <dnovillo@google.com>
2418             Le-Chun Wu  <lcwu@google.com>
2419
2420         * configure.ac: Add --enable-plugin support.
2421         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
2422         * Makefile.in (PLUGIN_H): Define.
2423         Export ENABLE_PLUGIN and GMPINC to site.exp.
2424         Add PLUGINLIBS to link command.
2425         Add/modify dependencies for plugin.o and files including plugin.h.
2426         (plugin.o): New.
2427         * config.in: Regenerate.
2428
2429         * opts.c (common_handle_option): Handle OPT_fplugin_ and
2430         OPT_fplugin_arg_.
2431
2432 2009-04-14  Le-Chun Wu  <lcwu@google.com>
2433
2434         * tree-pass.h (register_one_dump_file): Add a prototype for
2435         register_one_dump_file.
2436         * toplev.c (compile_file): Call initialize_plugins.
2437         (do_compile): Call invoke_plugin_callbacks.
2438         (toplev_main): Call invoke_plugin_callbacks.
2439         * common.opt: Add -fplugin= and -fplugin-arg-.
2440         * gcc-plugin.h: New public header file for plugins to include.
2441         * plugin.c: New source file.
2442         * plugin.h: New internal header file.
2443         * passes.c (register_one_dump_file): Make it external.
2444
2445         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
2446
2447 2009-04-14  Diego Novillo  <dnovillo@google.com>
2448
2449         * doc/plugins.texi: New.
2450         * doc/gccint.texi: Add reference to Plugins chapter.
2451         * doc/invoke.texi: Document -fplugin and -fplugin-arg
2452         * diagnostic.c (diagnostic_report_diagnostic): Warn about
2453         loaded plugins, if any.
2454         * timevar.def (TV_PLUGIN_INIT): Define.
2455         (TV_PLUGIN_RUN): Define.
2456         * plugin.c: Include timevar.h
2457         (plugins_active_p): New.
2458         (dump_active_plugins): New.
2459         (debug_active_plugins): New.
2460
2461 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
2462
2463         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
2464         library paths.
2465         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
2466
2467 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
2468
2469         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
2470         the same as a minus without a shift.
2471
2472 2009-04-14  Nick Clifton  <nickc@redhat.com>
2473
2474         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
2475         comparisons with small integers will always produce a short
2476         branch.
2477
2478 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
2479
2480         Merge:
2481         2008-12-19  Diego Novillo  <dnovillo@google.com>
2482
2483         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
2484
2485 2009-04-14  Richard Guenther  <rguenther@suse.de>
2486
2487         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
2488         verification.
2489         (verify_gimple_assign_binary): Likewise.  Handle shifts and
2490         rotates correctly.
2491         (verify_gimple_phi): Print the mismatched argument position.
2492         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
2493         Fix types.
2494         (vect_update_init_of_dr): Likewise.
2495         * matrix-reorg.c (transform_access_sites): Do what the
2496         comment suggests.
2497         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
2498
2499 2009-04-13  Michael Eager <eager@eagercon.com>
2500
2501         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
2502         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
2503         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
2504         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
2505         remove duplicate config
2506
2507 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
2508
2509         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
2510         file_name:line_number type locator of the call site.
2511
2512 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
2513
2514         * genautomata.c: Put blank after comma.
2515         (automaton_decls): New.
2516         (struct unit_usage): Add comments to member next.
2517         (store_alt_unit_usage): Keep the list ordered.
2518         (unit_present_on_list_p, equal_alternatives_p): New.
2519         (check_regexp_units_distribution): Check units distribution
2520         correctness correctly.
2521         (main): Don't write automata if error is found.  Return correct
2522         exit code.
2523
2524         * config/m68k/cf.md (cfv4_ds): Remove.
2525         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
2526         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
2527
2528         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
2529         power4-load-ext, power4-store, power4-store-update,
2530         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
2531         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
2532         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
2533         power4-sqrt, power4-isync): Modify reservation to make correct
2534         unit distribution to automata.
2535
2536         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
2537         power5-store-update, power5-two, power5-three, power5-lmul,
2538         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
2539
2540 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
2541
2542         * except.c (pass_set_nothrow_function_flags): Set name and add
2543         TODO_dump_func.
2544         (set_nothrow_function_flags): Mention in the dump file when
2545         changing a function to nothrow.
2546
2547 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
2548
2549         PR/39066
2550         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
2551         instead of unsigned long.
2552
2553 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2554
2555         * config/arm/arm.c (return_used_this_function): Remove.
2556         (arm_output_function_prologue): Remove use of
2557         return_used_this_function.
2558         (output_return_instruction): Replace use of
2559         return_used_this_function
2560         by cfun->machine->return_used_this_function.
2561         (arm_output_epilogue): Likewise.
2562         (arm_output_function_epilogue): Likewise.
2563         (thumb_unexpanded_epilogue): Likewise.
2564         * config/arm/arm.h (struct machine_function):
2565         New member return_used_this_function.
2566
2567 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
2568
2569         * doc/install.texi: Correct description of default directory for
2570         --with-gxx-include-dir.
2571
2572 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2573
2574         * fold-const.c (build_range_check): Properly deal with enumeral and
2575         boolean base types.
2576
2577 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
2578
2579         * doc/invoke.texi (max_gcse_passes): Remove documentation.
2580         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
2581         * params.h (MAX_GCSE_PASSES): Remove.
2582         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
2583         in sequence.  Remove ability to run multiple passes.
2584         (bypass_jumps): Report run as third CPROP pass.
2585
2586 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
2587
2588         PR middle-end/39651
2589         * except.c (can_throw_external): Look at each insn in a SEQUENCE
2590         when deciding whether the whole SEQUENCE can throw.
2591
2592 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
2593
2594         PR target/39740
2595         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
2596         offseted label references.
2597
2598 2009-04-11  Jan Hubicka  <jh@suse.cz>
2599
2600         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
2601
2602 2009-04-11  Richard Guenther  <rguenther@suse.de>
2603
2604         PR middle-end/39732
2605         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
2606         return variables as TREE_ADDRESSABLE.
2607
2608 2009-04-11  Richard Guenther  <rguenther@suse.de>
2609
2610         PR tree-optimization/39713
2611         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
2612         reference trees have SSA_NAME operands.
2613
2614 2009-04-11  Richard Guenther  <rguenther@suse.de>
2615
2616         PR c/39712
2617         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
2618         address expressions.
2619
2620 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
2621
2622         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
2623         match changes in Cygwin 1.7
2624         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
2625         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
2626
2627 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2628
2629         PR tree-optimization/39701
2630         * doc/invoke.texi (Optimization Options): Document change in
2631         meaning and initialization of -fdelete-null-pointer-checks.
2632
2633 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2634
2635         PR middle-end/39701
2636         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
2637
2638         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
2639         here.
2640
2641         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
2642
2643 2009-04-10  Chao-ying Fu  <fu@mips.com>
2644
2645         * doc/tm.texi (Instruction Output): Document
2646         TARGET_ASM_FINAL_POSTSCAN_INSN.
2647         * target.h (final_postscan_insn): New field in asm_out.
2648         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
2649         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
2650         * final.c (final_scan_insn): Call
2651         targetm.asm_out.final_postscan_insn after outputting
2652         an asm macro and a normal instruction.
2653
2654         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
2655         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
2656         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
2657         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
2658         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
2659
2660 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
2661
2662         PR middle-end/39701
2663         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
2664         variables as non-NULL even with -fdelete-null-pointer-checks.
2665
2666 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
2667
2668         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
2669
2670 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
2671
2672         PR target/39678
2673         * config/i386/i386.c (classify_argument): Handle SCmode with
2674         (bit_offset % 64) != 0.
2675
2676 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
2677
2678         * doc/invoke.texi (Optimize Options): Add cross-reference to
2679         -Q --help=optimizers examples.
2680
2681 2009-04-10  Ben Elliston  <bje@au.ibm.com>
2682
2683         PR target/36800
2684         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
2685         regalign for the reg == fpr and TDmode case.
2686
2687 2009-04-09  David Ayers  <ayers@fsfe.org>
2688
2689         PR objc/29200
2690         * objc/objc-act.c (warn_with_method): Remove helper function.
2691         (check_duplicates): Call warning and inform directly.
2692         (really_start_method): Likewise.
2693
2694 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
2695
2696         * expmed.c (expand_divmod): Always use a comparison for a division
2697         by a large unsigned integer.
2698
2699         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
2700         for things others than variables or functions as nonzero.
2701
2702 2009-04-09  Nick Clifton  <nickc@redhat.com>
2703
2704         * unwind-compat.c: Change copyright header to refer to version
2705         3 of the GNU General Public License with version 3.1 of the
2706         GCC Runtime Library Exception and to point readers at the
2707         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
2708         * config/alpha/crtfastmath.c: Likewise.
2709         * config/alpha/linux-unwind.h: Likewise.
2710         * config/alpha/qrnnd.asm: Likewise.
2711         * config/alpha/vms-crt0-64.c: Likewise.
2712         * config/alpha/vms-crt0.c: Likewise.
2713         * config/alpha/vms-dwarf2.asm: Likewise.
2714         * config/alpha/vms-dwarf2eh.asm: Likewise.
2715         * config/alpha/vms-psxcrt0-64.c: Likewise.
2716         * config/alpha/vms-psxcrt0.c: Likewise.
2717         * config/alpha/vms_tramp.asm: Likewise.
2718         * config/arc/initfini.c: Likewise.
2719         * config/arc/lib1funcs.asm: Likewise.
2720         * config/arm/bpabi-v6m.S: Likewise.
2721         * config/arm/bpabi.S: Likewise.
2722         * config/arm/bpabi.c: Likewise.
2723         * config/arm/crti.asm: Likewise.
2724         * config/arm/crtn.asm: Likewise.
2725         * config/arm/ieee754-df.S: Likewise.
2726         * config/arm/ieee754-sf.S: Likewise.
2727         * config/arm/lib1funcs.asm: Likewise.
2728         * config/arm/libunwind.S: Likewise.
2729         * config/arm/linux-atomic.c: Likewise.
2730         * config/arm/mmintrin.h: Likewise.
2731         * config/arm/pr-support.c: Likewise.
2732         * config/arm/unaligned-funcs.c: Likewise.
2733         * config/arm/unwind-arm.c: Likewise.
2734         * config/arm/unwind-arm.h: Likewise.
2735         * config/avr/libgcc.S: Likewise.
2736         * config/bfin/crti.s: Likewise.
2737         * config/bfin/crtlibid.s: Likewise.
2738         * config/bfin/crtn.s: Likewise.
2739         * config/bfin/lib1funcs.asm: Likewise.
2740         * config/bfin/linux-unwind.h: Likewise.
2741         * config/cris/arit.c: Likewise.
2742         * config/cris/cris_abi_symbol.c: Likewise.
2743         * config/darwin-64.c: Likewise.
2744         * config/darwin-crt2.c: Likewise.
2745         * config/darwin-crt3.c: Likewise.
2746         * config/darwin.h: Likewise.
2747         * config/dbxelf.h: Likewise.
2748         * config/dfp-bit.c: Likewise.
2749         * config/dfp-bit.h: Likewise.
2750         * config/elfos.h: Likewise.
2751         * config/fixed-bit.c: Likewise.
2752         * config/fixed-bit.h: Likewise.
2753         * config/fp-bit.c: Likewise.
2754         * config/fp-bit.h: Likewise.
2755         * config/fr30/crti.asm: Likewise.
2756         * config/fr30/crtn.asm: Likewise.
2757         * config/fr30/lib1funcs.asm: Likewise.
2758         * config/freebsd-spec.h: Likewise.
2759         * config/frv/cmovd.c: Likewise.
2760         * config/frv/cmovh.c: Likewise.
2761         * config/frv/cmovw.c: Likewise.
2762         * config/frv/frvbegin.c: Likewise.
2763         * config/frv/frvend.c: Likewise.
2764         * config/frv/lib1funcs.asm: Likewise.
2765         * config/glibc-stdint.h: Likewise.
2766         * config/h8300/clzhi2.c: Likewise.
2767         * config/h8300/crti.asm: Likewise.
2768         * config/h8300/crtn.asm: Likewise.
2769         * config/h8300/ctzhi2.c: Likewise.
2770         * config/h8300/fixunssfsi.c: Likewise.
2771         * config/h8300/lib1funcs.asm: Likewise.
2772         * config/h8300/parityhi2.c: Likewise.
2773         * config/h8300/popcounthi2.c: Likewise.
2774         * config/i386/ammintrin.h: Likewise.
2775         * config/i386/att.h: Likewise.
2776         * config/i386/avxintrin.h: Likewise.
2777         * config/i386/biarch64.h: Likewise.
2778         * config/i386/bmmintrin.h: Likewise.
2779         * config/i386/cpuid.h: Likewise.
2780         * config/i386/cross-stdarg.h: Likewise.
2781         * config/i386/crtfastmath.c: Likewise.
2782         * config/i386/crtprec.c: Likewise.
2783         * config/i386/cygming-crtbegin.c: Likewise.
2784         * config/i386/cygming-crtend.c: Likewise.
2785         * config/i386/cygwin.asm: Likewise.
2786         * config/i386/emmintrin.h: Likewise.
2787         * config/i386/gmm_malloc.h: Likewise.
2788         * config/i386/gthr-win32.c: Likewise.
2789         * config/i386/i386.h: Likewise.
2790         * config/i386/immintrin.h: Likewise.
2791         * config/i386/linux-unwind.h: Likewise.
2792         * config/i386/linux64.h: Likewise.
2793         * config/i386/mm3dnow.h: Likewise.
2794         * config/i386/mmintrin-common.h: Likewise.
2795         * config/i386/mmintrin.h: Likewise.
2796         * config/i386/nmmintrin.h: Likewise.
2797         * config/i386/pmm_malloc.h: Likewise.
2798         * config/i386/pmmintrin.h: Likewise.
2799         * config/i386/smmintrin.h: Likewise.
2800         * config/i386/sol2-c1.asm: Likewise.
2801         * config/i386/sol2-ci.asm: Likewise.
2802         * config/i386/sol2-cn.asm: Likewise.
2803         * config/i386/sol2-gc1.asm: Likewise.
2804         * config/i386/tmmintrin.h: Likewise.
2805         * config/i386/unix.h: Likewise.
2806         * config/i386/w32-unwind.h: Likewise.
2807         * config/i386/wmmintrin.h: Likewise.
2808         * config/i386/x86-64.h: Likewise.
2809         * config/i386/x86intrin.h: Likewise.
2810         * config/i386/xmmintrin.h: Likewise.
2811         * config/ia64/crtbegin.asm: Likewise.
2812         * config/ia64/crtend.asm: Likewise.
2813         * config/ia64/crtfastmath.c: Likewise.
2814         * config/ia64/crti.asm: Likewise.
2815         * config/ia64/crtn.asm: Likewise.
2816         * config/ia64/fde-glibc.c: Likewise.
2817         * config/ia64/lib1funcs.asm: Likewise.
2818         * config/ia64/linux-unwind.h: Likewise.
2819         * config/ia64/quadlib.c: Likewise.
2820         * config/ia64/unwind-ia64.c: Likewise.
2821         * config/linux.h: Likewise.
2822         * config/m32c/m32c-lib1.S: Likewise.
2823         * config/m32c/m32c-lib2-trapv.c: Likewise.
2824         * config/m32c/m32c-lib2.c: Likewise.
2825         * config/m32r/initfini.c: Likewise.
2826         * config/m68hc11/larith.asm: Likewise.
2827         * config/m68hc11/m68hc11-crt0.S: Likewise.
2828         * config/m68k/cf.md: Likewise.
2829         * config/m68k/crti.s: Likewise.
2830         * config/m68k/crtn.s: Likewise.
2831         * config/m68k/lb1sf68.asm: Likewise.
2832         * config/m68k/linux-unwind.h: Likewise.
2833         * config/mcore/crti.asm: Likewise.
2834         * config/mcore/crtn.asm: Likewise.
2835         * config/mcore/lib1.asm: Likewise.
2836         * config/mips/linux-unwind.h: Likewise.
2837         * config/mips/loongson.h: Likewise.
2838         * config/mips/mips16.S: Likewise.
2839         * config/mmix/crti.asm: Likewise.
2840         * config/mmix/crtn.asm: Likewise.
2841         * config/pa/fptr.c: Likewise.
2842         * config/pa/hpux-unwind.h: Likewise.
2843         * config/pa/lib2funcs.asm: Likewise.
2844         * config/pa/linux-atomic.c: Likewise.
2845         * config/pa/linux-unwind.h: Likewise.
2846         * config/pa/milli64.S: Likewise.
2847         * config/pa/quadlib.c: Likewise.
2848         * config/pa/stublib.c: Likewise.
2849         * config/picochip/libgccExtras/adddi3.asm: Likewise.
2850         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
2851         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
2852         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
2853         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
2854         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
2855         * config/picochip/libgccExtras/divmod15.asm: Likewise.
2856         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
2857         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
2858         * config/picochip/libgccExtras/longjmp.asm: Likewise.
2859         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
2860         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
2861         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
2862         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
2863         * config/picochip/libgccExtras/setjmp.asm: Likewise.
2864         * config/picochip/libgccExtras/subdi3.asm: Likewise.
2865         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
2866         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
2867         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
2868         * config/rs6000/750cl.h: Likewise.
2869         * config/rs6000/altivec.h: Likewise.
2870         * config/rs6000/biarch64.h: Likewise.
2871         * config/rs6000/crtresfpr.asm: Likewise.
2872         * config/rs6000/crtresgpr.asm: Likewise.
2873         * config/rs6000/crtresxfpr.asm: Likewise.
2874         * config/rs6000/crtresxgpr.asm: Likewise.
2875         * config/rs6000/crtsavfpr.asm: Likewise.
2876         * config/rs6000/crtsavgpr.asm: Likewise.
2877         * config/rs6000/darwin-asm.h: Likewise.
2878         * config/rs6000/darwin-fallback.c: Likewise.
2879         * config/rs6000/darwin-fpsave.asm: Likewise.
2880         * config/rs6000/darwin-ldouble.c: Likewise.
2881         * config/rs6000/darwin-tramp.asm: Likewise.
2882         * config/rs6000/darwin-unwind.h: Likewise.
2883         * config/rs6000/darwin-vecsave.asm: Likewise.
2884         * config/rs6000/darwin-world.asm: Likewise.
2885         * config/rs6000/e500crtres32gpr.asm: Likewise.
2886         * config/rs6000/e500crtres64gpr.asm: Likewise.
2887         * config/rs6000/e500crtres64gprctr.asm: Likewise.
2888         * config/rs6000/e500crtrest32gpr.asm: Likewise.
2889         * config/rs6000/e500crtrest64gpr.asm: Likewise.
2890         * config/rs6000/e500crtresx32gpr.asm: Likewise.
2891         * config/rs6000/e500crtresx64gpr.asm: Likewise.
2892         * config/rs6000/e500crtsav32gpr.asm: Likewise.
2893         * config/rs6000/e500crtsav64gpr.asm: Likewise.
2894         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
2895         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
2896         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
2897         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
2898         * config/rs6000/eabi-ci.asm: Likewise.
2899         * config/rs6000/eabi-cn.asm: Likewise.
2900         * config/rs6000/eabi.asm: Likewise.
2901         * config/rs6000/linux-unwind.h: Likewise.
2902         * config/rs6000/linux64.h: Likewise.
2903         * config/rs6000/paired.h: Likewise.
2904         * config/rs6000/paired.md: Likewise.
2905         * config/rs6000/ppc64-fp.c: Likewise.
2906         * config/rs6000/ppu_intrinsics.h: Likewise.
2907         * config/rs6000/rs6000.h: Likewise.
2908         * config/rs6000/si2vmx.h: Likewise.
2909         * config/rs6000/sol-ci.asm: Likewise.
2910         * config/rs6000/sol-cn.asm: Likewise.
2911         * config/rs6000/spe.h: Likewise.
2912         * config/rs6000/spu2vmx.h: Likewise.
2913         * config/rs6000/sysv4.h: Likewise.
2914         * config/rs6000/tramp.asm: Likewise.
2915         * config/rs6000/vec_types.h: Likewise.
2916         * config/s390/linux-unwind.h: Likewise.
2917         * config/s390/tpf-unwind.h: Likewise.
2918         * config/score/crti.asm: Likewise.
2919         * config/score/crtn.asm: Likewise.
2920         * config/sh/crt1.asm: Likewise.
2921         * config/sh/crti.asm: Likewise.
2922         * config/sh/crtn.asm: Likewise.
2923         * config/sh/divtab-sh4-300.c: Likewise.
2924         * config/sh/divtab-sh4.c: Likewise.
2925         * config/sh/divtab.c: Likewise.
2926         * config/sh/lib1funcs-4-300.asm: Likewise.
2927         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
2928         * config/sh/lib1funcs.asm: Likewise.
2929         * config/sh/lib1funcs.h: Likewise.
2930         * config/sh/linux-atomic.asm: Likewise.
2931         * config/sh/linux-unwind.h: Likewise.
2932         * config/sh/shmedia.h: Likewise.
2933         * config/sh/sshmedia.h: Likewise.
2934         * config/sh/ushmedia.h: Likewise.
2935         * config/sparc/crtfastmath.c: Likewise.
2936         * config/sparc/linux-unwind.h: Likewise.
2937         * config/sparc/sol2-c1.asm: Likewise.
2938         * config/sparc/sol2-ci.asm: Likewise.
2939         * config/sparc/sol2-cn.asm: Likewise.
2940         * config/spu/divmodti4.c: Likewise.
2941         * config/spu/divv2df3.c: Likewise.
2942         * config/spu/float_disf.c: Likewise.
2943         * config/spu/float_unsdidf.c: Likewise.
2944         * config/spu/float_unsdisf.c: Likewise.
2945         * config/spu/float_unssidf.c: Likewise.
2946         * config/spu/mfc_multi_tag_release.c: Likewise.
2947         * config/spu/mfc_multi_tag_reserve.c: Likewise.
2948         * config/spu/mfc_tag_release.c: Likewise.
2949         * config/spu/mfc_tag_reserve.c: Likewise.
2950         * config/spu/mfc_tag_table.c: Likewise.
2951         * config/spu/multi3.c: Likewise.
2952         * config/spu/spu_internals.h: Likewise.
2953         * config/spu/spu_intrinsics.h: Likewise.
2954         * config/spu/spu_mfcio.h: Likewise.
2955         * config/spu/vec_types.h: Likewise.
2956         * config/spu/vmx2spu.h: Likewise.
2957         * config/stormy16/stormy16-lib2.c: Likewise.
2958         * config/svr4.h: Likewise.
2959         * config/sync.c: Likewise.
2960         * config/v850/lib1funcs.asm: Likewise.
2961         * config/vxlib-tls.c: Likewise.
2962         * config/vxlib.c: Likewise.
2963         * config/vxworks-dummy.h: Likewise.
2964         * config/xtensa/crti.asm: Likewise.
2965         * config/xtensa/crtn.asm: Likewise.
2966         * config/xtensa/ieee754-df.S: Likewise.
2967         * config/xtensa/ieee754-sf.S: Likewise.
2968         * config/xtensa/lib1funcs.asm: Likewise.
2969         * config/xtensa/lib2funcs.S: Likewise.
2970         * config/xtensa/linux-unwind.h: Likewise.
2971         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
2972         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
2973         * coretypes.h: Likewise.
2974         * crtstuff.c: Likewise.
2975         * defaults.h: Likewise.
2976         * dwarf2.h: Likewise.
2977         * emutls.c: Likewise.
2978         * gbl-ctors.h: Likewise.
2979         * gcov-io.h: Likewise.
2980         * ginclude/float.h: Likewise.
2981         * ginclude/iso646.h: Likewise.
2982         * ginclude/stdarg.h: Likewise.
2983         * ginclude/stdbool.h: Likewise.
2984         * ginclude/stddef.h: Likewise.
2985         * ginclude/stdfix.h: Likewise.
2986         * ginclude/stdint-gcc.h: Likewise.
2987         * ginclude/tgmath.h: Likewise.
2988         * gthr-aix.h: Likewise.
2989         * gthr-dce.h: Likewise.
2990         * gthr-gnat.c: Likewise.
2991         * gthr-gnat.h: Likewise.
2992         * gthr-lynx.h: Likewise.
2993         * gthr-mipssde.h: Likewise.
2994         * gthr-nks.h: Likewise.
2995         * gthr-posix.c: Likewise.
2996         * gthr-posix.h: Likewise.
2997         * gthr-posix95.h: Likewise.
2998         * gthr-rtems.h: Likewise.
2999         * gthr-single.h: Likewise.
3000         * gthr-solaris.h: Likewise.
3001         * gthr-tpf.h: Likewise.
3002         * gthr-vxworks.h: Likewise.
3003         * gthr-win32.h: Likewise.
3004         * gthr.h: Likewise.
3005         * libgcc2.c: Likewise.
3006         * libgcc2.h: Likewise.
3007         * libgcov.c: Likewise.
3008         * tsystem.h: Likewise.
3009         * typeclass.h: Likewise.
3010         * unwind-c.c: Likewise.
3011         * unwind-compat.h: Likewise.
3012         * unwind-dw2-fde-compat.c: Likewise.
3013         * unwind-dw2-fde-darwin.c: Likewise.
3014         * unwind-dw2-fde-glibc.c: Likewise.
3015         * unwind-dw2-fde.c: Likewise.
3016         * unwind-dw2-fde.h: Likewise.
3017         * unwind-dw2.c: Likewise.
3018         * unwind-dw2.h: Likewise.
3019         * unwind-generic.h: Likewise.
3020         * unwind-pe.h: Likewise.
3021         * unwind-sjlj.c: Likewise.
3022         * unwind.inc: Likewise.
3023         * config/arm/neon-gen.ml: Change generated copyright header to
3024         refer to version 3 of the GNU General Public License with
3025         version 3.1 of the GCC Runtime Library Exception and to point
3026         readers at the COPYING3 and COPYING3.RUNTIME files and the
3027         FSF's license web page.
3028         * config/arm/arm_neon.h: Regenerate.
3029
3030 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
3031
3032         * config/cris/cris.md: Change copyright header to refer to version
3033         3 of the GNU General Public License.
3034         * doc/install.texi2html: Change copyright header to refer to version
3035         3 of the GNU General Public License and to point readers at the
3036         COPYING3 file and the FSF's license web page.
3037         * config/vax/linux.h: Likewise.
3038
3039 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
3040
3041         * config/i386/i386.md (cmpcc): New.
3042         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
3043         (sync_compare_and_swap_cc*): Delete.
3044
3045         * config/s390/s390.c (s390_compare_emitted): Remove.
3046         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
3047         s390_compare_emitted used to be handled.  Assert that modes match.
3048         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
3049         refer to sync_compare_and_swap_ccsi.
3050         * config/s390/s390.h (s390_compare_emitted): Remove.
3051         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
3052         instead of s390_compare_emitted.
3053         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
3054         instead of s390_compare_emitted.
3055         * config/s390/s390.md (cmpcc): New.
3056         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
3057         CC_REGNUM, do not pretend it's set.
3058         (sync_compare_and_swap_cc*): Delete.
3059         * config/s390/predicates.md (cc_reg_operand): New.
3060
3061         * expr.c (sync_compare_and_swap_cc): Delete.
3062         * optabs.h (sync_compare_and_swap_cc): Delete.
3063         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
3064         is being used with can_compare_p.
3065         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
3066         (find_cc_set): New.
3067         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
3068         look for a MODE_CC set instead.  Use emit_store_flag.
3069         (expand_compare_and_swap_loop): Likewise, with some additional
3070         complication to avoid a force_reg when useless.  Use
3071         emit_cmp_and_jump_insns.
3072         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
3073         * doc/md.texi (sync_compare_and_swap_cc): Merge with
3074         sync_compare_and_swap documentation.
3075
3076 2009-04-09  Jan Hubicka  <jh@suse.cz>
3077
3078         * except.c (find_prev_try): Break out from ....
3079         (duplicate_eh_regions): ... here; properly update prev_try pointers
3080         when duplication part of tree.
3081         (dump_eh_tree): Improve dumping.
3082         (verify_eh_region): New.
3083         (verify_eh_tree): Use it.
3084
3085 2009-04-06  Richard Guenther  <rguenther@suse.de>
3086
3087         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
3088         &ARRAY addresses by adjusting their types and prepending
3089         a conversion.
3090         * tree-cfg.c (verify_gimple_assign_single): Verify that
3091         addresses are correct.
3092
3093 2009-04-09  Richard Guenther  <rguenther@suse.de>
3094
3095         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
3096         indices into an array reference if possible.
3097         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3098         Fold POINTER_PLUS_EXPR statements with invariant address.
3099
3100 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
3101
3102         PR target/39634
3103         * config.gcc (powerpc64-*-linux*): Always build biarch.
3104
3105 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
3106
3107         PR c/39613
3108         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
3109         it and pedwarn if this results in an INTEGER_CST.
3110
3111 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3112
3113         * doc/install.texi: Update minimum GMP version.  Remove obsolete
3114         text in MPFR section.
3115
3116 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
3117
3118         * dwarf2out.c (class_scope_p): New static inline.
3119         (class_or_namespace_scope_p): Use it.
3120         (gen_variable_die): Use DW_TAG_member tag for static data member
3121         declarations instead of DW_TAG_variable.
3122
3123         PR middle-end/39573
3124         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
3125         variables.
3126
3127 2009-04-08  Richard Guenther  <rguenther@suse.de>
3128
3129         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
3130         valueize random data.
3131
3132 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
3133
3134         * config.gcc (aix tm_file):  Add aix-stdint.h.
3135         (aix tm clause use_gcc_stdint):  Set to wrap.
3136         * config/rs6000/aix-stdint.h:  New file.
3137
3138 2009-04-08  Richard Guenther  <rguenther@suse.de>
3139
3140         PR middle-end/36291
3141         * tree-dfa.c (add_referenced_var): Do not recurse into
3142         global initializers.
3143         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
3144         exposed variables.
3145         (fold_const_aggregate_ref): Likewise.
3146
3147 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
3148
3149         * recog.c (ordered_comparison_operator): New.
3150         * gensupport.c (std_preds): Add it.
3151         * doc/md.texi (Machine-Independent Predicates): Document it.
3152
3153 2009-04-08  Jan Hubicka  <jh@suse.cz>
3154
3155         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
3156         * function.h (rtl_eh): Remove exception_handler_label_map.
3157         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
3158         remove_exception_handler_label, for_each_eh_label_1): Remove.
3159         (rtl_remove_unreachable_regions): Remove.
3160         (convert_from_eh_region_ranges): Do not remove unreachable regions.
3161         (find_exception_handler_labels): Don't build the hashtable.
3162         (maybe_remove_eh_handler): Remove.
3163         (for_each_eh_label): Rewrite to walk the tree.
3164         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
3165         * except.h (maybe_remove_eh_handler): Remove.
3166         * passes.c (init_optimization_passes): Schedule second EH cleanup
3167         before out-of-ssa.
3168         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
3169         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
3170
3171 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
3172
3173         * genoutput.c (validate_optab_operands): New.
3174         (gen_insn, gen_expand): Call it.
3175
3176         * genflags.c (gen_insn): Detect misused iterators.
3177         (main): Pass line_no to gen_insn, exit with status 1 on error.
3178
3179         * genextract.c (line_no): Make global.
3180         (VEC_safe_set_locstr): Change assertion to error message.
3181         (main): Exit with status 1 on error.
3182
3183 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
3184
3185         PR c/39614
3186         PR c/39673
3187         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
3188         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
3189         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
3190         * c-convert.c (convert): Do not call fold on results of conversion
3191         functions when the result is a C_MAYBE_CONST_EXPR.
3192         * c-parser.c (c_parser_postfix_expression): Do not fold condition
3193         of __builtin_choose_expr.
3194         * c-typeck.c (remove_c_maybe_const_expr): New.
3195         (build_unary_op, build_conditional_expr, build_compound_expr,
3196         build_binary_op, c_objc_common_truthvalue_conversion): Call
3197         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
3198         integer operands.
3199
3200 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
3201
3202         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
3203         CODE to produce a new one. Add a prototype to use fold_convert_const
3204
3205 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
3206
3207         PR bootstrap/39660
3208         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
3209         mix declarations and code.
3210
3211 2009-04-08  Ben Elliston  <bje@au.ibm.com>
3212
3213         * gcc.c: Replace `CC' with `GCC' throughout.
3214
3215 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
3216
3217         * doc/invoke.texi: Document Atom support.
3218
3219 2009-04-07  Jason Merrill  <jason@redhat.com>
3220
3221         PR c++/25185
3222         * c-common.h, c-common.c: Add flag_pretty_templates.
3223         * c-opts.c (c_common_handle_option): Set it.
3224         * c.opt: Add -fno-pretty-templates.
3225         * doc/invoke.texi (C++ Dialect Options): Likewise.
3226
3227 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
3228
3229         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
3230         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
3231         (ia64_expand_builtin): Likewise.
3232
3233 2009-04-07  Martin Jambor  <mjambor@suse.cz>
3234
3235         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
3236         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
3237         ADDR_EXPRS are include too.
3238
3239 2009-04-07  Richard Guenther  <rguenther@suse.de>
3240
3241         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
3242         decls are only used if passes as parameters or if they are
3243         local statics and the call is not to a builtin.
3244         (call_may_clobber_ref_p_1): Likewise.
3245
3246 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3247
3248         * expr.c (do_store_flag): Remove last argument.  Simplify code
3249         to avoid duplication of tests already done by can_compare_p.
3250         (expand_expr_real_1): Adjust caller.
3251
3252 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3253
3254         * optabs.c (can_compare_p): Test the predicate of a
3255         cbranch and cstore pattern.
3256
3257 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3258
3259         * expr.c (convert_move): Use emit_store_flag instead of
3260         "emulating" it.
3261
3262 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
3263
3264         * config/i386/i386.c (ix86_compare_emitted): Remove.
3265         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
3266         ix86_compare_op0 like ix86_compare_emitted used to be handled.
3267         * config/i386/i386.h (ix86_compare_emitted): Remove.
3268         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
3269         instead of ix86_compare_emitted.
3270         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
3271
3272 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
3273
3274         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
3275         Add t-sysroot-suffix to tmake_file.
3276         * config/print-sysroot-suffix.sh: New file.
3277         * config/t-sysroot-suffix: New file.
3278
3279 2009-04-07  Ben Elliston  <bje@au.ibm.com>
3280
3281         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
3282         as the latter produces a warning when the target does not support
3283         infinity.
3284
3285 2009-04-07  Ben Elliston  <bje@au.ibm.com>
3286
3287         * dfp.c: Replace type punning assignments with memcpy throughout.
3288         * Makefile.in (dfp.o-warn): Remove.
3289
3290 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
3291
3292         PR target/39634
3293         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
3294         Include soft-fp/t-softfp after rs6000/t-linux64.
3295
3296 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
3297
3298         * stor-layout.c (set_sizetype): Use the full precision of their
3299         machine mode for bitsize types.
3300
3301 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
3302
3303         * config/i386/i386.md: Revert 2 accidental checkins.
3304
3305 2009-04-06  Joey Ye  <joey.ye@intel.com>
3306             Xuepeng Guo <xuepeng.guo@intel.com>
3307             H.J. Lu  <hongjiu.lu@intel.com>
3308
3309         Atom pipeline model, tuning and insn selection.
3310         * config.gcc (atom): Add atom config options and target.
3311
3312         * config/i386/atom.md: New.
3313
3314         * config/i386/i386.c (atom_cost): New cost.
3315         (m_ATOM): New macro flag.
3316         (initial_ix86_tune_features): Set m_ATOM.
3317         (x86_accumulate_outgoing_args): Likewise.
3318         (x86_arch_always_fancy_math_387): Likewise.
3319         (processor_target): Add Atom cost.
3320         (cpu_names): Add Atom cpu name.
3321         (override_options): Set Atom ISA.
3322         (ix86_issue_rate): New case PROCESSOR_ATOM.
3323         (ix86_adjust_cost): Likewise.
3324
3325         * config/i386/i386.h (TARGET_ATOM): New target macro.
3326         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
3327         (TARGET_OPT_AGU): New target option.
3328         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
3329         (processor_type): Add PROCESSOR_ATOM.
3330
3331         * config/i386/i386.md (cpu): Add new value "atom".
3332         (use_carry, movu): New attr.
3333         (atom.md): Include atom.md.
3334         (adddi3_carry_rex64): Set attr "use_carry".
3335         (addqi3_carry): Likewise.
3336         (addhi3_carry): Likewise.
3337         (addsi3_carry): Likewise.
3338         (*addsi3_carry_zext): Likewise.
3339         (subdi3_carry_rex64): Likewise.
3340         (subqi3_carry): Likewise.
3341         (subhi3_carry): Likewise.
3342         (subsi3_carry): Likewise.
3343         (x86_movdicc_0_m1_rex64): Likewise.
3344         (*x86_movdicc_0_m1_se): Likewise.
3345         (x86_movsicc_0_m1): Likewise.
3346         (*x86_movsicc_0_m1_se): Likewise.
3347         (*adddi_1_rex64): Emit add insn as much as possible.
3348         (*addsi_1): Likewise.
3349         (return_internal): Set atom_unit.
3350         (return_internal_long): Likewise.
3351         (return_pop_internal): Likewise.
3352         (*rcpsf2_sse): Set atom_sse_attr attr.
3353         (*qrt<mode>2_sse): Likewise.
3354         (*prefetch_sse): Likewise.
3355
3356         * config/i386/i386-c.c (ix86_target_macros_internal): New case
3357         PROCESSOR_ATOM.
3358         (ix86_target_macros_internal): Likewise.
3359
3360         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
3361         (*prefetch_sse_rex): Likewise.
3362         (sse_rcpv4sf2): Likewise.
3363         (sse_vmrcpv4sf2): Likewise.
3364         (sse_sqrtv4sf2): Likewise.
3365         (<sse>_vmsqrt<mode>2): Likewise.
3366         (sse_ldmxcsr): Likewise.
3367         (sse_stmxcsr): Likewise.
3368         (*sse_sfence): Likewise.
3369         (sse2_clflush): Likewise.
3370         (*sse2_mfence): Likewise.
3371         (*sse2_lfence): Likewise.
3372         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
3373         (<sse>_movup<ssemodesuffixf2c>): Likewise.
3374         (avx_movdqu<avxmodesuffix>): Likewise.
3375         (avx_lddqu<avxmodesuffix>): Likewise.
3376         (sse2_movntv2di): Change attr "type" to "ssemov".
3377         (sse2_movntsi): Likewise.
3378         (rsqrtv8sf2): Change attr "type" to "sseadd".
3379         (sse3_addsubv2df3): Set attr "atom_unit".
3380         (sse3_h<plusminus_insn>v4sf3): Likewise.
3381         (*sse2_pmaddwd): Likewise.
3382         (*vec_extractv2di_1_rex64): Likewise.
3383         (*vec_extractv2di_1_avx): Likewise.
3384         (sse2_psadbw): Likewise.
3385         (ssse3_phaddwv8hi3): Likewise.
3386         (ssse3_phaddwv4hi3): Likewise.
3387         (ssse3_phadddv4si3): Likewise.
3388         (ssse3_phadddv2si3): Likewise.
3389         (ssse3_phaddswv8hi3): Likewise.
3390         (ssse3_phaddswv4hi3): Likewise.
3391         (ssse3_phsubwv8hi3): Likewise.
3392         (ssse3_phsubwv4hi3): Likewise.
3393         (ssse3_phsubdv4si3): Likewise.
3394         (ssse3_phsubdv2si3): Likewise.
3395         (ssse3_phsubswv8hi3): Likewise.
3396         (ssse3_phsubswv4hi3): Likewise.
3397         (ssse3_pmaddubsw128): Likewise.
3398         (sse3_pmaddubsw: Likewise.
3399         (ssse3_palignrti): Likewise.
3400         (ssse3_palignrdi): Likewise.
3401
3402 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
3403
3404         * doc/install.texi (Specific): Fix two cross-references to MinGW.
3405
3406 2009-04-06  Richard Guenther  <rguenther@suse.de>
3407
3408         PR tree-optimization/28868
3409         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
3410         of which PHI results we inserted.
3411         (insert_into_preds_of_block): Record inserted PHIs.
3412         (eliminate): Eliminate redundant PHI nodes.
3413         (init_pre): Init inserted_phi_names.
3414
3415 2009-04-06  Richard Guenther  <rguenther@suse.de>
3416
3417         PR tree-optimization/39643
3418         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
3419         IMAGPART_EXPRs of complex constants.
3420         (execute_fold_all_builtins): If we folded a call queue
3421         TODO_update_address_taken.
3422
3423 2009-04-06  Jan Hubicka  <jh@suse.cz>
3424
3425         PR middle-end/39659
3426         * except.c (remove_unreachable_regions): Propagate may_contain_throw
3427         flag.
3428
3429 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
3430
3431         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
3432         delay slot.
3433         (ic_invalidate_array): Likewise.
3434
3435 2009-04-06  Hariharan Sandanagobalane <hariharan@picochip.com>
3436
3437         * calls.c (emit_library_call_value_1): Fix a problem with parameter
3438         alignment for library calls.
3439
3440 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
3441
3442         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
3443         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
3444         * config/i386/mingw-stdint.h:  New file.
3445
3446 2009-04-05  Richard Guenther  <rguenther@suse.de>
3447
3448         PR tree-optimization/39648
3449         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
3450         our &A vs. &A[0] IL deficiencies.
3451
3452 2009-04-04  Jan Hubicka  <jh@suse.cz>
3453
3454         * except.c (sjlj_find_directly_reachable_regions): Be ready for
3455         removed toplevel regions.
3456         (sjlj_mark_call_sites): Likewise.
3457
3458 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
3459
3460         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
3461         (cygwin tm clause use_gcc_stdint):  Set to wrap.
3462         * config/i386/cygwin-stdint.h:  New file.
3463
3464 2009-04-04  Richard Guenther  <rguenther@suse.de>
3465
3466         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
3467         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
3468         single-argument PHIs if we are in loop-closed SSA form.
3469         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
3470         for the pre-condition.
3471         (slpeel_tree_peel_loop_to_edge): Likewise.
3472         (vect_build_loop_niters): Take an optional sequence to append stmts.
3473         (vect_generate_tmps_on_preheader): Likewise.
3474         (vect_do_peeling_for_loop_bound): Take extra guards for the
3475         pre-condition.
3476         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
3477         the cost model check.
3478         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
3479         guards if we are going to peel.  Do not apply versioning in that case.
3480         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
3481         (vect_do_peeling_for_loop_bound): Likewise.
3482         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
3483         loop bound only record extra pre-conditions, do not apply loop
3484         versioning.
3485
3486 2009-04-04  Richard Guenther  <rguenther@suse.de>
3487
3488         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
3489         renaming code.
3490
3491 2009-04-04  Jan Hubicka  <jh@suse.cz>
3492
3493         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
3494         last_basic_block for size of bb->index indexed array.
3495         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
3496         compute_out, link_btr_uses, build_btr_def_use_webs,
3497         build_btr_def_use_webs, migrate_btr_defs): Likewise.
3498
3499 2009-04-04  Jan Hubicka  <jh@suse.cz>
3500
3501         * except.c (remove_eh_handler_and_replace): Break out from ...
3502         (remove_eh_handler): ... here.
3503         (bring_to_root): New function.
3504         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
3505         handled ones, bring others to root of tree.
3506
3507 2009-04-04  Jan Hubicka  <jh@suse.cz>
3508
3509         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
3510         (all_phis_safe_to_merge): New function.
3511         (update_info): New structure.
3512         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
3513         (cleanup_empty_eh): Update SSA if possible.
3514
3515 2009-04-04  Richard Guenther  <rguenther@suse.de>
3516
3517         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
3518         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
3519         (append_vuse): Likewise.
3520
3521 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
3522
3523         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
3524         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
3525         instead of REG_UNSAVED for DW_CFA_undefined.
3526         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
3527         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
3528         outermost frame.
3529
3530 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
3531
3532         PR target/39501
3533         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
3534         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
3535         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
3536
3537 2009-04-04  Richard Guenther  <rguenther@suse.de>
3538
3539         PR tree-optimization/8781
3540         PR tree-optimization/37892
3541         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
3542         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
3543         (valueize_refs): Call it for *& valueizations.
3544         (shared_reference_ops_from_ref): Rename to ...
3545         (valueize_shared_reference_ops_from_ref): ... this and valueize.
3546         (shared_reference_ops_from_call): Rename to ...
3547         (valueize_shared_reference_ops_from_call): ... this and valueize.
3548         (vn_reference_lookup): Update.
3549         (visit_reference_op_call): Likewise.
3550         * tree-ssa-pre.c (phi_translate_1): Fold *&.
3551         (eliminate): Value-replace the call address in call statements.
3552
3553 2009-04-04  Richard Guenther  <rguenther@suse.de>
3554
3555         PR tree-optimization/39636
3556         * tree-ssa-forwprop.c
3557         (forward_propagate_addr_into_variable_array_index): Check for
3558         GIMPLE_ASSIGN before accessing the rhs code.
3559
3560 2009-04-03  Jason Merrill  <jason@redhat.com>
3561
3562         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
3563
3564 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
3565
3566         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
3567         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
3568         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
3569         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
3570         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
3571         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
3572         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
3573         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
3574         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
3575         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
3576         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
3577         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
3578         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
3579         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
3580         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
3581         Use fr_reg_or_fp01_operand instead of fr_register_operand
3582
3583         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
3584         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
3585         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
3586
3587 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
3588
3589         PR rtl-optimization/39607
3590         PR rtl-optimization/39631
3591
3592         Revert:
3593
3594         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
3595         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
3596         instead of DF_LR_OUT.
3597         * ira-lives.c (process_bb_node_lives): Ditto.
3598         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
3599         instead of DF_LR_{OUT,IN}.
3600         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
3601         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
3602
3603 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
3604
3605         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
3606         (execute_lower_omp): Always run but take the short way out if -fopenmp
3607         is not given.
3608         (gate_lower_omp): Remove, forcing the pass manager to always run the
3609         pass and always set PROP_gimple_lomp.
3610         (pass_lower_omp): Remove gate function.
3611         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
3612         PROP_trees.  Instead, require it.
3613         * ipa-cp.c (pass_ipa_cp): Likewise.
3614         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
3615         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
3616         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
3617         and PROP_gimple_leh.
3618
3619 2009-04-03  Richard Guenther  <rguenther@suse.de>
3620
3621         PR middle-end/13146
3622         PR tree-optimization/23940
3623         PR tree-optimization/33237
3624         PR middle-end/33974
3625         PR middle-end/34093
3626         PR tree-optimization/36201
3627         PR tree-optimization/36230
3628         PR tree-optimization/38049
3629         PR tree-optimization/38207
3630         PR tree-optimization/38230
3631         PR tree-optimization/38301
3632         PR tree-optimization/38585
3633         PR middle-end/38895
3634         PR tree-optimization/38985
3635         PR tree-optimization/39299
3636         * tree-ssa-structalias.h: Remove.
3637         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
3638         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
3639         (struct vuse_element_d): Remove.
3640         (struct vuse_vec_d): Likewise.
3641         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
3642         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
3643         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
3644         VUSE_ELEMENT_VAR): Likewise.
3645         (struct voptype_d): Likewise.
3646         (NUM_VOP_FREE_BUCKETS): Likewise.
3647         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
3648         (struct stmt_operands_d): Remove.
3649         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
3650         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
3651         VDEF_NUM, VDEF_VECT): Likewise.
3652         (copy_virtual_operands): Remove.
3653         (operand_build_cmp): Likewise.
3654         (create_ssa_artificial_load_stmt): Likewise.
3655         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
3656         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
3657         vuse_index and mayuse_index members.  Pack and move done and iter_type
3658         members to the front.
3659         (SSA_OP_VMAYUSE): Remove.
3660         (SSA_OP_VIRTUAL_USES): Adjust.
3661         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
3662         (unlink_stmt_vdef): Declare.
3663         (add_to_addressable_set): Remove.
3664         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
3665         (vrp_visit_stmt): Likewise.
3666         * doc/tree-ssa.texi (Alias analysis): Update.
3667         * doc/invoke.texi (max-aliased-vops): Remove docs.
3668         (avg-aliased-vops): Likewise.
3669         * tree-into-ssa.c (syms_to_rename): Remove.
3670         (need_to_update_vops_p): Likewise.
3671         (need_to_initialize_update_ssa_p): Rename to ...
3672         (update_ssa_initialized_fn): ... this.  Track function we are
3673         initialized for.
3674         (symbol_marked_for_renaming): Simplify.
3675         (add_new_name_mapping): Do not set need_to_update_vops_p.
3676         (dump_currdefs): Use SYMS_TO_RENAME.
3677         (rewrite_update_stmt): Always walk all uses/defs.
3678         (dump_update_ssa): Adjust.
3679         (init_update_ssa): Take function argument.  Track what we are
3680         initialized for.
3681         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
3682         (create_new_def_for): Initialize for cfun, assert we are initialized
3683         for cfun.
3684         (mark_sym_for_renaming): Simplify.
3685         (mark_set_for_renaming): Do not initialize update-ssa.
3686         (need_ssa_update_p): Simplify.  Take function argument.
3687         (name_mappings_registered_p): Assert we ask for the correct function.
3688         (name_registered_for_update_p): Likewise.
3689         (ssa_names_to_replace): Likewise.
3690         (release_ssa_name_after_update_ssa): Likewise.
3691         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
3692         (dump_decl_set): Do not print a newline.
3693         (debug_decl_set): Do it here.
3694         (dump_update_ssa): And here.
3695         * tree-ssa-loop-im.c (move_computations): Adjust.
3696         (movement_possibility): Likewise.
3697         (determine_max_movement): Likewise.
3698         (gather_mem_refs_stmt): Likewise.
3699         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
3700         or NAME_MEMORY_TAG.
3701         * tree-complex.c (update_all_vops): Remove.
3702         (expand_complex_move): Adjust.
3703         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
3704         Simplify test for memory referencing statement.  Exclude
3705         non-invariant ADDR_EXPRs.
3706         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
3707         * tree-loop-distribution.c (generate_memset_zero): Adjust.
3708         (rdg_flag_uses): Likewise.
3709         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
3710         related code.
3711         (tree_optimize_tail_calls_1): Also split the
3712         edge from the entry block if we have degenerate PHI nodes in
3713         the first basic block.
3714         * tree.c (init_ttree): Remove memory-tag related code.
3715         (tree_code_size): Likewise.
3716         (tree_node_structure): Likewise.
3717         (build7_stat): Re-write to be build6_stat.
3718         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
3719         (SSA_VAR_P): Adjust.
3720         (struct tree_memory_tag): Remove.
3721         (struct tree_memory_partition_tag): Likewise.
3722         (union tree_node): Adjust.
3723         (build7): Re-write to be build6.
3724         * tree-pass.h (pass_reset_cc_flags): Remove.
3725         (TODO_update_address_taken): New flag.
3726         (pass_simple_dse): Remove.
3727         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
3728         * params.h (MAX_ALIASED_VOPS): Remove.
3729         (AVG_ALIASED_VOPS): Likewise.
3730         * omp-low.c (expand_omp_taskreg): Update SSA form.
3731         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
3732         aliases the lhs in a copy stmt.
3733         * tree-ssa-dse.c (struct address_walk_data): Remove.
3734         (memory_ssa_name_same): Likewise.
3735         (memory_address_same): Likewise.
3736         (get_kill_of_stmt_lhs): Likewise.
3737         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
3738         unused stores.  Look through PHI nodes into post-dominated regions.
3739         (dse_optimize_stmt): Simplify.  Properly remove stores.
3740         (tree_ssa_dse): Compute dominators.
3741         (execute_simple_dse): Remove.
3742         (pass_simple_dse): Likewise.
3743         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
3744         gimple_loaded_syms and gimple_stored_syms computation.
3745         * toplev.c (dump_memory_report): Dump alias and pta stats.
3746         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
3747         (vn_reference_eq): Likewise.
3748         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
3749         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
3750         valueize_vuses): Remove.
3751         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
3752         (get_def_ref_stmt_vuse): ... this.
3753         (vn_reference_lookup_2): New function.
3754         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
3755         walking equivalent vuses.  Simplify.
3756         (vn_reference_lookup): Likewise.
3757         (vn_reference_insert): Likewise.
3758         (vn_reference_insert_pieces): Likewise.
3759         (visit_reference_op_call): Simplify.
3760         (visit_reference_op_load): Likewise.
3761         (visit_reference_op_store): Likewise.
3762         (init_scc_vn): Remove shared_lookup_vuses initialization.
3763         (free_scc_vn): Remove shared_lookup_vuses freeing.
3764         (sort_vuses, sort_vuses_heap): Remove.
3765         (get_ref_from_reference_ops): Export.
3766         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
3767         vector with single vuse pointer.
3768         (vn_reference_lookup_pieces, vn_reference_lookup,
3769         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
3770         (shared_vuses_from_stmt): Remove.
3771         (get_ref_from_reference_ops): Declare.
3772         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
3773         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3774         memory-tag related code.
3775         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
3776         (likely_value): Add comment, skip static-chain of call statements.
3777         (surely_varying_stmt_p): Adjust.
3778         (gimplify_and_update_call_from_tree): Likewise.
3779         (execute_fold_all_builtins): Do not rebuild alias info.
3780         (gimplify_and_update_call_from_tree): Properly update VOPs.
3781         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
3782         (copy_ref_info): Remove memory-tag related code.
3783         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
3784         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
3785         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
3786         computation.
3787         * tree-ssa-dom.c (gimple_p): Remove typedef.
3788         (eliminate_redundant_computations): Adjust.
3789         (record_equivalences_from_stmt): Likewise.
3790         (avail_expr_hash): Likewise.
3791         (avail_expr_eq): Likewise.
3792         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
3793         (stmt_makes_single_load): Likewise.
3794         (stmt_makes_single_store): Likewise.
3795         * tree-ssa-alias.c: Rewrite completely.
3796         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
3797         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
3798         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
3799         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
3800         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
3801         Remove public functions.
3802         (pass_reset_cc_flags): Remove.
3803         (pass_build_alias): Move ...
3804         * tree-ssa-structalias.c (pass_build_alias): ... here.
3805         * tree-ssa-alias.c (may_be_aliased): Move ...
3806         * tree-flow-inline.h (may_be_aliased): ... here.
3807         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
3808         count_uses_and_derefs): Move ...
3809         * gimple.c: ... here.
3810         * gimple.h (count_uses_and_derefs): Declare.
3811         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
3812         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
3813         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
3814         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
3815         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
3816         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
3817         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
3818         New functions.
3819         * tree-dfa.c (refs_may_alias_p): Move ...
3820         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
3821         * tree-ssa-alias.h: New file.
3822         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
3823         (statement_sink_location): Likewise.
3824         * opts.c (decode_options): Do not adjust max-aliased-vops or
3825         avg-aliased-vops values.
3826         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
3827         (TV_CALL_CLOBBER): Likewise.
3828         (TV_FLOW_SENSITIVE): Likewise.
3829         (TV_FLOW_INSENSITIVE): Likewise.
3830         (TV_MEMORY_PARTITIONING): Likewise.
3831         (TV_ALIAS_STMT_WALK): New timevar.
3832         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
3833         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
3834         (get_address_description): Remove memory-tag related code.
3835         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
3836         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
3837         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
3838         and immediate uses in statements.  Document.
3839         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
3840         (dump_symbols): Remove.
3841         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
3842         * alias.c (get_deref_alias_set): New function split out from ...
3843         (get_alias_set): ... here.
3844         * alias.h (get_deref_alias_set): Declare.
3845         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
3846         type parameter.  Remove restrict pointer handling.  Create a
3847         ref-all pointer in case type-based alias sets do not conflict.
3848         (vect_analyze_data_refs): Remove SMT related code.
3849         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
3850         (vectorizable_load): Likewise.
3851         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
3852         (DR_SYMBOL_TAG, DR_VOPS): Remove.
3853         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
3854         Ignore vops and SMTs.
3855         (dr_analyze_alias): Likewise..
3856         (free_data_ref): Likewise.
3857         (create_data_ref): Likewise.
3858         (analyze_all_data_dependences): Likewise.
3859         (get_references_in_stmt): Adjust.
3860         * tree-flow-inline.h (gimple_aliases_computed_p,
3861         gimple_addressable_vars, gimple_call_clobbered_vars,
3862         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
3863         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
3864         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
3865         gimple_mem_ref_stats): Remove.
3866         (gimple_vop): New function.
3867         (op_iter_next_use): Remove vuses and mayuses cases.
3868         (op_iter_next_def): Remove vdefs case.
3869         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
3870         (clear_and_done_ssa_iter): Do not set removed fields.
3871         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
3872         Assert we are not iterating over vuses or vdefs if not also
3873         iterating over uses or defs.
3874         (op_iter_init_use): Likewise.
3875         (op_iter_init_def): Likewise.
3876         (op_iter_next_vdef): Remove.
3877         (op_iter_next_mustdef): Likewise.
3878         (op_iter_init_vdef): Likewise.
3879         (compare_ssa_operands_equal): Likewise.
3880         (link_use_stmts_after): Handle vuse operand.
3881         (is_call_used): Use is_call_clobbered.
3882         (is_call_clobbered): Global variables are always call clobbered,
3883         query the call-clobbers bitmap.
3884         (mark_call_clobbered): Ignore global variables.
3885         (clear_call_clobbered): Likewise.
3886         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
3887         virtual operands sanity check.
3888         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
3889         Remove.
3890         (TARGET_MEM_REF): Remove TMR_TAG operand.
3891         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
3892         Remove call-clobber related code.
3893         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
3894         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
3895         partitions or escape reason.
3896         (get_single_def_stmt, get_single_def_stmt_from_phi,
3897         get_single_def_stmt_with_phi): Remove.
3898         (dump_referenced_vars): Tidy.
3899         (get_ref_base_and_extent): Allow bare decls.
3900         (collect_dfa_stats): Adjust.
3901         * graphite.c (rename_variables_in_stmt): Adjust.
3902         (graphite_copy_stmts_from_block): Likewise.
3903         (translate_clast): Likewise.
3904         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
3905         (EXPR_DIES): New.
3906         (translate_vuse_through_block): Use the oracle.
3907         (phi_translate_1): Adjust.
3908         (value_dies_in_block_x): Use the oracle.  Cache the outcome
3909         in EXPR_DIES.
3910         (valid_in_sets): Check if the VUSE for
3911         a REFERENCE is available.
3912         (eliminate): Do not remove stmts during elimination,
3913         instead queue and remove them afterwards.
3914         (do_pre): Do not rebuild alias info.
3915         (pass_pre): Run TODO_rebuild_alias before PRE.
3916         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
3917         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
3918         (mark_all_v_defs_stmt): Remove.
3919         (mark_all_v_defs_seq): Adjust.
3920         (sra_replace): Likewise.
3921         (scalarize_use): Likewise.
3922         (scalarize_copy): Likewise.
3923         (scalarize_init): Likewise.
3924         (scalarize_ldst): Likewise.
3925         (todoflags): Remove.
3926         (tree_sra): Do not rebuild alias info.
3927         (tree_sra_early): Adjust.
3928         (pass_sra): Run TODO_update_address_taken before SRA.
3929         * tree-predcom.c (set_alias_info): Remove.
3930         (prepare_initializers_chain): Do not call it.
3931         (mark_virtual_ops_for_renaming): Adjust.
3932         (mark_virtual_ops_for_renaming_list): Remove.
3933         (initialize_root_vars): Adjust.
3934         (initialize_root_vars_lm): Likewise.
3935         (prepare_initializers_chain): Likewise.
3936         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
3937         (may_propagate_copy_into_stmt): Likewise.
3938         (merge_alias_info): Do nothing for now.
3939         (propagate_tree_value_into_stmt): Adjust.
3940         (stmt_may_generate_copy): Likewise.
3941         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
3942         not mark symbols for renaming.
3943         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
3944         with the same statement, make sure to update the new pointed-to one.
3945         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
3946         call statements, do not mark symbols for renaming.
3947         (mark_operand_necessary): Dump something.
3948         (ref_may_be_aliased): New function.
3949         (mark_aliased_reaching_defs_necessary_1): New helper function.
3950         (mark_aliased_reaching_defs_necessary): Likewise.
3951         (mark_all_reaching_defs_necessary_1): Likewise.
3952         (mark_all_reaching_defs_necessary): Likewise.
3953         (propagate_necessity): Do not process virtual PHIs.  For
3954         non-aliased loads mark all reaching definitions as necessary.
3955         For aliased loads and stores mark the immediate dominating
3956         aliased clobbers as necessary.
3957         (visited): New global static.
3958         (perform_tree_ssa_dce): Free visited bitmap after propagating
3959         necessity.
3960         (remove_dead_phis): Perform simple dead virtual PHI removal.
3961         (remove_dead_stmt): Properly unlink virtual operands when
3962         removing stores.
3963         (eliminate_unnecessary_stmts): Schedule PHI removal after
3964         stmt removal.
3965         * tree-ssa-ter.c (is_replaceable_p): Adjust.
3966         (process_replaceable): Likewise.
3967         (find_replaceable_in_bb): Likewise.
3968         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
3969         based on the single gimple vop.
3970         (verify_flow_insensitive_alias_info): Remove.
3971         (verify_flow_sensitive_alias_info): Likewise.
3972         (verify_call_clobbering): Likewise.
3973         (verify_memory_partitions): Likewise.
3974         (verify_alias_info): Likewise.
3975         (verify_ssa): Adjust..
3976         (execute_update_addresses_taken): Export.  Update SSA
3977         manually.  Optimize only when optimizing.  Use a local bitmap.
3978         (pass_update_address_taken): Remove TODO_update_ssa, add
3979         TODO_dump_func.
3980         (pass_update_address_taken): Just use TODO_update_address_taken.
3981         (init_tree_ssa): Do not initialize addressable_vars.
3982         (verify_ssa): Verify new VUSE / VDEF properties.
3983         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
3984         Do not call verify_alias_info.
3985         (delete_tree_ssa): Clear the VUSE, VDEF operands.
3986         Do not free the loaded and stored syms bitmaps.  Reset the escaped
3987         and callused solutions.  Do not free addressable_vars.
3988         Remove memory-tag related code.
3989         (warn_uninitialized_var): Aliases are always available.
3990         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
3991         * lambda-code.c (can_put_in_inner_loop): Adjust.
3992         (can_put_after_inner_loop): Likewise.
3993         (perfect_nestify): Likewise.
3994         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
3995         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
3996         (vectorizable_conversion): Do not mark symbols for renaming.
3997         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
3998         (expand_call_inline): Unlink the calls virtual operands before
3999         replacing it.
4000         (tree_function_versioning): Do not call update_ssa if we are not
4001         updating clones.  Simplify.
4002         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
4003         (propagate_with_phi): Likewise..
4004         * tree-outof-ssa.c (create_temp): Remove memory tag and call
4005         clobber code.  Assert we are not aliased or global.
4006         * tree-flow.h: Include tree-ssa-alias.h
4007         (enum escape_type): Remove.
4008         (struct mem_sym_stats_d): Likewise.
4009         (struct mem_ref_stats_d): Likewise.
4010         (struct gimple_df): Add vop member.  Remove global_var,
4011         call_clobbered_vars, call_used_vars, addressable_vars,
4012         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
4013         escaped and callused members.
4014         (struct ptr_info_def): Remove all members, add points-to solution
4015         member pt.
4016         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
4017         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
4018         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
4019         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
4020         (tree-ssa-alias.o): Likewise.
4021         (toplev.o): Add tree-ssa-alias.h
4022         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
4023         * gimple.c (gimple_set_bb): Fix off-by-one error.
4024         (is_gimple_reg): Do not handle memory tags.
4025         (gimple_copy): Also copy virtual operands.
4026         Delay updating the statement.  Do not reset loaded and stored syms.
4027         (gimple_set_stored_syms): Remove.
4028         (gimple_set_loaded_syms): Likewise.
4029         (gimple_call_copy_skip_args): Copy the virtual operands
4030         and mark the new statement modified.
4031         * tree-ssa-structalias.c (may_alias_p): Remove.
4032         (set_uids_in_ptset): Take the alias set to prune with as
4033         parameter.  Fold in the alias test of may_alias_p.
4034         (compute_points_to_sets): Compute whether a ptr is dereferenced
4035         in a local sbitmap.
4036         (process_constraint): Deal with &ANYTHING on the lhs, reject all
4037         other ADDRESSOF constraints on the lhs.
4038         (get_constraint_for_component_ref): Assert that we don't get
4039         ADDRESSOF constraints from the base of the reference.
4040         Properly generate UNKNOWN_OFFSET for DEREF if needed.
4041         (struct variable_info): Remove collapsed_to member.
4042         (get_varinfo_fc): Remove.
4043         (new_var_info): Do not set collapsed_to.
4044         (dump_constraint): Do not follow cycles.
4045         (dump_constraint_graph): Likewise.
4046         (build_pred_graph): Likewise.
4047         (build_succ_graph): Likewise.
4048         (rewrite_constraints): Likewise.
4049         (do_simple_structure_copy): Remove.
4050         (do_rhs_deref_structure_copy): Remove.
4051         (do_lhs_deref_structure_copy): Remove.
4052         (collapse_rest_of_var): Remove.
4053         (do_structure_copy): Re-implement.
4054         (pta_stats): New global variable.
4055         (dump_pta_stats): New function.
4056         (struct constraint_expr): Make offset signed.
4057         (UNKNOWN_OFFSET): Define special value.
4058         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
4059         (solution_set_expand): New helper function split out from ...
4060         (do_sd_constraint): ... here.
4061         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
4062         (do_ds_constraint): Likewise.
4063         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
4064         and CALLUSED = *CALLUSED.
4065         (set_union_with_increment): Make inc argument signed.
4066         (type_safe): Remove.
4067         (get_constraint_for_ptr_offset): Handle unknown and negative
4068         constant offsets.
4069         (first_vi_for_offset): Handle offsets before start.  Bail
4070         out early for offsets beyond the variable extent.
4071         (first_or_preceding_vi_for_offset): New function.
4072         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
4073         Together with ESCAPED = *ESCAPED this properly computes reachability.
4074         (find_what_var_points_to): New function.
4075         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
4076         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
4077         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
4078         pt_solutions_intersect): New functions.
4079         (compute_call_used_vars): Remove.
4080         (compute_may_aliases): New main entry into PTA computation.
4081         * gimple.h (gimple_p): New typedef.
4082         (struct gimple_statement_base): Remove references_memory_p.
4083         (struct gimple_statement_with_memory_ops_base): Remove
4084         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
4085         members.
4086         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
4087         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
4088         gimple_set_references_memory): Remove.
4089         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
4090         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
4091         New functions.
4092         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
4093         (verify_expr): Allow RESULT_DECL.
4094         (gimple_duplicate_bb): Do not copy virtual operands.
4095         (gimple_duplicate_sese_region): Adjust.
4096         (gimple_duplicate_sese_tail): Likewise.
4097         (mark_virtual_ops_in_region): Remove.
4098         (move_sese_region_to_fn): Do not call it.
4099         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
4100         and pass_simple_dse.
4101         (execute_function_todo): Handle TODO_update_address_taken,
4102         call execute_update_addresses_taken for TODO_rebuild_alias.
4103         (execute_todo): Adjust.
4104         (execute_one_pass): Init dump files early.
4105         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
4106         call-clobbered.
4107         (create_general_new_stmt): Clear vops.
4108         * tree-ssa-reassoc.c (get_rank): Adjust.
4109         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
4110         symbols for renaming.
4111         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
4112         (PARAM_AVG_ALIASED_VOPS): Likewise.
4113         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
4114         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
4115         * tree-ssa-operands.c: Simplify for new virtual operand representation.
4116         (operand_build_cmp, copy_virtual_operands,
4117         create_ssa_artificial_load_stmt, add_to_addressable_set,
4118         gimple_add_to_addresses_taken): Remove public functions.
4119         (unlink_stmt_vdef): New function.
4120
4121 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
4122
4123         * config.gcc (powerpc-*-linux*): Merge variants.
4124
4125 2009-04-02  Chao-ying Fu  <fu@mips.com>
4126             James Grosbach <james.grosbach@microchip.com>
4127
4128         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
4129         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
4130         cop0_sp_offset.
4131         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
4132         keep_interrupts_masked_p, use_debug_exception_return_p.
4133         (mips_attribute_table): Add interrupt, use_shadow_register_set,
4134         keep_interrupts_masked, use_debug_exception_return.
4135         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
4136         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
4137         New functions.
4138         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
4139         (mips_print_operand): Process COP0 registers to print $0 .. $31
4140         correctly for GAS to process.
4141         (mips_interrupt_extra_call_saved_reg_p): New function.
4142         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
4143         extra registers.
4144         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
4145         (mips_compute_frame_info): Add supports for interrupt context that
4146         includes doubleword accumulators and COP0 registers.
4147         (mips_for_each_saved_acc): New function.
4148         (mips_for_each_saved_gpr_and_fpr): Change the function name from
4149         mips_for_each_saved_reg.
4150         (mips_save_reg): Save accumulators.
4151         (mips_kernel_reg_p): A new for_each_rtx callback.
4152         (mips_expand_prologue): Support interrupt handlers.
4153         (mips_restore_reg): Restore accumulators.
4154         (mips_expand_epilogue): Support interrupt handlers.
4155         (mips_can_use_return_insn): Return false for interrupt handlers.
4156         (mips_epilogue_uses): New function.
4157         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
4158         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
4159         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
4160         cop0_move): New instructions.
4161         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
4162         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
4163         defines.
4164         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
4165         New defines.
4166         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
4167         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
4168         interrupt handlers, we use K0 as the temporary register.
4169         (EPILOGUE_USES): Change to a function call.
4170         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
4171         handlers, we use K0 as the temporary register.
4172
4173         * doc/extend.texi (Function Attributes): Document interrupt,
4174         use_shadow_register_set, keep_interrupts_masked,
4175         use_debug_exception_return for MIPS attributes.
4176
4177 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
4178
4179         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
4180         Remove a number of t-files from tmake_file.
4181         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
4182         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
4183         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
4184         target_prototype, not TARGET_PROTOTYPE.
4185         (LINK_OS_GNU_SPEC): Define.
4186         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
4187         and darwin-ldoubdle.c.
4188
4189 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
4190
4191         PR driver/39293
4192         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
4193         (cpp_options): Ditto.
4194         (default_compilers): Ditto.
4195         (display_help): Ditto.
4196         (process_command): Ditto.
4197         (do_spec_1): Ditto.
4198         (set_input): Use lbasename instead of duplicate code.
4199         (save_temps_prefix): New static for -save-temps=obj.
4200         (save_temps_length): Ditto.
4201
4202         * doc/invoke.texi (-save-temps=obj): Document new variant to
4203         -save-temps switch.
4204
4205 2009-04-02  Jeff Law  <law@redhat.com>
4206
4207         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
4208         variable.
4209
4210 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
4211
4212         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
4213         * configure: Regenerated.
4214
4215 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
4216
4217         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
4218         share the argument list.
4219
4220 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
4221
4222         Merge
4223
4224         2009-02-12  Diego Novillo  <dnovillo@google.com>
4225
4226         * varpool.c (debug_varpool): New.
4227         * cgraph.h (debug_varpool): Declare.
4228
4229 2009-04-02  Jan Hubicka  <jh@suse.cz>
4230
4231         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
4232         pass.
4233
4234 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
4235
4236         * config/i386/i386.c (ix86_abi): Move initialization to ...
4237         (override_options): Here.
4238
4239 2009-04-02  Christian Bruel  <christian.bruel@st.com>
4240
4241         * config/sh/sh.c (sh_dwarf_register_span): New function.
4242         (TARGET_DWARF_REGISTER_SPAN): Define.
4243         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
4244
4245 2009-04-02  Ira Rosen  <irar@il.ibm.com>
4246
4247         PR tree-optimization/39595
4248         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
4249         interleaved loads group is not  greater than the SLP group size.
4250
4251 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
4252
4253         * builtins.c (is_builtin_name): New.
4254         (called_as_built_in): Use is_builtin_name.
4255         * tree.h (is_builtin_name): New.
4256         * varasm.c (incorporeal_function_p): Use is_builtin_name
4257
4258 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
4259
4260         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
4261
4262 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
4263
4264         PR c++/26693
4265         * c-decl.c (clone_underlying_type): Move this ...
4266         * c-common.c (set_underlying_type): ... here.
4267         Also, make sure the function properly sets TYPE_STUB_DECL() on
4268         the newly created typedef variant type.
4269         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
4270         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
4271         points.
4272
4273 2009-04-02  Richard Guenther  <rguenther@suse.de>
4274
4275         PR tree-optimization/37221
4276         * tree-flow.h (degenerate_phi_result): Declare.
4277         * tree-ssa-dom.c (degenerate_phi_result): Export.
4278         * tree-scalar-evolution.c (analyze_initial_condition): If
4279         the initial condition is defined by a degenerate PHI node
4280         use the degenerate value.
4281
4282 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
4283
4284         PR rtl-optimization/39588
4285         * combine.c (merge_outer_ops): Do not set the constant when this
4286         is not necessary.
4287         (simplify_shift_const_1): Do not modify it either in this case.
4288
4289 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
4290
4291         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
4292         tuning is deprecated if -mtune value is set to an Itanium1 variant.
4293
4294 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
4295
4296         PR c/29027
4297         * c-lex.c (interpret_float): Default (no suffix) is double.
4298
4299 2009-04-1  Xinliang David Li  <davidxl@google.com>
4300
4301         * config/i386/i386.c (legitimate_constant_p): Recognize
4302         all one vector constant.
4303
4304 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4305
4306         * gcc/config/vax/vax.c: Add #includes to silence warnings.
4307         Change #include order to silence two warnings.
4308
4309 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4310
4311         * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
4312         (ASM_SPEC): Pass -k to the assembler for PIC code.
4313
4314 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4315
4316         * gcc/config.gcc: Add vax-*-linux* to the switch.
4317         * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
4318         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
4319
4320 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4321
4322         * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
4323         Use predicate macros instead of GET_CODE() == foo.
4324         * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
4325         ashlsi3, rotrsi3, <unnamed>): Likewise.
4326
4327 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4328
4329         * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
4330         jbbccihi, jbbccisi): Remova trailing whitespace.
4331         * gcc/config/vax/constraints.md: Likewise.
4332         * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
4333         * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
4334         * gcc/config/vax/predicates.md: Likewise.
4335         * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
4336         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
4337         * gcc/config/vax/vax.h: Likewise.
4338         * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
4339
4340 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4341
4342         * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
4343         (indirectable_address_p, adjacent_operands_p): Add spaces around
4344         braces.
4345         * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
4346
4347 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4348
4349         * gcc/config/vax/vax.c (legitimate_constant_address_p,
4350         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
4351         index_term_p, reg_plus_index_p, legitimate_address_p,
4352         vax_mode_dependent_address_p): Update comments to match functions
4353         modified by the recent int->bool conversion.
4354
4355 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4356
4357         * gcc/config/vax/builtins.md: Update copyright message.
4358         * gcc/config/vax/constraints.md: Likewise.
4359         * gcc/config/vax/netbsd-elf.h: Likewise.
4360         * gcc/config/vax/predicates.md: Likewise.
4361         * gcc/config/vax/vax-protos.h: Likewise.
4362         * gcc/config/vax/vax.c: Likewise.
4363         * gcc/config/vax/vax.h: Likewise.
4364         * gcc/config/vax/vax.md: Likewise.
4365         * gcc/config/vax/vax.opt: Likewise.
4366
4367 2009-04-01  Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
4368
4369         * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
4370         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
4371         * gcc/config/vax/constraints.md (B, R): Likewise.
4372         * gcc/config/vax/predicates.md (external_memory_operand,
4373         nonimmediate_addsub_di_operand): Likewise.
4374         * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
4375         * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
4376         untyped_call): Likewise.
4377
4378 2009-04-01  Matt Thomas <matt@3am-software.com>
4379
4380         * config/vax/predicates.md: New file.
4381         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
4382         external_const_operand, nonsymbolic_operand, external_memory_operand,
4383         indirect_memory_operand, indexed_memory_operand,
4384         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
4385         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
4386         predicate.
4387         * config/vax/constraints.md: New file.
4388         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
4389         New constraint.
4390         * config/vax/builtins.md: New file.
4391         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
4392         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
4393         jbbccisi): Define.
4394         * config/vax/vax.opt (mqmath): Add option.
4395         * config/vax/vax.md (isfx): Extend with DI.
4396         (VAXintQH, VAXintQHSD): Define.
4397         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
4398         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
4399         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
4400         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
4401         (movdi): Update constraints and use vax_output_int_move().
4402         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
4403         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
4404         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
4405         nonlocal_goto): New.
4406         (mov<mode>): Extend accepted operand types.
4407         (subdi3_old): Rename from subdi3, change update constraints and use
4408         a new implementation.
4409         * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
4410         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
4411         MOVE_RATIO, CLEAR_RATIO): Define.
4412         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
4413         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
4414         (PRINT_OPERAND): Redefine using a function instead of inlined code.
4415         * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
4416         (split_quadword_operands): Make static and really allow variable
4417         splitting.
4418         (print_operand_address): Update for PIC generation.
4419         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
4420         indexable_address_p, fixup_mathdi_operand,
4421         vax_expand_addsub_di_operands, adjacent_operands_p): New.
4422         (vax_float_literal, legitimate_constant_p,
4423         indirectable_constant_address_p, index_term_p,
4424         reg_plus_index_p): Return bool instead of int.
4425         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
4426         where needed.
4427         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
4428         generation.
4429         (vax_output_conditional_branch): Indent.
4430         (legitimate_constant_address_p, indirectable_constant_address_p,
4431         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
4432         vax_mode_dependent_address_p): Return bool instead of int, update for
4433         PIC generation.
4434         * config/vax/vax-protos.h (legitimate_constant_address_p,
4435         legitimate_constant_p, legitimate_address_p,
4436         vax_mode_dependent_address_p): Change declaration to bool.
4437         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
4438         vax_expand_addsub_di_operands, vax_output_int_subtract,
4439         vax_output_movmemsi): Declare.
4440         (split_quadword_operands, vax_float_literal): Delete declaration.
4441         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
4442         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
4443         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
4444         ASM_OUTPUT_DWARF_PCREL): Define.
4445         (ASM_SPEC): Change definition to allow PIC generation.
4446
4447 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
4448
4449         * doc/sourcebuild.texi: Update front-end requirements.
4450
4451 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4452
4453         PR target/39226
4454         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
4455         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
4456         (booldi3_internal3): Use boolean_or_operator instead of
4457         boolean_operator.
4458
4459 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
4460
4461         PR c/39605
4462         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
4463         declarator whose size is not an integer constant expression but
4464         folds to an integer constant, then treat it as a constant
4465         subsequently.
4466
4467 2009-04-01  Richard Guenther  <rguenther@suse.de>
4468
4469         * fold-const.c (fold_plusminus_mult_expr): Do not fold
4470         i * 4 + 2 to (i * 2 + 1) * 2.
4471
4472 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4473
4474         PR c/37772
4475         * c-parser.c (c_parser_asm_statement): Skip until close paren and
4476         return if c_parser_asm_string_literal returned NULL.
4477
4478 2009-04-01  Nick Clifton  <nickc@redhat.com>
4479
4480         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
4481         already defined.
4482         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
4483         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
4484         other typedefs to avoid conflicts with libgcc2.c.  Define labels
4485         to gain 16-bit bit-manipulation functions from libgcc2.c and then
4486         include it.
4487         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
4488         to gain 16-bit trapping arithmetic functions from libgcc2.c and
4489         then include it.
4490
4491 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
4492
4493         * varasm.c (default_function_rodata_section): Declare DOT as
4494         const char*.
4495
4496 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
4497             Andrey Galkin <agalkin@hypercom.com>
4498
4499         PR/39492
4500         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
4501         Make object_name unique for each process.
4502
4503 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
4504
4505         PR other/39591
4506         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
4507         addressable variables in the parallel that could go out of scope while
4508         running queued tasks.
4509
4510 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
4511
4512         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
4513         (CASE_VALUES_THRESHOLD): Redefine.
4514         * config/avr/avr.c (avr_override_options): Remove initialization of
4515         avr_case_values_threshold variable.
4516         (avr_case_values_threshold): Remove variable. Add new function.
4517         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
4518         * config/avr/avr.opt (mno-tablejump): Remove option.
4519         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
4520
4521 2009-04-01  DJ Delorie  <dj@redhat.com>
4522
4523         * varasm.c (default_function_rodata_section): Don't assume
4524         anything about where the first '.' in the section name is.
4525
4526 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
4527
4528         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
4529         rs6000_emit_stack_tie.
4530
4531 2009-03-31  Ian Lance Taylor  <iant@google.com>
4532
4533         * tree-eh.c (tree_remove_unreachable_handlers): Compare
4534         gimple_code with GIMPLE_RESX, not RESX.
4535
4536 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4537
4538         * c-common.c (c_get_ident): New.
4539         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
4540
4541 2009-04-01  Ben Elliston  <bje@au.ibm.com>
4542
4543         * config/rs6000/sysv4.opt (msdata): Improve option description.
4544
4545 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
4546
4547         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
4548         (divdf3_internal_lat): Remove.
4549         (divxf3_internal_lat): Remove.
4550         (divxf3_internal_thr): Remove.
4551         (divxf): Use divxf3_internal.
4552         * config/ia64/div.md (divsf3_internal_lat): New.
4553         (divdf3_internal_lat): New.
4554         (divxf3_internal): New.
4555
4556 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4557
4558         PR c/448
4559         * Makefile.in (USE_GCC_STDINT): Define.
4560         (stmp-int-hdrs): Install stdint.h if applicable.
4561         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
4562         if known.
4563         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
4564         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
4565         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
4566         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4567         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4568         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4569         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4570         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4571         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4572         (c_common_nodes_and_builtins): Initialize
4573         underlying_wchar_type_node.  Do not initialize
4574         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
4575         nodes for new types.
4576         (c_stddef_cpp_builtins): Define macros for new types.
4577         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
4578         Remove.
4579         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
4580         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
4581         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
4582         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
4583         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
4584         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
4585         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
4586         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
4587         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
4588         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
4589         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
4590         int16_type_node, int32_type_node, int64_type_node,
4591         uint8_type_node, uint16_type_node, c_uint32_type_node,
4592         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
4593         int_least32_type_node, int_least64_type_node,
4594         uint_least8_type_node, uint_least16_type_node,
4595         uint_least32_type_node, uint_least64_type_node,
4596         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
4597         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
4598         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
4599         uintptr_type_node): Define.
4600         * c-cppbuiltin.c (builtin_define_constants,
4601         builtin_define_type_minmax): New.
4602         (builtin_define_stdint_macros): Define more macros.
4603         (c_cpp_builtins): Define more limit macros.
4604         (type_suffix): New.
4605         (builtin_define_type_max): Define in terms of
4606         builtin_define_type_minmax.  Remove is_long parameter.  All
4607         callers changed.
4608         * config.gcc (use_gcc_stdint): Define.
4609         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
4610         Add newlib-stdint.h for generic targets.
4611         * config/glibc-stdint.h, config/newlib-stdint.h,
4612         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
4613         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
4614         * config/score/score.h (UINTPTR_TYPE): Define.
4615         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
4616         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
4617         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4618         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4619         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4620         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4621         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4622         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
4623         * config/spu/spu.h (STDINT_LONG32): Define.
4624         * configure.ac (use_gcc_stdint): Substitute.
4625         * configure: Regenerate.
4626         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
4627         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
4628         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
4629         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
4630         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
4631         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
4632         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
4633         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
4634         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
4635         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
4636         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
4637         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
4638         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
4639         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
4640         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
4641         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
4642         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
4643         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
4644         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
4645         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
4646         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
4647         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
4648         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
4649         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
4650         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
4651         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
4652         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
4653         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
4654         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
4655
4656 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
4657
4658         * loop-iv.c (suitable_set_for_replacement): Renamed from
4659         simplify_using_assignment; changed to return bool and to accept new
4660         args DEST and SRC.  Return true iff we find a source/destination pair
4661         that can be used to make a replacement, and fill SRC and DEST if so.
4662         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
4663         changed.
4664         (simplify_using_initial_values): Deal with altered regs here and track
4665         more precisely the effect they have on the validity of our expression.
4666
4667         * loop-iv.c (simplify_using_condition): A condition of the form
4668         (EQ REG CONST) can be used to simply make a substitution.
4669         (simplify_using_initial_values): Keep track of conditions we have seen
4670         and keep using them to simplify new expressions, while applying the
4671         same substitutions to them as to the expression.
4672
4673         * simplify-rtx.c (simplify_relational_operation_1): Simplify
4674         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
4675         GEU/LTU reversed.
4676
4677         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
4678         changed.  Use this when trying to improve the upper bound.
4679         Generate the comparison by using simplify_gen_relational.
4680
4681         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
4682
4683         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
4684         functions.
4685         (simplify_using_assignment, simplify_using_initial_values): Call
4686         replace_in_expr to make replacements.  Call replace_single_def_regs
4687         once on the initial version of the expression.
4688
4689 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4690
4691         PR target/27237
4692         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
4693
4694 2009-03-31  Richard Guenther  <rguenther@suse.de>
4695
4696         PR middle-end/31029
4697         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
4698         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
4699
4700 2009-03-31  Richard Guenther  <rguenther@suse.de>
4701
4702         * tree.h (div_if_zero_remainder): Declare.
4703         * fold-const.c (div_if_zero_remainder): Export.
4704         * tree-ssa-forwprop.c
4705         (forward_propagate_addr_into_variable_array_index): Handle
4706         constant array index addition outside of the variable index.
4707
4708 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4709
4710         PR target/39592
4711         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
4712         define_splits, floatunssi<mode>2): Require x87 conversions from
4713         DImode to be permitted.
4714
4715 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
4716
4717         PR preprocessor/15638
4718         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
4719
4720 2009-03-31  Richard Guenther  <rguenther@suse.de>
4721
4722         PR middle-end/23401
4723         PR middle-end/27810
4724         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
4725         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
4726         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
4727         a separate statement.
4728         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
4729         (lookup_tmp_var): Likewise.
4730         (is_gimple_formal_tmp_or_call_rhs): Remove.
4731         (is_gimple_reg_or_call_rhs): Rename to ...
4732         (is_gimple_reg_rhs_or_call): ... this.
4733         (is_gimple_mem_or_call_rhs): Rename to ...
4734         (is_gimple_mem_rhs_or_call): ... this.
4735         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
4736         DECL_GIMPLE_REG_P only if is_formal is true.
4737         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
4738         for non-proper post-modify expression gimplification.
4739         (gimplify_self_mod_expr): For post-modify expressions gimplify
4740         the lvalue to a minimal lvalue.
4741         (rhs_predicate_for): Remove formal temp case.
4742         (gimplify_modify_expr_rhs): Likewise.
4743         (gimplify_addr_expr): Use is_gimple_reg.
4744         (gimplify_expr): Remove formal temp cases.
4745         (gimple_regimplify_operands): Likewise.
4746         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
4747         and FILTER_EXPR like constants.
4748         * gimple.c (walk_gimple_op): Fix val_only initialization, use
4749         is_gimple_reg.
4750         (is_gimple_formal_tmp_rhs): Remove.
4751         (is_gimple_reg_rhs): Remove special casing.
4752         (is_gimple_mem_rhs): Fix.
4753         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
4754         (is_gimple_formal_tmp_var): Remove.
4755         (is_gimple_formal_tmp_reg): Likewise.
4756         (is_gimple_min_lval): Allow invariant component ref parts.
4757         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
4758         is_gimple_formal_tmp_reg): Remove declarations.
4759         * tree-cfg.c (verify_expr): Verify that variables with address
4760         taken do not have DECL_GIMPLE_REG_P set.
4761         * tree-mudflap.c (mf_build_check_statement_for): Use
4762         force_gimple_operand instead of gimplify_expr.
4763
4764 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
4765
4766         * modulo-sched.c (sms_schedule_by_order): Pass the actual
4767         schedulable rows to compute_split_row.
4768
4769 2009-03-31  Ben Elliston  <bje@au.ibm.com>
4770
4771         PR target/31635
4772         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
4773         OPT_mvrsave.
4774
4775 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
4776
4777         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
4778         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
4779         * configure: Regenerate.
4780         * config.in: Regenerate.
4781         * config/rs6000/rs6000.opt (mtls-markers): Add.
4782         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
4783         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
4784         (tls_ld_aix, tls_ld_sysv): Likewise.
4785         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
4786         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
4787
4788 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
4789
4790         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
4791
4792 2009-03-30  Jan Hubicka  <jh@suse.cz>
4793
4794         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
4795         out of RESX.
4796         (tree_remove_unreachable_handlers): Cleanup EH predecestor
4797         detection and label handling.
4798
4799 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4800
4801         * ira-int.h (ira_allocno): Rename left_conflicts_num to
4802         left_conflicts_size.
4803         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
4804         ALLOCNO_LEFT_CONFLICTS_SIZE.
4805
4806         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
4807         remove_allocno_from_bucket_and_push,
4808         allocno_spill_priority_compare, push_allocnos_to_stack,
4809         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
4810         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
4811         (setup_allocno_left_conflicts_num): Ditto.  Rename to
4812         setup_allocno_left_conflicts_size.
4813         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
4814         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
4815         setup_allocno_left_conflicts_size instead of
4816         setup_allocno_left_conflicts_num.
4817
4818         * ira-build.c (ira_create_allocno): Use
4819         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
4820         ALLOCNO_LEFT_CONFLICTS_NUM.
4821
4822 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
4823
4824         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
4825         instead of DF_LR_OUT.
4826
4827         * ira-lives.c (process_bb_node_lives): Ditto.
4828
4829         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
4830         instead of DF_LR_{OUT,IN}.
4831
4832         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
4833
4834         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
4835
4836 2009-03-30  Jan Hubicka  <jh@suse.cz>
4837
4838         * except.c (label_to_region_map): Fix thinko.
4839
4840 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
4841
4842         PR middle-end/38237
4843         * tree.h (tree_find_value): New declaration.
4844         * tree.c (tree_find_value): New function.
4845         * varasm.c (assemble_external): Avoid duplicate entries on lists.
4846
4847 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
4848
4849         PR debug/39563
4850         * c-decl.c (struct c_binding): Add locus field.
4851         (bind): Add locus argument, set locus field from it.
4852         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
4853         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
4854         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
4855         implicitly_declare, undeclared_variable, lookup_label,
4856         declare_label, c_make_fname_decl, c_builtin_function,
4857         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
4858         bind callers.
4859
4860 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
4861
4862         PR target/38781
4863         * config/i386/i386.c (classify_argument): Check total size of
4864         structure.
4865
4866 2009-03-30  Martin Jambor  <mjambor@suse.cz>
4867
4868         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
4869         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
4870         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
4871         respectively.
4872
4873         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
4874         seen_variable_array_ref while also traversing a union.
4875
4876         * tree-inline.c (optimize_inline_calls): Do not call
4877         cgraph_node_remove_callees.
4878         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
4879         (pass_remove_cgraph_callee_edges): New variable.
4880         * passes.c (init_optimization_passes): Add
4881         pass_remove_cgraph_callee_edges after early inlining and before all
4882         late intraprocedural passes.
4883
4884         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
4885
4886 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4887
4888         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
4889         Fix typos in names.
4890
4891 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4892
4893         * combine.c (simplify_comparison): Use have_insn_for.
4894         * dojump.c (do_jump): Likewise.
4895
4896 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4897
4898         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
4899         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
4900         sparc_compare_op0 like sparc_compare_emitted used to be handled.
4901         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
4902         instead of sparc_compare_emitted.
4903         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
4904         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
4905         instead of sparc_compare_emitted.
4906
4907 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4908
4909         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
4910         enter/exit cfglayout mode.
4911         (pass_partition_block): Require it.
4912         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
4913         (combine_instructions): Track basic blocks instead of labels.
4914         (update_cfg_for_uncondjump): New.
4915         (try_combine): Use it.  Update jumps after rescanning.
4916         (pass_combine): Require PROP_cfglayout.
4917         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
4918
4919 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4920
4921         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
4922         Provide/destroy PROP_cfglayout respectively.
4923         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
4924         * tree-pass.h (PROP_cfglayout): New.
4925
4926 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
4927
4928         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
4929         fold_convert_const_fixed_from_fixed,
4930         fold_convert_const_fixed_from_int,
4931         fold_convert_const_fixed_from_real, fold_negate_const): Do not
4932         set TREE_CONSTANT_OVERFLOW.
4933         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
4934         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
4935
4936 2009-03-30  Ira Rosen  <irar@il.ibm.com>
4937
4938         * tree-vect-loop-manip.c: New file.
4939         * tree-vectorizer.c: Update documentation and included files.
4940         (vect_loop_location): Make extern.
4941         (rename_use_op): Move to tree-vect-loop-manip.c
4942         (rename_variables_in_bb, rename_variables_in_loop,
4943         slpeel_update_phis_for_duplicate_loop,
4944         slpeel_update_phi_nodes_for_guard1,
4945         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
4946         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
4947         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
4948         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
4949         find_loop_location): Likewise.
4950         (new_stmt_vec_info): Move to tree-vect-stmts.c.
4951         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
4952         get_vectype_for_scalar_type, vect_is_simple_use,
4953         supportable_widening_operation, supportable_narrowing_operation):
4954         Likewise.
4955         (bb_in_loop_p): Move to tree-vect-loop.c.
4956         (new_loop_vec_info, destroy_loop_vec_info,
4957         reduction_code_for_scalar_code, report_vect_op,
4958         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
4959         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
4960         (vect_supportable_dr_alignment): Likewise.
4961         * tree-vectorizer.h (tree-data-ref.h): Include.
4962         (vect_loop_location): Declare.
4963         Reorganize function declarations according to the new file structure.
4964         * tree-vect-loop.c: New file.
4965         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
4966         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
4967         * tree-vect-data-refs.c: New file.
4968         * tree-vect-patterns.c (timevar.h): Don't include.
4969         * tree-vect-stmts.c: New file.
4970         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
4971         tree-vect-slp.c, tree-vect-loop.c.
4972         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
4973         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
4974         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
4975         (tree-vect-analyze.o): Remove.
4976         (tree-vect-transform.o): Likewise.
4977         (tree-vect-data-refs.o): Add rule.
4978         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
4979         tree-vect-slp.o): Likewise.
4980         (tree-vect-patterns.o): Remove redundant dependencies.
4981         (tree-vectorizer.o): Likewise.
4982         * tree-vect-slp.c: New file.
4983
4984 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4985
4986         * optc-gen.awk: Warn if an option flag has multiple different
4987         help strings.
4988
4989 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
4990
4991         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
4992         -floop-block): Document dependences on PPL, CLooG and Graphite.
4993
4994 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
4995
4996         PR rtl-optimization/323
4997         * c-common.c (c_fully_fold, convert_and_check,
4998         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
4999         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
5000         * c-common.def (EXCESS_PRECISION_EXPR): New.
5001         * c-cppbuiltin.c (builtin_define_float_constants): Define
5002         constants with enough digits for long double.
5003         * c-lex.c (interpret_float): Interpret constant with excess
5004         precision where appropriate.
5005         * c-opts.c (c_common_post_options): Set
5006         flag_excess_precision_cmdline.  Give an error for
5007         -fexcess-precision=standard for C++ for processors where the
5008         option is significant.
5009         * c-parser.c (c_parser_conditional_expression): Handle excess
5010         precision in condition.
5011         * c-typeck.c (convert_arguments): Handle arguments with excess
5012         precision.
5013         (build_unary_op): Move excess precision outside operation.
5014         (build_conditional_expr): Likewise.
5015         (build_compound_expr): Likewise.
5016         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
5017         (build_modify_expr): Handle excess precision in RHS.
5018         (convert_for_assignment): Handle excess precision in converted
5019         value.
5020         (digest_init, output_init_element, process_init_element): Handle
5021         excess precision in initializer.
5022         (c_finish_return): Handle excess precision in return value.
5023         (build_binary_op): Handle excess precision in operands and add
5024         excess precision as needed for operation.
5025         * common.opt (-fexcess-precision=): New option.
5026         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
5027         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
5028         For standard excess precision, output explicit conversion to and
5029         truncation from XFmode.
5030         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
5031         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
5032         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
5033         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
5034         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
5035         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
5036         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
5037         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
5038         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
5039         define_splits, sqrt<mode>2): Disable where appropriate for
5040         standard excess precision.
5041         * convert.c (convert_to_real): Do not shorten arithmetic to type
5042         for which excess precision would be used.
5043         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
5044         * doc/invoke.texi (-fexcess-precision=): Document option.
5045         (-mfpmath=): Correct index entry.
5046         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
5047         flag_excess_precision): New.
5048         * langhooks.c (lhd_post_options): Set
5049         flag_excess_precision_cmdline.
5050         * opts.c (common_handle_option): Handle -fexcess-precision=.
5051         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
5052         init_excess_precision): New.
5053         (lang_dependent_init_target): Call init_excess_precision.
5054         * tree.c (excess_precision_type): New.
5055         * tree.h (excess_precision_type): Declare.
5056
5057 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
5058
5059         PR c/35235
5060         * c-typeck.c (build_component_ref): Do not copy qualifiers from
5061         non-lvalue to component.
5062
5063 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
5064
5065         PR preprocessor/34695
5066         * Makefile.in (c-opts.o): Depend on c-tree.h.
5067         * c-common.c: Move down include of diagnostic.h.
5068         (done_lexing, c_cpp_error): New.
5069         * c-common.h (done_lexing): Declare.
5070         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
5071         (parse_in).
5072         * c-opts.c: Include c-tree.h.
5073         (c_common_init_options): Set preprocessor error callback.
5074         (c_common_handle_option): Do not set preprocessor
5075         inhibit_warnings, warnings_are_errors, warn_system_headers,
5076         pedantic_errors or inhibit_warnings flags.
5077         (c_common_post_options): Do not check cpp_errors (parse_in).
5078         (c_common_finish): Do not output dependencies if there were
5079         errors.  Do not check return value of cpp_finish.
5080         * c-ppoutput.c (pp_file_change): Set input_location.
5081         * c-tree.h (c_cpp_error): Declare.
5082         * diagnostic.c (diagnostic_set_info_translated): Also initialize
5083         override_column.
5084         (diagnostic_build_prefix): Check override_column.
5085         * diagnostic.h (diagnostic_info): Add override_column field.
5086         (diagnostic_override_column): Define.
5087
5088 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
5089
5090         * c-common.c (c_expand_expr, c_staticp): Remove.
5091         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
5092         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
5093         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
5094         * c-gimplify.c (gimplify_compound_literal_expr,
5095         optimize_compound_literals_in_ctor): Remove.
5096         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
5097         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
5098         * c-semantics.c (emit_local_var): Remove.
5099
5100         * langhooks-def.h (lhd_expand_expr): Remove.
5101         * langhooks.c (lhd_expand_expr): Remove.
5102         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
5103
5104         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
5105         handling from c-semantics.c; don't call into langhook.
5106         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
5107         * gimplify.c (gimplify_compound_literal_expr,
5108         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
5109         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
5110         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
5111         as was done in c-gimplify.c.
5112         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
5113         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
5114         Move from c-common.h.
5115         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
5116
5117         * tree.c (staticp): Do not call langhook.
5118         * langhooks.c (lhd_staticp): Delete.
5119         * langhooks-def.h (lhd_staticp): Delete prototype.
5120         (LANG_HOOKS_STATICP): Delete.
5121         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
5122
5123         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
5124         instead of DECL_STMTs.
5125
5126 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
5127
5128         PR c/456
5129         PR c/5675
5130         PR c/19976
5131         PR c/29116
5132         PR c/31871
5133         PR c/35198
5134         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
5135         void_type_node.
5136         (fold_call_expr): Return a NOP_EXPR from folding rather than the
5137         contained expression.
5138         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
5139         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
5140         conditional expressions for C.
5141         (decl_constant_value_for_optimization): Move from
5142         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
5143         whether optimizing and that the expression is a VAR_DECL not of
5144         array type instead of doing such checks in the caller.  Do not
5145         check pedantic.  Call gcc_unreachable for C++.
5146         * c-common.def (C_MAYBE_CONST_EXPR): New.
5147         * c-common.h (c_fully_fold, c_save_expr,
5148         decl_constant_value_for_optimization): New prototypes.
5149         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
5150         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
5151         EXPR_INT_CONST_OPERANDS): Define.
5152         * c-convert.c (convert): Strip nops from expression.
5153         * c-decl.c (groktypename): Take extra parameters expr and
5154         expr_const_operands.  Update call to grokdeclarator.
5155         (start_decl): Update call to grokdeclarator.  Add statement for
5156         expressions used in type of decl.
5157         (grokparm): Update call to grokdeclarator.
5158         (push_parm_decl): Update call to grokdeclarator.
5159         (build_compound_literal): Add parameter non_const and build a
5160         C_MAYBE_COSNT_EXPR if applicable.
5161         (grokdeclarator): Take extra parameters expr and
5162         expr_const_operands.  Track expressions used in declaration
5163         specifiers and declarators.  Fold array sizes and track whether
5164         they are constant expressions and whether they are integer
5165         constant expressions.
5166         (parser_xref_tag): Set expr and expr_const_operands fields in
5167         return value.
5168         (grokfield): Update call to grokdeclarator.
5169         (start_function): Update call to grokdeclarator.
5170         (build_null_declspecs): Set expr and expr_const_operands fields in
5171         return value.
5172         (declspecs_add_type): Handle expressions in typeof specifiers.
5173         * c-parser.c (c_parser_declspecs): Set expr and
5174         expr_const_operands fields for declaration specifiers.
5175         (c_parser_enum_specifier): Likewise.
5176         (c_parser_struct_or_union_specifier): Likewise.
5177         (c_parser_typeof_specifier): Likewise.  Update call to
5178         groktypename.  Fold expression as needed.  Return expressions with
5179         type instead of adding statements.
5180         (c_parser_attributes): Update calls to c_parser_expr_list.
5181         (c_parser_statement_after_labels): Fold expression before passing
5182         to objc_build_throw_stmt.
5183         (c_parser_condition): Fold expression.
5184         (c_parser_asm_operands): Fold expression.
5185         (c_parser_conditional_expression): Use c_save_expr.  Update call
5186         to build_conditional_expr.
5187         (c_parser_alignof_expression): Update call to groktypename.
5188         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
5189         original_code.  Fold expression argument of va_arg.  Create
5190         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
5191         argument to va_arg.  Update calls to groktypename.  Fold array
5192         index for offsetof.  Verify that first argument to
5193         __builtin_choose_expr has integer type.
5194         (c_parser_postfix_expression_after_paren_type): Update calls to
5195         groktypename and build_compound_literal.  Handle expressions with
5196         side effects in type name.
5197         (c_parser_postfix_expression_after_primary): Update call to
5198         c_parser_expr_list.  Set original_code for calls to
5199         __builtin_constant_p.
5200         (c_parser_expr_list): Take extra parameter fold_p.  Fold
5201         expressions if requested.
5202         (c_parser_objc_type_name): Update call to groktypename.
5203         (c_parser_objc_synchronized_statement): Fold expression.
5204         (c_parser_objc_receiver): Fold expression.
5205         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
5206         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
5207         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
5208         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
5209         (struct c_typespec): Add elements expr and expr_const_operands.
5210         (struct c_declspecs): Add elements expr and expr_const_operands.
5211         (groktypename, build_conditional_expr, build_compound_literal):
5212         Update prototypes.
5213         (in_late_binary_op): Declare.
5214         * c-typeck.c (note_integer_operands): New function.
5215         (in_late_binary_op): New variable.
5216         (decl_constant_value_for_broken_optimization): Move to c-common.c
5217         and rename to decl_constant_value_for_optimization.
5218         (default_function_array_conversion): Do not strip nops.
5219         (default_conversion): Do not call
5220         decl_constant_value_for_broken_optimization.
5221         (build_array_ref): Do not fold result.
5222         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
5223         result when operand is a VLA.
5224         (c_expr_sizeof_type): Update call to groktypename.  Handle
5225         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
5226         result when operand names a VLA type.
5227         (build_function_call): Update call to build_compound_literal.
5228         Only fold result for calls to __builtin_* functions.  Strip
5229         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
5230         the function designator.
5231         (convert_arguments): Fold arguments.  Update call to
5232         convert_for_assignment.
5233         (build_unary_op): Handle increment and decrement of
5234         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
5235         decrement earlier.  Fold operand of increment and decrement.
5236         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
5237         built for integer operand.  Wrap returns that are INTEGER_CSTs
5238         without being integer constant expressions or that have integer
5239         constant operands without being INTEGER_CSTs.
5240         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
5241         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
5242         result is an integer constant expression or can be used in
5243         unevaluated parts of one and avoid folding and wrap as
5244         appropriate.  Fold operands before possibly doing -Wsign-compare
5245         warnings.
5246         (build_compound_expr): Wrap result for C99 if operands can be used
5247         in integer constant expressions.
5248         (build_c_cast): Update call to digest_init.  Do not ignore
5249         overflow from casting floating-point constants to integers.  Wrap
5250         results that could be confused with integer constant expressions,
5251         null pointer constants or floating-point constants.
5252         (c_cast_expr): Update call to groktypename.  Handle expressions
5253         included in type name.
5254         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
5255         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
5256         Update calls to convert_for_assignment.
5257         (convert_for_assignment): Take new parameter
5258         null_pointer_constant.  Do not strip nops or call
5259         decl_constant_value_for_broken_optimization.  Set
5260         in_late_binary_op for conversions to boolean.
5261         (store_init_value): Update call to digest_init.
5262         (digest_init): Take new parameter null_pointer_constant.  Do not
5263         call decl_constant_value_for_broken_optimization.  pedwarn for
5264         initializers not constant expressions.  Update calls to
5265         convert_for_assignment.
5266         (constructor_nonconst): New.
5267         (struct constructor_stack): Add nonconst element.
5268         (really_start_incremental_init, push_init_level, pop_init_level):
5269         Handle constructor_nonconst and nonconst element.
5270         (set_init_index): Call constant_expression_warning for array
5271         designators.
5272         (output_init_element): Fold value.  Set constructor_nonconst as
5273         applicable.  pedwarn for initializers not constant expressions.
5274         Update call to digest_init.  Call constant_expression_warning
5275         where constant initializers are required.
5276         (process_init_element): Use c_save_expr.
5277         (c_finish_goto_ptr): Fold expression.
5278         (c_finish_return): Fold return value.  Update call to
5279         convert_for_assignment.
5280         (c_start_case): Fold switch expression.
5281         (c_process_expr_stmt): Fold expression.
5282         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
5283         ensure statement expression is not evaluated in constant expression.
5284         (build_binary_op): Track whether results are integer constant
5285         expressions or may occur in such, disable folding and wrap results
5286         as applicable.  Fold operands for -Wsign-compare warnings unless
5287         in_late_binary_op.
5288         (c_objc_common_truthvalue_conversion): Handle results folded to
5289         integer constants that are not integer constant expressions.
5290         * doc/extend.texi: Document when typeof operands are evaluated,
5291         that condition of __builtin_choose_expr is an integer constant
5292         expression, and more about use of __builtin_constant_p in
5293         initializers.
5294
5295 2009-03-29  Richard Guenther  <rguenther@suse.de>
5296
5297         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
5298         propagate addresses of array references.
5299
5300 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
5301
5302         * regmove.c (perhaps_ends_bb_p): Remove.
5303         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
5304         from INSN and check that the main loop stays within that basic block.
5305         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
5306         (regmove_forward_pass): Split out from regmove_optimize.  Use
5307         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
5308         (regmove_backward_pass): Split out from regmove_optimize.  Use
5309         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
5310         (regmove_optimize): Simplify.
5311
5312 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
5313
5314         PR target/39545
5315         * config/i386/i386.c (classify_argument): Ignore flexible array
5316         member in struct and warn ABI change.
5317
5318 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
5319
5320         * config/i386/i386-protos.h (ix86_agi_dependent): New.
5321
5322         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
5323         (ix86_adjust_cost): Updated.
5324
5325 2009-03-29  Jan Hubicka  <jh@suse.cz>
5326
5327         PR middle-end/28850
5328         * tree-pass.h (pass_cleanup_eh): New function.
5329         (remove_unreachable_regions): Break code handling RTL
5330         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
5331         that can not be reached by runtime.
5332         (can_be_reached_by_runtime): New function.
5333         (label_to_region_map): New function.
5334         (num_eh_regions): New function.
5335         (rtl_remove_unreachable_regions): New function.
5336         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
5337         (remove_eh_region): New function.
5338         * except.h: Include sbitmap and vecprim.
5339         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
5340         num_eh_regions): Declare.
5341         * passes.c (init_optimization_passes): Schedule cleanup_eh.
5342         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
5343         * tree-eh.c (tree_remove_unreachable_handlers): New function.
5344         (tree_empty_eh_handler_p): New function.
5345         (cleanup_empty_eh): New function.
5346         (cleanup_eh): New function.
5347         (pass_cleanup_eh): New function.
5348
5349 2009-03-29  Jan Hubicka  <jh@suse.cz>
5350
5351         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
5352         for removed regions.
5353
5354 2009-03-29  Jan Hubicka  <jh@suse.cz>
5355
5356         * except.c (dump_eh_tree): Dump all datastructures.
5357
5358 2009-03-29  Jan Hubicka  <jh@suse.cz>
5359
5360         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
5361         (duplicate_eh_regions_1): Likewise.
5362         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
5363         vector; call EH verification.
5364         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
5365         Be ready for region being removed.
5366
5367 2009-03-29  Jan Hubicka  <jh@suse.cz>
5368
5369         * bitmap.c (bitmap_last_set_bit): New function.
5370         * bitmap.h (bitmap_last_set_bit): Declare.
5371
5372 2009-03-29  David Ayers  <ayers@fsfe.org>
5373
5374         PR objc/27377
5375         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
5376         by calling objc_compare_types and surpress warnings about
5377         incompatible C pointers that are compatible ObjC pointers.
5378
5379 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
5380
5381         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
5382         call initialize_inline_failed.
5383         (initialize_inline_failed): Move it from here ...
5384         * cgraph.c (initialize_inline_failed): ... to here.
5385         (cgraph_create_edge): Call initialize_inline_failed rather than
5386         setting inline_failed directly.
5387
5388 2009-03-29  Ben Elliston  <bje@au.ibm.com>
5389
5390         PR target/32542
5391         * sysv4.opt (msdata): Improve comment.
5392         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
5393         * sysv4.h (SVR4_ASM_SPEC): Likewise.
5394
5395 2009-03-29  Ben Elliston  <bje@au.ibm.com>
5396
5397         PR target/30451
5398         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
5399         load and store attributes.
5400
5401 2009-03-29  Ben Elliston  <bje@au.ibm.com>
5402
5403         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
5404         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
5405         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
5406         * doc/extend.texi (X86 Built-in Functions): Add index entries for
5407         __builtin_infq and __builtin_huge_valq.
5408
5409 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
5410
5411         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
5412         atmega8m1 devices.
5413         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
5414         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
5415
5416 2009-03-28  Xinliang David Li  <davidxl@google.com>
5417
5418         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
5419         (do_dbg_cnt): New function.
5420
5421 2009-03-28  Jan Hubicka  <jh@suse.cz>
5422
5423         Merge from pretty-ipa:
5424
5425         2009-03-27  Jan Hubicka  <jh@suse.cz>
5426
5427         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
5428         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
5429         * passes.c (function_called_by_processed_nodes_p): New.
5430         * ipa-pure-const.c (check_call): Fix handling of operands.
5431         (analyze_function): Dump debug output for skipped bodies.
5432         (local_pure_const): Use function_called_by_processed_nodes_p.
5433         * dwarf2out.c (reference_to_unused): Use output.
5434         * passes.c (do_per_function_toporder): Likewise.
5435
5436         2008-11-12  Jan Hubicka  <jh@suse.cz>
5437
5438         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
5439         * ipa-pure-const.c (funct_state_d): Add can throw field; make
5440         state_set_in_source enum
5441         (check_decl): Ignore memory tags; do not set fake looping flags;
5442         dump diagnostics.
5443         (check_operand, check_tree, check_rhs_var, check_lhs_var,
5444         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
5445         (check_call, analyze_function): Rewrite.
5446         (check_stmt): New.
5447         (add_new_function): Update call of analyze_function.
5448         (generate_summary): Add call of analyze_function.
5449         (propagate): Propagate can_throw; handle state_set_in_source correctly.
5450         (local_pure_const): New function.
5451         (pass_local_pure_const): New pass.
5452         * ipa-inline.c (inline_transform): Set after_inlining.
5453         * tree-eh.c (stmt_can_throw_external): New.
5454         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
5455         work with aliasing built.
5456         * tree-flow.h (stmt_can_throw_external): New.
5457         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
5458         and local pure/const pass in early and late optimization queue.
5459
5460 2009-03-28  Martin Jambor  <mjambor@suse.cz>
5461
5462         * fold-const.c (get_pointer_modulus_and_residue): New parameter
5463         allow_func_align.
5464         (fold_binary): Allow function decl aligment consideration is the
5465         second argument is integer constant one.
5466         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
5467         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
5468         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
5469
5470 2009-03-28  Jan Hubicka  <jh@suse.cz>
5471
5472         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
5473         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
5474         * function.h (rtl_data): Add nothrow flag.
5475         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
5476         set DECL_NOTHROW for AVAILABLE functions.
5477
5478 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
5479
5480         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
5481         following vector keyword has expansion starting with pixel or bool
5482         keyword, expand vector to __vector and pixel or bool to __pixel or
5483         __bool.
5484
5485         PR c++/39554
5486         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
5487         warn_if_disallowed_function_p): Removed.
5488         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
5489         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
5490         warning_if_disallowed_function_p.
5491         * flags.h (warn_if_disallowed_function_p,
5492         warn_disallowed_functions): Removed.
5493         * common.opt (Wdisallowed-function-list=): Removed.
5494         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
5495
5496 2009-03-28  Richard Guenther  <rguenther@suse.de>
5497
5498         PR tree-optimization/38723
5499         * tree-ssa-pre.c (compute_avail): Add all default definitions to
5500         the entry block.
5501
5502 2009-03-28  Jan Hubicka  <jh@suse.cz>
5503
5504         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
5505         test introduced by my previous patch.
5506
5507 2009-03-28  Richard Guenther  <rguenther@suse.de>
5508
5509         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
5510         the PHIs value undefined.
5511
5512 2009-03-28  Jan Hubicka  <jh@suse.cz>
5513
5514         * tree-pass.h (pass_fixup_cfg): New pass.
5515         * ipa-inline.c (inline_transform): Set
5516         always_inline_functions_inlined/after_inlining.
5517         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
5518         (pass_fixup_cfg): New pass.
5519         * passes.c (init_optimization_passes): Add fixup_cfg.
5520
5521 2009-03-28  Richard Guenther  <rguenther@suse.de>
5522
5523         PR tree-optimization/38458
5524         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
5525         argument use the arguments copy-of value.
5526
5527 2009-03-28  Richard Guenther  <rguenther@suse.de>
5528
5529         PR tree-optimization/38180
5530         * tree-ssa-ccp.c (get_default_value): Simplify.
5531         (likely_value): Likewise.
5532         (surely_varying_stmt_p): Properly handle VOP case.
5533         (ccp_initialize): Likewise.
5534         (ccp_fold): Handle propagating through *&.
5535         (fold_const_aggregate_ref): Also handle decls.
5536
5537 2009-03-28  Jan Hubicka  <jh@suse.cz>
5538
5539         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
5540         * cgraph.h (cgraph_node): Likewise.
5541         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
5542         (cgraph_reset_node): Use process flag.
5543         (cgraph_mark_functions_to_output): Likewise.
5544         (cgraph_expand_function): Likewise.
5545         (cgraph_expand_all_functions): Likewise.
5546         (cgraph_output_in_order): Likewise.
5547         * dwarf2out.c (reference_to_unused): Likewise.
5548         * passes.c do_per_function_toporder): Likewise.
5549
5550 2009-03-28  Jan Hubicka  <jh@suse.cz>
5551
5552         Bring from lto-branch:
5553
5554         2008-09-03  Doug Kwan  <dougkwan@google.com>
5555
5556         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
5557         enums instead of reason strings.
5558         * cgraph.c (cgraph_create_edge): Same.
5559         (cgraph_inline_failed_string): New function.
5560         * cgraph.h (cgraph_inline_failed_t): New enum type.
5561         (cgraph_inline_failed_string): New prototype.
5562         (struct cgraph_edge): Change type of INLINED_FAILED from constant
5563         char pointer to cgraph_inline_failed_t.
5564         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
5565         (cgraph_default_inline_p): Ditto.
5566         * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
5567         to cgraph_inline_failed_t pointer.
5568         * cif-code.def: New file.
5569         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
5570         reason string.
5571         (cgraph_check_inline_limits): Change type of REASON to pointer to
5572         cgraph_inline_failed_t.  Replace reason strings with enums.
5573         (cgraph_default_inline_p): Ditto.
5574         (cgraph_recursive_inlining_p): Ditto.
5575         (update_caller_keys): Change type of FAILED_REASON to
5576         cgraph_inline_failed_t.
5577         (cgraph_set_inline_failed): Change type of REASON to pointer to
5578         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
5579         convert enums to strings for text output.
5580         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
5581         to be of type cgraph_inline_failed_t.  Replace reason strings with
5582         enums.  Call cgraph_inline_failed_string to covert enums
5583         to strings for text output.
5584         (cgraph_decide_inlining): Replace reason strings with enums.
5585         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
5586         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
5587         for text output.
5588         * tree-inline.c (expand_call_inline): Change type of REASON
5589         to cgraph_inline_failed_t.  Replace reason strings with enums.
5590         Call cgraph_inline_failed_string for text output.
5591         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
5592         (cgraph.o): Ditto.
5593
5594 2009-03-28  Jan Hubicka  <jh@suse.cz>
5595
5596         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
5597         cgraph_clone_node): Remove master clone handling.
5598         (cgraph_is_master_clone, cgraph_master_clone): Remove.
5599         * cgraph.h (master_clone): Remove.
5600         (cgraph_is_master_clone, cgraph_master_clone): Remove.
5601         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
5602         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
5603
5604 2009-03-28  Jan Hubicka  <jh@suse.cz>
5605
5606         * cgraph.c (cgraph_function_body_availability): Functions declared
5607         inline are always safe to assume that it is not going to be replaced.
5608
5609 2009-03-28  Richard Guenther  <rguenther@suse.de>
5610
5611         PR tree-optimization/38513
5612         * tree-ssa-pre.c (eliminate): Remove redundant stores.
5613         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
5614         EXC_PTR_EXPR and FILTER_EXPR.
5615         (get_ref_from_reference_ops): Likewise.
5616
5617 2009-03-28  Richard Guenther  <rguenther@suse.de>
5618
5619         PR tree-optimization/38968
5620         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
5621         Use FLOOR_MOD_EXPR to compute misalignment.
5622
5623 2009-03-28  Richard Guenther  <rguenther@suse.de>
5624
5625         PR tree-optimization/37795
5626         * tree.h (combine_comparisons): Declare.
5627         * fold-const.c (combine_comparisons): Export.
5628         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
5629         comparisons.
5630         (ifcombine_iforif): Use combine_comparisons.
5631
5632 2009-03-28  Jan Hubicka  <jh@suse.cz>
5633
5634         * tree-eh.c (inlinable_call_p): New function.
5635         (make_eh_edges): Use it.
5636         (verify_eh_edges): Use it.
5637         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
5638         * except.c (reachable_next_level): Add inlinable_function argument
5639         (sjlj_find_directly_reachable_regions): Update.
5640         (add_reachable_handler): Do not set saw_any_handlers.
5641         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
5642         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
5643         Add new inlinable call parameter.
5644         (can_throw_internal, can_throw_external): Update.
5645         * except.h (can_throw_internal_1, can_throw_external_1,
5646         foreach_reachable_handler): Update declaration.
5647
5648 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
5649
5650         * config/arm/t-arm-coff, config/h8300/coff.h,
5651         config/i386/i386-aout.h, config/i386/i386-coff.h,
5652         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
5653         config/pdp11/2bsd.h, config/rs6000/aix41.h,
5654         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
5655         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
5656         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
5657         sys-types.h: Remove.
5658         * Makefile.in: Remove protoize and fixproto support and references
5659         in comments.
5660         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
5661         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
5662         Remove.
5663         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
5664         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
5665         unprotoize$(exeext).
5666         (rest.encap): Don't depend on $(STMP_FIXPROTO)
5667         (.PHONY): Don't depend on proto.
5668         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
5669         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
5670         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
5671         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
5672         build/gen-protos.o, build/scan.o, xsys-protos.h,
5673         build/fix-header$(build_exeext), build/fix-header.o,
5674         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
5675         stmp-install-fixproto): Remove.
5676         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
5677         SYSCALLS.c or fixproto files.
5678         (install-common): Don't install protoize.
5679         (install-headers-tar, install-headers-cpio, install-headers-cp):
5680         Don't depend on $(STMP_FIXPROTO).
5681         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
5682         install fixproto files or write out fixproto settings.
5683         (uninstall): Don't uninstall protoize.
5684         * config.gcc (use_fixproto): Remove.
5685         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
5686         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
5687         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
5688         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
5689         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
5690         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
5691         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
5692         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
5693         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
5694         * config/t-vxworks (STMP_FIXPROTO): Remove.
5695         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
5696         STMP_FIXPROTO): Remove.
5697         * config.in, configure: Regenerate.
5698         * crtstuff.c (gid_t, uid_t): Don't undefine.
5699         * doc/install.texi: Change m68k-coff to m68k-elf in example.
5700         (arm-*-coff, arm-*-aout: Remove target entries.
5701         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
5702         Remove mention of AIX 4.1.
5703         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
5704         * doc/invoke.texi (Running Protoize): Remove.
5705         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
5706         (Protoize Caveats): Remove.
5707         * tsystem.h: Update comments on headers assumed to exist.
5708
5709 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
5710
5711         * genautomata.c: Add a new year to the copyright.  Add a new
5712         reference.
5713         (struct insn_reserv_decl): Add comments for member bypass_list.
5714         (find_bypass): Remove.
5715         (insert_bypass): New.
5716         (process_decls): Use insert_bypass.
5717         (output_internal_insn_latency_func): Output all bypasses with the
5718         same input insn in one switch case.
5719
5720         * rtl.def (define_bypass): Describe bypass choice.
5721         * doc/md.texi (define_bypass): Ditto.
5722
5723 2009-03-27  Richard Guenther  <rguenther@suse.de>
5724
5725         * gimplify.c (mark_addressable): Export.
5726         * tree-flow.h (mark_addressable): Declare.
5727         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
5728         * tree-ssa.c (verify_phi_args): Verify that address taken
5729         variables have TREE_ADDRESSABLE set.
5730
5731 2009-03-27  Richard Guenther  <rguenther@suse.de>
5732
5733         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
5734         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
5735         Do not mark decls TREE_ADDRESSABLE.
5736         (build_fold_addr_expr): Adjust.
5737         (fold_addr_expr): Remove.
5738         (fold_unary): Use build_fold_addr_expr.
5739         (fold_comparison): Likewise.
5740         (split_address_to_core_and_offset): Likewise.
5741         * coverage.c (tree_coverage_counter_addr): Mark the array decl
5742         TREE_ADDRESSABLE.
5743         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
5744         (gimplify_modify_expr_to_memcpy): Mark source and destination
5745         addressable.
5746         * omp-low.c (create_omp_child_function): Mark the object decl
5747         TREE_ADDRESSABLE.
5748         (lower_rec_input_clauses): Mark the var we take the address of
5749         TREE_ADDRESSABLE.
5750         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
5751
5752 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5753
5754         PR middle-end/39315
5755         * cfgexpand.c (expand_one_stack_var_at): Change alignment
5756         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
5757
5758 2009-03-27  Richard Guenther  <rguenther@suse.de>
5759
5760         PR tree-optimization/39120
5761         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
5762         constraints.
5763         (handle_lhs_call): Process return constraints.  Add escape
5764         constraints if necessary.
5765         (handle_const_call): Fill out return constraints.  Make nested
5766         case more precise.  Avoid consttmp if possible.
5767         (handle_pure_call): Fill out return constraints.  Avoid
5768         callused if possible.
5769         (find_func_aliases): Simplify call handling.
5770
5771 2009-03-27  Richard Guenther  <rguenther@suse.de>
5772
5773         PR tree-optimization/39120
5774         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
5775         as a representative.
5776         (solve_graph): Do propagate CALLUSED.
5777         (handle_pure_call): Use a scalar constraint from CALLUSED for
5778         the return value.
5779         (find_what_p_points_to): CALLUSED shall not appear in poins-to
5780         solutions.
5781
5782 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5783
5784         PR c/39323
5785         * c-common.c (handle_aligned_attribute): Properly check alignment
5786         overflow.  Use (1U << i) instead of (1 << i).
5787
5788         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
5789
5790         * expr.h (get_mem_align_offset): Updated.
5791
5792         * tree.h (tree_decl_common): Change align to "unsigned int" and
5793         move it before pointer_alias_set.
5794
5795 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5796             Jakub Jelinek  <jakub@redhat.com>
5797
5798         PR target/38034
5799         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
5800         gr_register_operand with gr_reg_or_0_operand.
5801         (cmpxchg_rel_di): Likewise.
5802         (sync_lock_test_and_set<mode>): Likewise.
5803
5804 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5805
5806         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
5807         (true_regnum): Likewise.
5808
5809         * rtlanal.c (subreg_info): Moved to ...
5810         * rtl.h (subreg_info): Here.  New.
5811         (subreg_get_info): New.
5812
5813         * rtlanal.c (subreg_get_info): Make it extern.
5814
5815 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5816
5817         PR target/39472
5818         * config/i386/i386.c (ix86_abi): New.
5819         (override_options): Handle -mabi=.
5820         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
5821         (ix86_call_abi_override): Likewise.
5822         (init_cumulative_args): Likewise.
5823         (function_arg_advance): Likewise.
5824         (function_arg_64): Likewise.
5825         (function_arg): Likewise.
5826         (ix86_pass_by_reference): Likewise.
5827         (ix86_function_value_regno_p): Likewise.
5828         (ix86_build_builtin_va_list_abi): Likewise.
5829         (setup_incoming_varargs_64): Likewise.
5830         (is_va_list_char_pointer): Likewise.
5831         (ix86_init_machine_status): Likewise.
5832         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
5833         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
5834         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
5835         (ix86_function_abi): Make it static and return enum calling_abi.
5836         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
5837         with ix86_abi.
5838         (ix86_fn_abi_va_list): Updated.
5839
5840         * config/i386/i386.h (ix86_abi): New.
5841         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
5842         (CONDITIONAL_REGISTER_USAGE): Likewise.
5843         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
5844         (machine_function): Likewise.
5845
5846         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
5847         with ix86_abi.
5848         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
5849         (STACK_BOUNDARY): Likewise.
5850         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
5851
5852         * config/i386/i386.opt (mabi=): New.
5853
5854         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
5855         return enum calling_abi.
5856         (ix86_function_type_abi): Likewise.
5857         (ix86_function_abi): Removed.
5858
5859         * doc/invoke.texi: Document -mabi= option for x86.
5860
5861 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5862
5863         * builtins.c (real_dconstp): Delete.
5864         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
5865
5866 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
5867             Jakub Jelinek  <jakub@redhat.com>
5868
5869         PR debug/37959
5870         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
5871         (gen_subprogram_die): When a function is explicit, generate the
5872         DW_AT_explicit attribute.
5873         * langhooks.h (struct lang_hooks_for_decls): Add
5874         function_decl_explicit_p langhook.
5875         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
5876         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
5877
5878 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
5879
5880         * builtins.c (fold_builtin_memory_op): Optimize memmove
5881         into memcpy if we can prove source and destination don't overlap.
5882
5883         * tree-inline.c: Include gt-tree-inline.h.
5884         (clone_fn_id_num): New variable.
5885         (clone_function_name): New function.
5886         (tree_function_versioning): Use it.
5887         * Makefile.in (GTFILES): Add tree-inline.c.
5888
5889 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
5890
5891         * BASE-VER: Change to 4.5.0.
5892
5893 2009-03-27  Xinliang David Li  <davidxl@google.com>
5894
5895         PR tree-optimization/39557
5896         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
5897
5898 2009-03-27  Xinliang David Li  <davidxl@google.com>
5899
5900         PR tree-optimization/39548
5901         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
5902         candidate check.
5903
5904 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5905
5906         * c-common.c (pointer_int_sum): Use %wd on return from
5907         tree_low_cst.
5908
5909 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
5910
5911         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
5912         on return from tree_low_cst.
5913
5914 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5915
5916         PR c++/36799
5917         * ginclude/stdarg.h (va_copy): Define also for
5918         __GXX_EXPERIMENTAL_CXX0X__.
5919
5920 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
5921
5922         PR c++/35652
5923         * builtins.h (c_strlen): Do not warn here.
5924         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
5925         * c-common.c (pointer_int_sum): Take an explicit location.
5926         Warn about offsets out of bounds.
5927         * c-common.h (pointer_int_sum): Adjust declaration.
5928
5929 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5930
5931         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
5932         markup glitch.
5933
5934 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
5935
5936         PR c++/39554
5937         * opts.c (warn_if_disallowed_function_p): Don't assume
5938         get_callee_fndecl must return non-NULL.
5939
5940 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
5941
5942         PR rtl-optimization/39522
5943         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
5944         when reg_reloaded_valid is set.
5945
5946 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5947
5948         * config/spu/divv2df3.c: New file.
5949         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
5950         (DPBIT_FUNCS): Filter out _div_df.
5951
5952 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
5953
5954         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
5955         a jump insn, count that jump in the distance to the loop start.
5956
5957 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
5958
5959         PR target/39523
5960         * config/sh/sh.c (calc_live_regs): Fix condition for global
5961         registers except PIC_OFFSET_TABLE_REGNUM.
5962
5963 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
5964
5965         PR/39518
5966         * doc/invoke.texi (-mconsole): New.
5967         (-mcygwin): New.
5968         (-mno-cygwin): New.
5969         (-mdll): New.
5970         (-mnop-fun-dllimport): New.
5971         (-mthread): New.
5972         (-mwin32): New.
5973         (-mwindows): New.
5974         (sub section "i386 and x86-64 Windows Options"): New.
5975
5976 2009-03-25  Ralf Corsépius <ralf.corsepius@rtems.org>
5977
5978         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
5979         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
5980
5981 2009-03-25  Richard Guenther  <rguenther@suse.de>
5982
5983         PR middle-end/39497
5984         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
5985         of -Wno-error.
5986
5987 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
5988
5989         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
5990         neither of haifa/selective schedulers are working.
5991
5992 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5993
5994         * doc/invoke.texi (Debugging Options): Fix description of
5995         -fno-merge-debug-strings.
5996
5997 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
5998
5999         * config/cris/libgcc.ver: New version-script.
6000         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
6001
6002         * configure.ac <GAS features, nop mnemonic>: Add pattern
6003         crisv32-*-* for "nop".
6004         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
6005         * configure: Regenerate.
6006
6007 2009-03-24  Ira Rosen  <irar@il.ibm.com>
6008
6009         PR tree-optimization/39529
6010         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
6011         mark_sym_for_renaming for the tag copied to the new vector
6012         pointer.
6013
6014 2009-03-24  Arthur Loiret  <aloiret@debian.org>
6015
6016         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
6017         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
6018         EXTRA_SPEC_FUNCTIONS.
6019         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
6020         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
6021         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
6022         -march and -mtune options.
6023
6024 2009-03-24  Ralf Corsépius <ralf.corsepius@rtems.org>
6025
6026         * config/m68k/t-rtems: Add m5329 multilib.
6027
6028 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
6029             Jakub Jelinek  <jakub@redhat.com>
6030
6031         PR debug/39524
6032         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
6033         nodes.
6034
6035 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
6036
6037         PR c/39495
6038         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
6039         instead of c_parser_expression_conv, if original_code isn't one of the
6040         4 allowed comparison codes, fail.
6041
6042 2009-03-23  Richard Guenther  <rguenther@suse.de>
6043
6044         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
6045         * tree.h (struct tree_type): Likewise.
6046         * reload.h (struct insn_chain): Likewise.
6047         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
6048         * function.h (struct function): Likewise.
6049         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
6050
6051 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
6052
6053         PR tree-optimization/39516
6054         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
6055
6056 2009-03-23 Bingfeng Mei  <bmei@broadcom.com>
6057
6058         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
6059         should be set true if BITS_PER_WORD of target is bigger than 32
6060
6061 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
6062
6063         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
6064         Translate -B-options to -rpath-link.  Correct existing
6065         rpath-link and conditionalize on !nostdlib.
6066
6067 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6068
6069         * doc/extend.texi (Function Attributes, Variable Attributes):
6070         Fix typos.
6071         * doc/invoke.texi (Debugging Options, Optimize Options)
6072         (i386 and x86-64 Options, MCore Options): Likewise.
6073
6074 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
6075
6076         PR debug/37890
6077         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
6078         it for block local namespace aliases.
6079         (gen_decl_die): Pass context_die to gen_namespace_die.
6080
6081 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
6082
6083         PR c/39495
6084         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
6085         minimum or maximum value.
6086
6087 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
6088
6089         * reginfo.c (globalize_reg): Recompute derived reg sets.
6090
6091 2009-03-19  Ozkan Sezer <sezeroz@gmail.com>
6092
6093         PR target/39063
6094         * libgcc2.c (mprotect): Do not use signed arguments for
6095         VirtualProtect, use DWORD arguments.  Also fix the 'may
6096         be used uninitialized' warning for the np variable.
6097
6098 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
6099
6100         PR target/39496
6101         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
6102         functions using regparm calling conventions when not optimizing.
6103         (ix86_function_sseregparm): Similarly for sseregparm calling
6104         conventions.
6105
6106 2009-03-19  Li Feng  <nemokingdom@gmail.com>
6107
6108         PR middle-end/39500
6109         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
6110         dependence if the first conflict is after niter iterations.
6111
6112 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
6113
6114         PR middle-end/38609
6115         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
6116         functions with dynamic stack-pointer adjustments.
6117
6118 2009-03-19  Ben Elliston  <bje@au.ibm.com>
6119
6120         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
6121         option; change to -msdata=data.
6122
6123 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6124
6125         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
6126         and -fopenmp.
6127
6128 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
6129
6130         PR target/35180
6131         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
6132
6133 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
6134
6135         * doc/invoke.texi (Code Gen Options): Expand discussion of
6136         -fno-common.
6137
6138 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
6139
6140         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
6141         * matrix-reorg.c (struct matrix_info): Likewise.
6142         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
6143         * rtl.h (struct mem_attrs): Likewise.
6144         * df.h (struct df): Likewise.
6145         * tree-data-ref.h (struct data_dependence_relation): Likewise.
6146         * ira-int.h (struct ira_allocno): Likewise.
6147         * df-scan.c (struct df_collection_rec): Likewise.
6148         * ira.c (struct equivalence): Likewise.
6149         * function.c (struct temp_slot): Likewise.
6150         * cfgloop.h (struct loop): Likewise.
6151
6152         PR debug/39485
6153         * function.c (use_register_for_decl): When not optimizing, disregard
6154         register keyword for variables with types containing methods.
6155
6156 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
6157
6158         PR middle-end/39447
6159         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
6160         (is_simple_operand): Call contains_component_ref_p before calling data
6161         reference analysis that would fail on COMPONENT_REFs.
6162
6163         * tree-vrp.c (search_for_addr_array): Fix formatting.
6164
6165 2009-03-18  Richard Guenther  <rguenther@suse.de>
6166
6167         * tree-vect-transform.c (vect_loop_versioning): Fold the
6168         generated comparisons.
6169         * tree-vectorizer.c (set_prologue_iterations): Likewise.
6170         (slpeel_tree_peel_loop_to_edge): Likewise.
6171
6172 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6173
6174         PR middle-end/37805
6175         * opts.c (print_specific_help): In addition to `undocumented',
6176         accept `separate' and `joined' flags if passed alone.  Describe
6177         output by the first matched one of those.
6178         (common_handle_option): Skip over empty strings.
6179         * gcc.c (display_help): Fix help string for `--help='.
6180         * doc/invoke.texi (Option Summary, Overall Options): With
6181         `--help=', classes and qualifiers can both be repeated, but
6182         only the latter can be negated.  One should not pass only
6183         negated qualifiers.  Fix markup and examples.
6184
6185         Revert
6186         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
6187         PR middle-end/37805
6188         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
6189         and -fhelp=separate.
6190
6191 2009-03-17  Jing Yu  <jingyu@google.com>
6192
6193         PR middle-end/39378
6194         * function.h (struct rtl_data): Move is_thunk from here...
6195         (struct function): ...to here.
6196         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
6197         * varasm.c (assemble_start_function): Change is_thunk from crtl to
6198         cfun.
6199         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
6200         cfun.
6201         (alpha_does_function_need_gp, alpha_start_function): Likewise.
6202         (alpha_output_function_end_prologue): Likewise.
6203         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
6204         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
6205         (rs6000_output_function_epilogue): Likewise.
6206         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
6207
6208 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
6209
6210         PR target/39482
6211         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
6212         from different units in a single alternative.
6213         (*truncdfsf_i387): Ditto.
6214         (*truncxfsf2_mixed): Ditto.
6215         (*truncxfdf2_mixed): Ditto.
6216
6217 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
6218
6219         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
6220         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
6221
6222         PR debug/39474
6223         * tree-ssa-live.c (remove_unused_locals): Don't remove local
6224         unused non-artificial variables when not optimizing.
6225
6226         PR debug/39471
6227         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
6228         DW_TAG_imported_module even if decl is IMPORTED_DECL with
6229         NAMESPACE_DECL in its DECL_INITIAL.
6230
6231         PR middle-end/39443
6232         * optabs.c (set_user_assembler_libfunc): New function.
6233         * expr.h (set_user_assembler_libfunc): New prototype.
6234         * c-common.c: Include libfuncs.h.
6235         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
6236         for memcmp, memset, memcpy, memmove and abort.
6237         * Makefile.in (c-common.o): Depend on libfuncs.h.
6238
6239         PR debug/39412
6240         * dwarf2out.c (gen_inlined_enumeration_type_die,
6241         gen_inlined_structure_type_die, gen_inlined_union_type_die,
6242         gen_tagged_type_instantiation_die): Removed.
6243         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
6244         do nothing.
6245
6246 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
6247
6248         PR testsuite/38526
6249         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
6250         its use.
6251         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
6252         (check-parallel-%): Ditto.
6253         (check-consistency): Ditto.
6254
6255 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
6256
6257         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
6258         local variable rhs by NULL_TREE.
6259
6260 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6261
6262         PR target/39477
6263         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
6264
6265 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6266
6267         PR target/39476
6268         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
6269
6270 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
6271
6272         PR target/39473
6273         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
6274         for ms->sysv ABI calls only in 64bit mode.
6275
6276         * config/i386/i386.md (untyped_call): Support 32bit.
6277
6278 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
6279
6280         * doc/extend.texi: Replace x86_65 with x86_64.
6281
6282 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
6283
6284         PR tree-optimization/39455
6285         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
6286         mismatches for POINTER_TYPE_P (type).
6287         (number_of_iterations_le): Likewise.
6288
6289 2009-03-16  Hariharan Sandanagobalane <hariharan@picochip.com>
6290
6291         * config/picochip/picochip.c: Removed profiling support.
6292         * config/picochip/picochip.md: Removed profiling instruction.
6293         * config/picochip/picochip.h: Removed profiling builtin.
6294
6295 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
6296
6297         * doc/install.texi (--with-host-libstdcxx): Document.
6298
6299 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
6300
6301         PR target/34299
6302         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
6303         generate a warning if the function name does not begin with
6304         "__vector" and the function has either the 'signal' or 'interrupt'
6305         attribute, from here to ...
6306         (avr_declare_function_name): ...here. New function.
6307         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
6308         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
6309
6310 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
6311
6312         PR bootstrap/39454
6313         * cse.c (fold_rtx): Don't modify original const_arg1 when
6314         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
6315         separate variable instead.
6316         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
6317         from out of range shift counts.
6318         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
6319
6320 2009-03-13  Catherine Moore  <clm@codesourcery.com>
6321
6322         * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
6323         diagnostic.h with $(DIAGNOSTIC_H).
6324
6325 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
6326
6327         PR target/39431
6328         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
6329         predicate.
6330         * config/i386/sync.md (sync_compare_and_swap<mode>,
6331         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
6332         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
6333         into a register.
6334         (sync_double_compare_and_swapdi_pic,
6335         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
6336         cmpxchg8b_pic_memory_operand instead of just memory_operand.
6337
6338 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
6339
6340         PR target/39445
6341         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
6342
6343 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
6344
6345         PR target/39327
6346         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
6347         (avx_addsubv4df3): Likewise.
6348         (*avx_addsubv4sf3): Likewise.
6349         (sse3_addsubv4sf3): Likewise.
6350
6351 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
6352
6353         PR target/38824
6354         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
6355
6356 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6357
6358         PR debug/39432
6359         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
6360         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
6361         registers for allocnos created from user-defined variables.
6362
6363 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6364
6365         PR target/39181
6366         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
6367         of non-integer mode as well.
6368
6369 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
6370
6371         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
6372         for functions for which the parameter types are unknown.
6373
6374 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
6375
6376         PR target/39137
6377         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
6378         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
6379         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
6380         * config/i386/i386.c (ix86_local_alignment): For
6381         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
6382         long long variables on the stack to avoid dynamic realignment.
6383         Allow the first argument to be a decl rather than type.
6384         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
6385
6386 2009-03-11  Nick Clifton  <nickc@redhat.com>
6387
6388         PR target/5362
6389         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
6390         options.
6391         Add description to mno-lsim option.
6392         * config/mcore/mcore.h: Remove comment about deprecated m4align
6393         option.
6394         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
6395         * doc/invoke.texi: Add description of mno-lsim and
6396         mstack-increment options.
6397
6398         * config/fr30/fr30.opt: Document the -mno-lsim option.
6399         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
6400         and -mno-lsim options.
6401
6402 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6403
6404         * fold-const.c (fold_comparison): Only call fold_inf_compare
6405         if the mode supports infinities.
6406
6407 2009-03-11  Jason Merrill  <jason@redhat.com>
6408
6409         PR debug/39086
6410         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
6411         end already did.  Notice GIMPLE_CALL modifications of the result.
6412         Don't copy debug information from an ignored decl or a decl from
6413         another function.
6414
6415 2009-03-10  Richard Guenther  <rguenther@suse.de>
6416             Nathan Froyd  <froydnj@codesourcery.com>
6417
6418         PR middle-end/37850
6419         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
6420         (__divMODE3): Likewise.
6421
6422 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
6423
6424         PR tree-optimization/39394
6425         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
6426         DECL_SIZE_UNIT of variable length FIELD_DECLs.
6427
6428 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6429
6430         * recog.c (verfiy_changes): Disallow renaming of hard regs in
6431         inline asms for register asm ("") declarations.
6432
6433 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
6434
6435         * fold-const.c (fold_unary): Fix comment.
6436
6437 2009-03-07  Jan Hubicka  <jh@suse.cz>
6438
6439         PR target/39361
6440         * tree-inline.c (setup_one_parameter): Do replacement of const
6441         argument by constant in SSA form.
6442
6443 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6444
6445         PR middle-end/38028
6446         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
6447         determine alignment passed to assign_stack_local.
6448         (assign_parms_unsplit_complex): Likewise.
6449         * except.c (sjlj_build_landing_pads): Likewise.
6450
6451 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
6452
6453         PR middle-end/39360
6454         * tree-flow.h (add_referenced_var): Return bool instead of void.
6455         * tree-dfa.c (add_referenced_var): Return result of
6456         referenced_var_check_and_insert call.
6457         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
6458         of referenced_var_check_and_insert.
6459
6460         PR debug/39372
6461         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
6462         (gen_variable_die): Emit DW_AT_location on abstract static variable's
6463         DIE, don't emit it if abstract origin already has it.
6464         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
6465         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
6466
6467 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
6468
6469         * genpreds.c (needs_variable): Fix parentheses at variable name
6470         detection.
6471         (write_tm_constrs_h): Indent generated code.
6472
6473 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6474
6475         * doc/extend.texi (Function Attributes): Add documentation
6476         for isr attributes.
6477
6478 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
6479
6480         PR debug/39387
6481         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
6482         take locus from its DECL_SOURCE_LOCATION instead of input_location.
6483
6484 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
6485
6486         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
6487         the loop as bad.
6488
6489 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
6490
6491         PR debug/39379
6492         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
6493         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
6494
6495 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
6496
6497         * config/i386/i386.md (R8_REG, R9_REG): New constants.
6498         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
6499         constants instead of magic numbers.
6500         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
6501         (QI_REG_P): Ditto.
6502         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
6503         (x86_64_ms_abi_int_parameter_registers): Ditto.
6504         (x86_64_int_return_registers): Ditto.
6505         (ix86_maybe_switch_abi): Ditto.
6506         (ix86_expand_call): Ditto for clobbered_registers array.
6507         (ix86_hard_regno_mode_ok): Ditto.
6508         (x86_extended_QIreg_mentioned_p): Ditto.
6509
6510 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
6511
6512         PR tree-optimization/39349
6513         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
6514
6515         * combine.c (gen_lowpart_for_combine): Use omode when generating
6516         clobber.
6517
6518 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
6519
6520         PR rtl-optimization/39235
6521         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
6522
6523 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
6524
6525         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
6526
6527 2009-03-04  Richard Guenther  <rguenther@suse.de>
6528
6529         PR tree-optimization/39362
6530         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
6531         that occur in abnormal PHIs should be varying.
6532
6533 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
6534
6535         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
6536         Extend comments.
6537         (simple_iv):  Take loop as an argument instead of statement.
6538         * tree-scalar-evolution.h (simple_iv): Declaration changed.
6539         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
6540         to simple_iv.
6541         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
6542         Ditto.
6543         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
6544         * matrix-reorg.c (analyze_transpose): Ditto.
6545         * tree-data-ref.c (dr_analyze_innermost): Ditto.
6546         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
6547         * tree-predcom.c (ref_at_iteration): Ditto.
6548         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
6549
6550 2009-03-04  Richard Guenther  <rguenther@suse.de>
6551
6552         PR tree-optimization/39358
6553         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
6554         escaped_id and callused_id.
6555         (solve_graph): Likewise.
6556
6557 2009-03-04  Richard Guenther  <rguenther@suse.de>
6558
6559         PR tree-optimization/39339
6560         * tree-sra.c (try_instantiate_multiple_fields): Make it
6561         no longer ICE on the above.
6562
6563 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
6564
6565         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
6566         that fits within Pmode.
6567
6568 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
6569
6570         PR middle-end/10109
6571         * tm.texi (LIBCALL_VALUE): Update description.
6572
6573 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
6574
6575         PR middle-end/34443
6576         * doc/extend.texi (section): Update description.
6577
6578 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
6579
6580         PR middle-end/39345
6581         * tree-inline.c (remapped_type): New.
6582         (can_be_nonlocal): Call remapped_type instead of remap_type.
6583
6584 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
6585
6586         PR fortran/39354
6587         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
6588         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
6589
6590 2009-03-03  Richard Guenther  <rguenther@suse.de>
6591
6592         PR middle-end/39272
6593         * tree.c (tree_nonartificial_location): New function.
6594         * tree.h (tree_nonartificial_location): Declare.
6595         * builtins.c (expand_builtin_memory_chk): Provide location
6596         of the call location for artificial function pieces.
6597         (maybe_emit_chk_warning): Likewise.
6598         (maybe_emit_sprintf_chk_warning): Likewise.
6599         (maybe_emit_free_warning): Likewise.
6600         * expr.c (expand_expr_real_1): Likewise.
6601
6602 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
6603
6604         PR tree-optimization/39343
6605         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
6606         COMPONENT_REF t has ARRAY_TYPE.
6607
6608 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
6609
6610         PR middle-end/39335
6611         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
6612         when the type precision of the induction variable should be
6613         larger than the type precision of nit.
6614         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
6615         * graphite.c (graphite_loop_normal_form): Same.
6616         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
6617
6618 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
6619
6620         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
6621         (*call_1_rex64_ms_sysv): Use named constants instead of magic
6622         numbers to describe clobbered registers.
6623         (*call_value_0_rex64_ms_sysv): Ditto.
6624         * config/i386/mmx.md (mmx_emms): Ditto.
6625         (mmx_femms): Ditto.
6626
6627 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
6628
6629         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
6630         of ABI_64.
6631
6632 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6633
6634         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
6635         (spu_section_type_flags): New function.
6636
6637 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
6638
6639         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
6640         reg_class_contents of FLOAT_REGS into a temporary.
6641
6642 2009-03-02  Richard Guenther  <rguenther@suse.de>
6643             Ira Rosen  <irar@il.ibm.com>
6644
6645         PR tree-optimization/39318
6646         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
6647         information to the vectorized statement.
6648
6649 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
6650
6651         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
6652         variable.  Use defined names instead of magic constants for REX SSE
6653         registers.
6654
6655 2009-03-01  Richard Guenther  <rguenther@suse.de>
6656
6657         PR tree-optimization/39331
6658         * omp-low.c (lower_send_shared_vars): Do not receive new
6659         values for the reference of DECL_BY_REFERENCE parms or results.
6660
6661 2009-03-01  Jan Hubicka  <jh@suse.cz>
6662
6663         PR debug/39267
6664         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
6665         BLOCK_NONLOCALIZED_VAR): New macros.
6666         (tree_block): Add nonlocalized_vars.
6667         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
6668         gen_decl_die): Add origin argument.  Allow generation of die with
6669         origin at hand only.
6670         (gen_member_die, gen_type_die_with_usage, force_decl_die,
6671         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
6672         of gen_*.
6673         (gen_block_die): Fix checking for unused blocks.
6674         (process_scope_var): Break out from .... ; work with origins only.
6675         (decls_for_scope) ... here; process nonlocalized list.
6676         (dwarf2out_ignore_block): Look for nonlocalized vars.
6677         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
6678         vars.
6679         (dump_scope_block): Dump them.
6680         * tree-inline.c (remap_decls): Handle nonlocalized vars.
6681         (remap_block): Likewise.
6682         (can_be_nonlocal): New predicate.
6683         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
6684
6685 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6686
6687         * configure: Regenerate.
6688
6689 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6690
6691         * optc-gen.awk: No need to duplicate option flags twice.
6692         Reuse help texts for duplicate options which do not have any.
6693
6694         * gcc.c (display_help): Document --version.
6695
6696         * gcc.c (main): If print_help_list and verbose_flag, ensure
6697         driver output comes before subprocess output.
6698
6699         * optc-gen.awk: Assign all remaining fields to help string,
6700         space-separated, for multi-line help in *.opt.
6701
6702         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
6703         -Wno-pedantic-ms-format is for MinGW targets only.
6704
6705         * doc/options.texi (Option file format): Fix bad indentation,
6706         restoring dropped sentence.
6707
6708 2009-02-28  Jan Hubicka  <jh@suse.cz>
6709
6710         * tree-inline.c (tree_function_versioning): Output debug info.
6711
6712 2009-02-28  Jan Hubicka  <jh@suse.cz>
6713
6714         PR debug/39267
6715         * tree-inline.c (setup_one_parameter): Do not copy propagate
6716         arguments when not optimizing.
6717
6718 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
6719
6720         PR target/39327
6721         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
6722         (avx_addsubv4df3): Likewise.
6723         (*avx_addsubv4sf3): Likewise.
6724         (sse3_addsubv4sf3): Likewise.
6725         (*avx_addsubv2df3): Likewise.
6726         (sse3_addsubv2df3): Likewise.
6727         (avx_unpckhps256): Correct item selectors.
6728         (avx_unpcklps256): Likewise.
6729         (avx_unpckhpd256): Likewise.
6730         (avx_unpcklpd256): Likewise.
6731
6732 2009-02-28  Jan Hubicka  <jh@suse.cz>
6733
6734         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
6735         static vars.
6736         (copy_arguments_for_versioning): If var is declared don't declare it.
6737         (tree_function_versioning): First setup substitutions and then copy
6738         args.
6739
6740 2009-02-27  Jan Hubicka  <jh@suse.cz>
6741
6742         PR debug/39267
6743         * cgraph.h (varpool_output_debug_info): Remove.
6744         * cgraphunit.c (varpool_output_debug_info): Remove.
6745         * dwarf2out.c (deferred_locations_struct): New struct
6746         (deferred_locations): New type.
6747         (deferred_locations_list): New static var.
6748         (deffer_location): New function.
6749         (gen_variable_die): Use it.
6750         (decls_for_scope): Output info on local static vars.
6751         (dwarf2out_finish): Process deferred locations.
6752         * varpool.c (varpool_output_debug_info): Remove.
6753
6754 2009-02-27  Jan Hubicka  <jh@suse.cz>
6755
6756         PR debug/39267
6757         * tree.h (TREE_PROTECTED): Fix comment.
6758         (BLOCK_HANDLER_BLOCK): Remove.
6759         (struct tree_block): Remove handler_block add body_block.
6760         (inlined_function_outer_scope_p): New.
6761         (is_body_block): Remove.
6762         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
6763         * dwarf2out.c (is_inlined_entry_point): Remove.
6764         (add_high_low_attributes): Use inlined_function_outer_scope_p.
6765         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
6766         code.
6767         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
6768         * gimplify.c (gimplify_expr): Gimplify body blocks.
6769         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
6770         block with multiple subblocks.
6771         (dump_scope_block): Prettier output; dump more flags and info.
6772         (dump_scope_blocks): New.
6773         (remove_unused_locals): Use dump_scope_blocks.
6774         * tree-flow.h (dump_scope_blocks): Declare.
6775         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
6776         * stmt.c (is_body_block): Remove.
6777         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
6778         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
6779
6780 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
6781
6782         PR middle-end/39308
6783         * graphite.c (graphite_loop_normal_form): Do not call
6784         number_of_iterations_exit from a gcc_assert.
6785
6786 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6787
6788         * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
6789         jumps if COND is NULL.
6790         (find_cond_jump): New function.
6791         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
6792         * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
6793
6794 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
6795
6796         * config/alpha/alpha.h (alpha_expand_mov): Return false if
6797         force_const_mem returns NULL_RTX.
6798
6799 2009-02-26  Jan Hubicka  <jh@suse.cz>
6800
6801         PR debug/39267
6802         * cgraph.h (varpool_output_debug_info): Remove.
6803         * cgraphunit.c (varpool_output_debug_info): Remove.
6804         * dwarf2out.c (deferred_locations_struct): New struct
6805         (deferred_locations): New type.
6806         (deferred_locations_list): New static var.
6807         (deffer_location): New function.
6808         (gen_variable_die): Use it.
6809         (decls_for_scope): Output info on local static vars.
6810         (dwarf2out_finish): Process deferred locations.
6811         * varpool.c (varpool_output_debug_info): Remove.
6812
6813 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
6814
6815         PR rtl-optimization/39241
6816         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
6817         to subreg_offset_representable_p.
6818
6819 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
6820
6821         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
6822         execute function prototype.  Get f and nregs from max_reg_num
6823         and get_insns.  Remove the first backward pass as it's dead,
6824         guard the forward pass by flag_expensive_optimizations.
6825         (rest_of_handle_regmove): Delete.
6826         (pass_regmove): Replace it with regmove_optimize.
6827
6828 2009-02-25  Martin Jambor  <mjambor@suse.cz>
6829
6830         PR tree-optimization/39259
6831         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
6832         calls_alloca function flags.
6833         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
6834         calls are detected.
6835
6836 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
6837
6838         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
6839         flags_set_1_rtx, flags_set_1_set): Delete.
6840         (regmove_optimize): Do not call mark_flags_life_zones.
6841
6842 2009-02-24  Julian Brown  <julian@codesourcery.com>
6843
6844         PR target/35965
6845         * config/arm/arm.c (require_pic_register): Only set
6846         cfun->machine->pic_reg once per function.
6847
6848 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
6849
6850         * doc/invoke.texi (Link Options): Document an easier way to pass
6851         options that take arguments to the GNU linker using -Xlinker and -Wl.
6852
6853 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
6854
6855         PR target/33785
6856         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
6857
6858 2009-02-24  Richard Guenther  <rguenther@suse.de>
6859
6860         PR debug/39285
6861         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
6862
6863 2009-02-24  Richard Guenther  <rguenther@suse.de>
6864             Zdenek Dvorak  <ook@ucw.cz>
6865
6866         PR tree-optimization/39233
6867         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
6868         from converting them to a generic type.
6869
6870 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
6871
6872         PR tree-optimization/39260
6873         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
6874         contains a condition with a real type.
6875         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
6876
6877 2009-02-23  Jason Merrill  <jason@redhat.com>
6878
6879         PR c++/38880
6880         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
6881         narrowing_initializer_constant_valid_p.
6882         (narrowing_initializer_constant_valid_p): Don't return
6883         null_pointer_node for adding a pointer to itself.
6884
6885 2009-02-23  Jan Hubicka  <jh@suse.cz>
6886
6887         PR c/12245
6888         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
6889         resizing.
6890
6891 2009-02-23  Jan Hubicka  <jh@suse.cz>
6892
6893         PR tree-optimization/37709
6894         * tree.c (block_ultimate_origin): Move here from dwarf2out.
6895         * tree.h (block_ultimate_origin): Declare.
6896         * dwarf2out.c (block_ultimate_origin): Move to tree.c
6897         * tree-ssa-live.c (remove_unused_scope_block_p):
6898         Eliminate blocks containig no instructions nor live variables nor
6899         nested blocks.
6900         (dump_scope_block): New function.
6901         (remove_unused_locals): Enable removal of dead blocks by default;
6902         enable dumping at TDF_DETAILS.
6903
6904 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6905
6906         * config/i386/i386.c (classify_argument): Don't allow COImode
6907         and OImode.
6908         (function_arg_advance_32): Don't allow OImode.
6909         (function_arg_32): Likewise.
6910         (function_value_32): Likewise.
6911         (return_in_memory_32): Likewise.
6912         (function_arg_64): Remove OImode comment.
6913
6914 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6915
6916         PR target/39261
6917         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
6918         ix86_expand_vector_set for V4DImode in 64bit mode only.
6919         (ix86_expand_vector_init_one_var): Likewise.
6920
6921 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
6922
6923         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
6924
6925 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
6926
6927         PR bootstrap/39257
6928         * loop-iv.c: Revert last change.
6929         * emit-rtl.c: Likewise.
6930
6931 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
6932
6933         PR target/39256
6934         * config/i386/i386.c (type_natural_mode): Remove an extra
6935         space in the warning message.
6936         (function_value_32): Handle 32-byte vector modes.
6937         (return_in_memory_32): Likewise.
6938
6939 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
6940
6941         * loop-iv.c (truncate_value): New function.
6942         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
6943         of lowpart_subreg.
6944         (lowpart_subreg): Move to...
6945         * emit-rtl.c: ...here.
6946
6947 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
6948
6949         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
6950         accidental and undocumented change at revision 140860.
6951
6952 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
6953
6954         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
6955         take gimple_seq * arguments.
6956         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
6957         types_compatible_p langhook.
6958
6959 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
6960             Joseph Myers  <joseph@codesourcery.com>
6961
6962         * config/arm/arm.c (arm_builtin_va_list): New function.
6963         (arm_expand_builtin_va_start): Likewise.
6964         (arm_gimplify_va_arg_expr): Likewise.
6965         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
6966         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
6967         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
6968         (va_list_type): New variable.
6969         (arm_mangle_type): Mangle va_list_type appropriately.
6970
6971 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
6972
6973         PR middle-end/39157
6974         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
6975         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
6976         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
6977         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
6978         parameter to 1000 for -O1 by default.
6979         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
6980         parameter.
6981         * loop-invariant.c: Include params.h.
6982         (move_loop_invariants): Don't call move_single_loop_invariants on
6983         very large loops.
6984
6985 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
6986
6987         * calls.c (emit_library_call_value_1): Use slot_offset instead of
6988         offset when calculating bounds for indexing stack_usage_map.  Fixes
6989         a buffer overflow with certain target setups.
6990
6991 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
6992
6993         PR target/39240
6994         * calls.c (expand_call): Clear try_tail_call if caller and callee
6995         disagree in promotion of function return value.
6996
6997 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
6998
6999         PR target/39175
7000         * c-common.c (c_determine_visibility): If visibility changed and
7001         DECL_RTL has been already set, call make_decl_rtl to update symbol
7002         flags.
7003
7004 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
7005
7006         PR c++/39188
7007         * varasm.c (assemble_variable): Don't check DECL_NAME when
7008         globalizing a variable.
7009
7010 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
7011
7012         PR c/38483
7013         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
7014         expression before any __builtin_trap call.
7015         * c-typeck.c (build_function_call): Convert and check function
7016         arguments before generating a call to a trap.  Evaluate the
7017         function arguments before the trap.
7018
7019 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
7020
7021         PR target/39228
7022         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
7023         (UNSPEC_FXAM_MEM): New unspec.
7024         (fxam<mode>2_i387_with_temp): New insn and split pattern.
7025         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
7026         memory using fxam<mode>2_i387_with_temp to remove excess precision.
7027
7028 2009-02-19  Richard Guenther  <rguenther@suse.de>
7029
7030         PR tree-optimization/39207
7031         PR tree-optimization/39074
7032         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
7033         storedanything_tree): New.
7034         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
7035         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
7036         (build_succ_graph): Add edges from STOREDANYTHING to all
7037         non-direct nodes.
7038         (init_base_vars): Initialize STOREDANYTHING.
7039         (compute_points_to_sets): Free substitution info after
7040         building the succ graph.
7041         (ipa_pta_execute): Likewise.
7042
7043         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
7044         field.
7045         (do_ds_constraint): Do not add to special var or non-pointer
7046         field solutions.
7047         (type_could_have_pointers): Split out from ...
7048         (could_have_pointers): ... here.  For arrays use the element type.
7049         (create_variable_info_for): Initialize may_have_pointers.
7050         (new_var_info): Likewise.
7051         (handle_lhs_call): Make the HEAP variable unknown-sized.
7052         (intra_create_variable_infos): Use a type with pointers for
7053         PARM_NOALIAS, make it unknown-sized.
7054
7055 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
7056
7057         PR target/39224
7058         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
7059
7060 2009-02-18  Jason Merrill  <jason@redhat.com>
7061
7062         PR target/39179
7063         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
7064         value if DECL_EXTERNAL.
7065         * tree-sra.c (sra_walk_gimple_assign): Likewise.
7066         * target.h (gcc_target::binds_local_p): Clarify "module".
7067         * tree.h (TREE_PUBLIC): Clarify "module".
7068
7069 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
7070
7071         PR target/38891
7072         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
7073         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
7074
7075 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
7076
7077         PR target/39082
7078         * c.opt (Wabi): Support C and ObjC.
7079         (Wpsabi): New.
7080
7081         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
7082
7083         * config/i386/i386.c (classify_argument): Warn once about the ABI
7084         change when passing union with long double.
7085
7086         * doc/invoke.texi: Update -Wabi for warning psABI changes.
7087
7088 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
7089
7090         PR c/35447
7091         * c-parser.c (c_parser_compound_statement): Always enter and leave
7092         a scope.
7093
7094 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7095
7096         PR target/34587
7097         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
7098
7099 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
7100
7101         PR tree-optimization/36922
7102         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
7103         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
7104         Likewise.
7105
7106 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
7107
7108         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
7109         to 0 for EABI64.
7110
7111 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
7112
7113         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
7114
7115 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
7116
7117         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
7118         tree sharing.
7119
7120 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
7121             Richard Sandiford  <rdsandiford@googlemail.com>
7122
7123         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
7124         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
7125         (loongson_biadd): ...this.
7126
7127 2009-02-17  Richard Guenther  <rguenther@suse.de>
7128
7129         PR tree-optimization/39202
7130         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
7131         a var make sure to follow existing collapses.
7132
7133 2009-02-17  Richard Guenther  <rguenther@suse.de>
7134
7135         PR middle-end/39214
7136         * langhooks.c (lhd_print_error_function): Check for NULL block.
7137
7138 2009-02-17  Richard Guenther  <rguenther@suse.de>
7139
7140         PR tree-optimization/39204
7141         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
7142         of the PHI arg.
7143
7144 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
7145
7146         * config/soft-fp/double.h: Update from glibc CVS.
7147
7148 2009-02-17  Richard Guenther  <rguenther@suse.de>
7149
7150         PR tree-optimization/39207
7151         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
7152         strict-aliasing warnings for pointers pointing to NULL.
7153
7154 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
7155
7156         PR c/35446
7157         * c-parser.c (c_parser_braced_init): Call pop_init_level when
7158         skipping until next close brace.
7159
7160 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
7161
7162         PR target/37049
7163         * config/i386/i386.c (ix86_expand_push): Set memory alignment
7164         to function argument boundary.
7165
7166 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
7167
7168         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
7169         in the lea_add. Reload eventually constraints it properly.
7170         * config/picochip/constraints.md : Remove the target constraint
7171         "b", since it is not needed anymore.
7172
7173 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
7174
7175         * gthr-dce.h: Uglify function parameter and local variable names.
7176         * gthr-gnat.h: Likewise.
7177         * gthr-mipssde.h: Likewise.
7178         * gthr-nks.h: Likewise.
7179         * gthr-posix95.h: Likewise.
7180         * gthr-posix.h: Likewise.
7181         * gthr-rtems.h: Likewise.
7182         * gthr-single.h: Likewise.
7183         * gthr-solaris.h: Likewise.
7184         * gthr-tpf.h: Likewise.
7185         * gthr-vxworks.h: Likewise.
7186         * gthr-win32.h: Likewise.
7187
7188 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
7189
7190         PR target/39196
7191         * config/i386/i386.md: Restrict the new peephole2 to move
7192         between MMX/SSE registers.
7193
7194 2009-02-15  Richard Guenther  <rguenther@suse.de>
7195
7196         Revert
7197         2009-02-13  Richard Guenther  <rguenther@suse.de>
7198
7199         * configure.ac: Enable LFS.
7200         * configure: Re-generate.
7201         * config.in: Likewise.
7202
7203 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7204
7205         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
7206         spu_srqwbyte, spu_srqwbytebc): Define.
7207         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
7208         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
7209         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
7210         "shrqby_<mode>"): New insn-and-split patterns.
7211         * config/spu/spu.c (expand_builtin_args): Determine and return
7212         number of operands using spu_builtin_description data.
7213         (spu_expand_builtin_1): Use it.
7214
7215 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
7216
7217         PR target/38056
7218         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
7219         TARGET_CONST_GP.
7220
7221 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
7222
7223         PR target/39149
7224         * config/i386/i386.c (override_options): Correct warning
7225         messages for -malign-loops, -malign-jumps and -malign-functions.
7226
7227 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
7228
7229         PR target/39152
7230         * config/i386/i386.md: Restrict the new peephole2 to move
7231         between the general purpose registers.
7232
7233 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
7234
7235         PR target/39162
7236         * config/i386/i386.c (type_natural_mode): Add a new argument.
7237         Return the original mode and warn ABI change if vector size is 32byte.
7238         (function_arg_advance): Updated.
7239         (function_arg): Likewise.
7240         (ix86_function_value): Likewise.
7241         (ix86_return_in_memory): Likewise.
7242         (ix86_sol10_return_in_memory): Likewise.
7243         (ix86_gimplify_va_arg): Likewise.
7244         (function_arg_32): Don't warn ABX ABI change here.
7245         (function_arg_64): Likewise.
7246
7247 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
7248
7249         * loop-iv.c (implies_p): In the final case, test that operands 0
7250         of the two comparisons match.
7251
7252         * config/bfin/bfin.c (find_prev_insn_start): New function.
7253         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
7254         (find_next_insn_start): Move.
7255
7256 2009-02-13  Richard Guenther  <rguenther@suse.de>
7257
7258         * configure.ac: Enable LFS.
7259         * configure: Re-generate.
7260         * config.in: Likewise.
7261
7262 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
7263
7264         PR c/35444
7265         * c-parser.c (c_parser_parms_list_declarator): Discard pending
7266         sizes on syntax error after some arguments have been parsed.
7267
7268 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
7269
7270         * doc/invoke.texi (-fira): Remove.
7271
7272 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7273
7274         * caller-save.c: Replace regclass.c with reginfo.c in comments.
7275         * recog.c: Likewise.
7276         * rtl.h: Likewise.
7277
7278 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
7279
7280         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
7281         (umul_ppmm): Likewise.
7282         (count_leading_zeros): Likewise.
7283         (count_trailing_zeros): Likewise.
7284         (UMUL_TIME): Likewise.
7285
7286 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7287
7288         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
7289         soft-fp/t-softfp to tmake_file.
7290
7291         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
7292         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
7293         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
7294         IA64_BUILTIN_INFQ]: New.
7295         (ia64_init_builtins): Initialize __builtin_infq,
7296         __builtin_fabsq and __builtin_copysignq if not HPUX.
7297         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
7298         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
7299
7300         * config/ia64/lib1funcs.asm (__divtf3): Define only if
7301         SHARED is defined.
7302         (__fixtfti): Likewise.
7303         (__fixunstfti): Likewise.
7304         (__floattitf): Likewise.
7305
7306         * config/ia64/libgcc-glibc.ver: New.
7307         * config/ia64/t-fprules-softfp: Likewise.
7308         * config/ia64/sfp-machine.h: Likewise.
7309
7310         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
7311         (LIBGCC2_TF_CEXT): Likewise.
7312         (TF_SIZE): Likewise.
7313         (TARGET_INIT_LIBFUNCS): Likewise.
7314
7315         * config/ia64/t-glibc (SHLINB_MAPFILES):
7316         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
7317
7318 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
7319
7320         * config/i386/i386.c (construct_container): Rewrite processing
7321         BLKmode with X86_64_SSE_CLASS.
7322
7323 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
7324
7325         PR target/39152
7326         * config/i386/i386.md: Replace simplify_replace_rtx with
7327         replace_rtx in the new peephole2.
7328
7329 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
7330
7331         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
7332         loop unrolling do not happen at -O2.
7333
7334 2009-02-12  Michael Matz  <matz@suse.de>
7335
7336         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
7337
7338 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
7339
7340         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
7341         for -g3.
7342
7343 2009-02-12  Ben Elliston  <bje@au.ibm.com>
7344
7345         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
7346         patterns when updating the back chain.  Missed in the 2009-02-10
7347         change.
7348
7349 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
7350
7351         * doc/extend.texi (Decimal Floating Types): Update identifier of
7352         draft TR and list of missing support.
7353
7354 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
7355
7356         PR middle-end/39154
7357         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
7358         bit to variable length decl's flags, add it also to its
7359         pointer replacement variable.
7360
7361 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
7362             Jakub Jelinek  <jakub@redhat.com>
7363
7364         PR target/39118
7365         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
7366         (memory_blockage): New expander.
7367         (*memory_blockage): New insn pattern.
7368         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
7369         instead of general blockage at the end of function prologue when
7370         frame pointer is used to access red zone area.  Do not emit blockage
7371         when profiling, it is emitted in generic code.
7372         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
7373         function epilogue when frame pointer is used to access red zone area.
7374
7375 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
7376
7377         PR target/38824
7378         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
7379         by arithmetic with memory operands.
7380         * config/i386/predicates.md (commutative_operator): New.
7381
7382 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
7383
7384         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
7385         bulleted lists.
7386
7387 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
7388
7389         * alias.h (record_alias_subset): Declare.
7390         * alias.c (record_alias_subset): Make global.
7391
7392 2009-02-10  Nick Clifton  <nickc@redhat.com>
7393
7394         * tree-parloops.c: Change license to GPLv3.
7395         * ipa-struct-reorg.c: Change license to GPLv3.
7396         * ipa-struct-reorg.h: Change license to GPLv3.
7397
7398 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
7399
7400         PR c/39084
7401         * c-decl.c (start_struct): Return NULL on error.
7402
7403 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
7404
7405         PR middle-end/39124
7406         * cfgloopmanip.c (remove_path): Call remove_bbs after
7407         cancel_loop_tree, not before it.
7408
7409         PR target/39139
7410         * function.h (struct function): Add has_local_explicit_reg_vars bit.
7411         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
7412         VAR_DECLs were seen.
7413         * tree-ssa-live.c (remove_unused_locals): Recompute
7414         cfun->has_local_explicit_reg_vars.
7415         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
7416         copies or clearings if cfun->has_local_explicit_reg_vars.
7417
7418 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
7419
7420         PR target/39118
7421         * config/i386/i386.c (expand_prologue): Emit blockage at the end
7422         of function prologue when frame pointer is used to access
7423         red zone area.
7424
7425 2009-02-10  Richard Guenther  <rguenther@suse.de>
7426
7427         PR middle-end/39127
7428         * gimplify.c (gimple_regimplify_operands): Always look if
7429         we need to create a temporary.
7430
7431 2009-02-10  Richard Guenther  <rguenther@suse.de>
7432
7433         PR tree-optimization/39132
7434         * tree-loop-distribution.c (todo): New global var.
7435         (generate_memset_zero): Trigger TODO_rebuild_alias.
7436         (tree_loop_distribution): Return todo.
7437
7438 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
7439
7440         PR target/39119
7441         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
7442         (x86_64_reg_class_name): Removed.
7443         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
7444         first one isn't X86_64_SSE_CLASS or any other ones aren't
7445         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
7446         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
7447         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
7448         and 3 X86_64_SSEUP_CLASS.
7449         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
7450         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
7451
7452 2009-02-10  Ben Elliston  <bje@au.ibm.com>
7453
7454         * config/rs6000/rs6000.md (allocate_stack): Always use an update
7455         form instruction to update the stack back chain word, even if the
7456         user has disabled the generation of update instructions.
7457         (movdi_<mode>_update_stack): New.
7458         (movsi_update_stack): Likewise.
7459         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
7460         always use an update form instruction to update the stack back
7461         chain word.
7462
7463 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
7464
7465         PR middle-end/38953
7466         * graphite.c (if_region_set_false_region): After moving a region in
7467         the false branch of a condition, remove the empty dummy basic block.
7468         (gloog): Remove wrong fix for PR38953.
7469
7470 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7471
7472         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
7473         generation due to implicit sign extension.
7474
7475 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
7476
7477         PR middle-end/38981
7478         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
7479         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
7480
7481 2009-02-09  Richard Guenther  <rguenther@suse.de>
7482
7483         PR middle-end/35202
7484         * convert.c (convert_to_real): Disable (float)fn((double)x)
7485         to fnf(x) conversion if errno differences may occur and
7486         -fmath-errno is set.
7487
7488 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
7489
7490         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
7491         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
7492         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
7493
7494 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
7495
7496         PR c/35434
7497         * c-common.c (handle_alias_attribute): Disallow attribute for
7498         anything not a FUNCTION_DECL or VAR_DECL.
7499
7500 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
7501
7502         PR c/39035
7503         * real.c (do_compare): Special-case compare of zero against
7504         decimal float value.
7505
7506 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
7507
7508         PR c/36432
7509         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
7510         as indicating flexible array members unless the field itself is
7511         being declarared as the incomplete array.
7512
7513 2009-02-06  Jan Hubicka  <jh@suse.cz>
7514
7515         PR tree-optimization/38844
7516         * ipa-inline.c (try_inline): Stop inlining recursion when edge
7517         is already inlined.
7518
7519 2009-02-06  Richard Guenther  <rguenther@suse.de>
7520
7521         PR middle-end/38977
7522         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
7523         fork because we may expand it as __gcov_fork.
7524
7525 2009-02-06  Nick Clifton  <nickc@redhat.com>
7526
7527         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
7528
7529 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
7530
7531         PR tree-optimization/35659
7532         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
7533         vn_phi_eq): Shortcut if hashcode does not match.
7534         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
7535         NULL operands.
7536         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
7537         and avoid iterative_hash_expr.
7538         (FOR_EACH_VALUE_ID_IN_SET): New.
7539         (value_id_compare): Remove.
7540         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
7541         sort expressions by value id.
7542
7543 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
7544
7545         PR target/38991
7546         * config/sh/predicates.md (general_movsrc_operand): Don't check
7547         the subreg of system registers here.
7548
7549 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
7550
7551         PR c++/39106
7552         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
7553         on the copied decl.
7554
7555 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
7556
7557         PR rtl-optimization/39110
7558         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
7559         addresses, not aligned ones.
7560
7561 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
7562             Richard Guenther  <rguenther@suse.de>
7563
7564         PR tree-optimization/39100
7565         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
7566         comment says and add edges.
7567
7568 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
7569
7570         PR c/35435
7571         * c-common.c (handle_tls_model_attribute): Ignore attribute for
7572         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
7573
7574 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
7575
7576         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
7577         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
7578         register_bb_in_sese, new_sese, free_sese): Moved.
7579         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
7580         outermost_loop_in_scop, build_scop_iteration_domain,
7581         expand_scalar_variables_ssa_name, get_vdef_before_scop,
7582         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
7583         Use loop_in_sese_p instead of loop_in_scop_p.
7584         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
7585         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
7586         (scopdet_basic_block_info): Fix bug in scop detection.
7587         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
7588         eq_loop_to_cloog_loop): Remove.
7589         (nb_loops_around_loop_in_scop, nb_loop
7590         ref_nb_loops): Moved here...
7591         * graphite.h (ref_nb_loops): ... from here.
7592         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
7593         (loop_domain_dim, loop_iteration_vector_dim): Remove.
7594         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
7595         * testsuite/gcc.dg/graphite/scop-19.c: New
7596
7597 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
7598             Hans-Peter Nilsson  <hp@axis.com>
7599
7600         PR rtl-optimization/37889
7601         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
7602         Move offset handling from PLUS to before the switch.  Use new
7603         arguments when considering SYMBOL_REFs too.
7604         (rtx_addr_can_trap_p): Pass dummy offset and size.
7605         (enum may_trap_p_flags): Remove.
7606         (may_trap_p_1): Pass size from MEM_SIZE.
7607
7608         PR rtl-optimization/38921
7609         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
7610         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
7611         * rtlanal.c (may_trap_after_code_motion_p): Delete.
7612         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
7613
7614 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
7615
7616         AVX Programming Reference (January, 2009)
7617         * config/i386/sse.md (*vpclmulqdq): New.
7618
7619 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
7620
7621         PR tree-optimization/38977
7622         PR gcov-profile/38292
7623         * calls.c (special_function_p): Disregard __builtin_ prefix.
7624
7625 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
7626
7627         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
7628         non-indexable addresses even before reload.
7629
7630 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
7631
7632         PR c/29129
7633         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
7634         as having variable size.  Do not give an error for unnamed
7635         parameters with [*] declarators.  Give a warning for type names
7636         with [*] declarators and mark them as variable size.
7637         * c-parser.c (c_parser_sizeof_expression): Do not give an error
7638         for sizeof applied to [*] type names.
7639
7640 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7641
7642         PR C++/36607
7643         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
7644
7645 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
7646
7647         * gcc.c (process_command): Update copyright notice dates.
7648         * gcov.c (print_version): Likewise.
7649         * gcov-dump.c (print_version): Likewise.
7650         * mips-tfile.c (main): Likewise.
7651         * mips-tdump.c (main): Likewise.
7652
7653 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
7654
7655         PR c/35433
7656         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
7657         for composite type involving a zero-length array type.
7658
7659 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
7660
7661         PR target/35318
7662         * function.c (match_asm_constraints_1): Skip over
7663         initial optional % in the constraint.
7664
7665         PR inline-asm/39059
7666         * c-parser.c (c_parser_postfix_expression): If fixed point is not
7667         supported, don't accept FIXED_CSTs.
7668         * c-decl.c (finish_declspecs): Error if fixed point is not supported
7669         and _Sat is used without _Fract/_Accum.  Set specs->type to
7670         integer_type_node for cts_fract/cts_accum if fixed point is not
7671         supported.
7672
7673 2009-02-02  Catherine Moore  <clm@codesourcery.com>
7674
7675         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
7676
7677 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
7678
7679         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
7680         (ABI_HAS_64BIT_SYMBOLS): Use it.
7681         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
7682
7683 2009-02-02  Paul Brook  <paul@codesourcery.com>
7684
7685         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
7686
7687 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
7688
7689         PR inline-asm/39058
7690         * recog.h (asm_operand_ok): Add constraints argument.
7691         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
7692         recurse on matching constraint.
7693         (check_asm_operands): Pass constraints as 3rd argument to
7694         asm_operand_ok.  Don't look up matching constraint here.
7695         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
7696         to asm_operand_ok.
7697
7698 2009-02-02  Ben Elliston  <bje@au.ibm.com>
7699
7700         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
7701         TARGET_NARROW_VOLATILE_BITFIELD macro names.
7702
7703 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7704
7705         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
7706         information.  Remove some obsolete information.  Reorganize.
7707
7708         * config/pa/fptr.c: Revert license to GPL 2.
7709         * config/pa/milli64.S: Likewise.
7710
7711 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
7712
7713         PR target/38904
7714         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
7715         LIBRARY name in, instead of hard-coding it.
7716         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
7717         extra target make frag to tmake_files according to EH model.
7718         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
7719         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
7720         frags that define makefile variable EH_MODEL appropriately.
7721         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
7722         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
7723         to "-sjlj" according to type of EH configured.
7724         (LIBGCC_SONAME):  Concatenate it to shared library base name.
7725         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
7726         to "_sjlj" according to type of EH configured.
7727         (LIBGCC_SONAME):  Concatenate it to shared library base name.
7728         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
7729         (SHLIB_LINK):  Add missing semicolon to if-else construct.
7730         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
7731         string value of "pe_dll" command-line option.
7732         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
7733         (SHLIB_SONAME):  Use it when overriding t-cygming default.
7734         (SHLIB_IMPLIB):  Override t-cygming default.
7735         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
7736         string value of "pe_dll" command-line option.
7737
7738 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
7739
7740         PR target/38952
7741         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
7742         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
7743
7744 2009-01-31  Richard Guenther  <rguenther@suse.de>
7745
7746         PR tree-optimization/38937
7747         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
7748         computing the transitive closure.
7749
7750 2009-01-30  Richard Guenther  <rguenther@suse.de>
7751
7752         PR tree-optimization/39041
7753         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
7754         Propagate variable indices only if the types match for this stmt.
7755
7756 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
7757
7758         PR target/39013
7759         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
7760         inline but never defined.
7761
7762 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
7763
7764         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
7765         (*insv_h_di_reg_extimm): New insn.
7766         (*insv_l<mode>_reg_extimm): New insn.
7767
7768 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7769
7770         * config/picochip/picochip.c (flag_conserve_stack): set
7771         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
7772         fconserve-stack. Reduce call-overhead used by inliner.
7773
7774 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7775
7776         PR/38157
7777         * common.opt (flag_conserve_stack): Initialised to zero.
7778
7779 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
7780
7781         PR/39002
7782         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
7783         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
7784         method.
7785
7786 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
7787
7788         * ira-color.c (allocno_reload_assign): Update comments.
7789         * regmove.c (regmove_optimize): Likewise.
7790
7791         * ra.h: Removed.
7792
7793 2009-01-29  Robert Millan  <rmh@aybabtu.com>
7794
7795         * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
7796         * gcc/config/i386/kopensolaris-gnu.h: New file.  Undefine
7797         `MD_UNWIND_SUPPORT'.
7798         * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
7799
7800 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
7801
7802         PR tree-optimization/39007
7803         * tree-loop-distribution.c (generate_builtin): Use
7804         recompute_dominator to compute the immediate dominator of the
7805         basic block just after the loop.
7806
7807 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7808
7809         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
7810         (ASM_OUTPUT_DWARF_PCREL): Define.
7811
7812 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
7813
7814         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
7815         * doc/passes.texi: Remove entries about regclass, local-alloc, and
7816         global.  Modify entries about regmove and IRA.
7817
7818         * ra-conflict.c: Remove the file.
7819
7820         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
7821
7822         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
7823         (pass_regclass_init): Rename to pass_reginfo_init.
7824
7825         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
7826
7827         * toplev.h (flag_ira): Remove.
7828
7829         * caller-save.c (setup_save_areas): Remove flag_ira.
7830
7831         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
7832
7833         * global.c: Remove the file.
7834
7835         * opts.c (decode_options): Remove flag_ira.
7836
7837         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
7838
7839         * regmove.c: Modify file description.
7840         (find_use_as_address, try_auto_increment): Define them only if
7841         AUTO_INC_DEC is defined.
7842         (replacement_quality, replace_in_call_usage, fixup_match_1,
7843         stable_and_no_regs_but_for_p): Remove.
7844         (reg_set_in_bb): Make it static.
7845         (regmove_optimize): Remove flag_ira and code which worked for
7846         !flag_ira.
7847
7848         * local-alloc.c: Remove the file.
7849
7850         * common.opt (fira): Remove.
7851
7852         * ira.c: Include except.h.
7853         (eliminable_regset): Move from global.c.
7854         (mark_elimination): Ditto.  Remove flag_ira.
7855         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
7856         equiv_mem_modified, validate_equiv_mem_from_store,
7857         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
7858         contains_replace_regs, memref_referenced_p, memref_used_between_p,
7859         no_equiv, recorded_label_ref): Move from local-alloc.c.
7860         (update_equiv_regs): Ditto.  Make it static.
7861         (print_insn_chain, print_insn_chains): Move it from global.c.
7862         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
7863         (build_insn_chain): Ditto.  Make it static.
7864         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
7865         Rename to init_live_subregs.
7866         (gate_ira): Remove flag_ira.
7867
7868         * regclass.c: Rename reginfo.c.  Change file description.
7869         (FORBIDDEN_INC_DEC_CLASSES): Remove.
7870         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
7871         (init_reg_sets_1): Remove code for evaluation of
7872         reg_class_superclasses and losing_caller_save_reg_set.
7873         (init_regs): Remove init_reg_autoinc.
7874         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
7875         ok_for_base_p_nonstrict): Remove.
7876         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
7877         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
7878         corresponding entries.
7879         (dump_regclass, record_operand_costs, scan_one_insn,
7880         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
7881         record_address_regs, auto_inc_dec_reg_p): Remove.
7882         (gt-regclass.h): Rename to gt-reginfo.h.
7883
7884         * rtl.h (dump_global_regs, retry_global_alloc,
7885         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
7886
7887         * Makefile.in (RA_H): Remove.
7888         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
7889         Rename regclass.o to reginfo.o.
7890         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
7891         gt-reginfo.h.
7892         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
7893         (GTFILES): Rename regclass.c to reginfo.c.
7894
7895         * passes.c (init_optimization_passes): Remove pass_local_alloc and
7896         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
7897
7898         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
7899         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
7900         Remove flag_ira.
7901         (finish_spills): Ditto.  Remove code for !flag_ira.
7902
7903 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
7904
7905         PR middle-end/35854
7906         * doc/invoke.texi (rtl debug options): Complete rewrite.
7907         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
7908         to auto_inc_dec".
7909         * mode-switching.c (pass_mode_switching): Rename pass from
7910         "mode-sw" to "mode_sw".
7911         * except.c (pass_convert_to_eh_ranges): Rename pass from
7912         "eh-ranges" to "eh_ranges".
7913         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
7914         to "subreg1".
7915
7916
7917 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
7918             Alexander Monakov  <amonakov@ispras.ru>
7919
7920         PR middle-end/38857
7921         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
7922         register.
7923         (move_exprs_to_boundary): Change return type and pass through
7924         should_move from move_op.  Relax assert.  Update usage ...
7925         (schedule_expr_on_boundary): ... here.  Use should_move instead of
7926         cant_move.
7927         (move_op_orig_expr_found): Indicate that insn was disconnected from
7928         stream.
7929         (code_motion_process_successors): Do not call after_merge_succs
7930         callback if original expression was not found when traversing any of
7931         the branches.
7932         (code_motion_path_driver): Change return type.  Update prototype.
7933         (move_op): Update comment.  Add a new parameter (should_move).  Update
7934         prototype.  Set *should_move based on indication provided by
7935         move_op_orig_expr_found.
7936
7937 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
7938
7939         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
7940         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
7941         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
7942         * config/rs6000/rs6000.c (rs6000_override_options): Default
7943         avoid-indexed-addresses on for Power6, off for everything else.
7944         (avoiding_indexed_address_p): New function.
7945         (rs6000_legitimize_address): Use it.
7946         (rs6000_legitimate_address): Likewise.
7947         * config/rs6000/rs6000.md (movXX_updateX): Likewise
7948
7949 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
7950
7951         PR tree-optimization/38997
7952         * tree-loop-distribution.c (generate_memset_zero): Use
7953         POINTER_PLUS_EXPR for a pointer addition.
7954
7955 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
7956
7957         * config/s390/s390.md (bswap<mode>2): New pattern added.
7958
7959 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7960
7961         * config/s390/s390.md (*tls_load_31): Added type attribute.
7962
7963 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7964
7965         * config/s390/s390.md: Fix a few comments.
7966
7967 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
7968
7969         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
7970         (*tm<mode>_full): Fixed z10prop attribute.
7971         (*tst<mode>_extimm): Fixed z10prop attribute.
7972         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
7973         (*tstqiCCT_cconly): Fixed z10prop attribute.
7974         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
7975         (*movsi_larl): Fixed z10prop attribute.
7976         (*movsi_zarch): Fixed z10prop attribute.
7977         (*movsi_eas): Fixed z10prop attribute.
7978         (*movhi): Fixed z10prop attribute.
7979         (*movqi): Fixed z10prop attribute.
7980         (*movstrictqi): Fixed z10prop attribute.
7981         (*mov<mode>): Fixed z10prop attribute.
7982         (*movcc): Fixed z10prop attribute.
7983         (*sethighpartdi_64): Fixed z10prop attribute.
7984         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
7985         (*negdi2_sign_cc): Fixed z10prop attribute.
7986         (*negdi2_sign): Fixed z10prop attribute.
7987         (*absdi2_sign_cc): Fixed z10prop attribute.
7988         (*absdi2_sign): Fixed z10prop attribute.
7989         (*negabsdi2_sign_cc): Fixed z10prop attribute.
7990         (*negabsdi2_sign): Fixed z10prop attribute.
7991         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
7992         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
7993         (doloop_si64): Fixed z10prop attribute.
7994         (doloop_si31): Fixed z10prop attribute.
7995         (doloop_long): Fixed z10prop attribute.
7996         (indirect_jump): Fixed z10prop attribute.
7997         (nop): Fixed z10prop attribute.
7998         (main_base_64): Fixed z10prop attribute.
7999         (reload_base_64): Fixed z10prop attribute.
8000
8001 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
8002
8003         PR rtl-optimization/38740
8004         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
8005         if !optimize.
8006         * config/mips/mips.c (mips_reorg): Likewise.
8007
8008 2009-01-28  Richard Guenther  <rguenther@suse.de>
8009
8010         PR tree-optimization/38926
8011         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
8012         with the correct value id to a value.
8013         (do_regular_insertion): Use the value number of edoubleprime
8014         for the value number of the expr.
8015
8016         Revert
8017         2008-08-21  Richard Guenther  <rguenther@suse.de>
8018
8019         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
8020         a PHI ask VN if it is already available.
8021         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
8022         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
8023
8024 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
8025
8026         PR middle-end/38934
8027         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
8028         set to varying whenever max has TREE_OVERFLOW set, similarly
8029         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
8030
8031 2009-01-28  Richard Guenther  <rguenther@suse.de>
8032
8033         PR middle-end/38908
8034         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
8035         uninitialized aggregate uses in call arguments.
8036
8037 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
8038
8039         PR tree-optimization/38984
8040         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
8041         the nothing_id variable if -fno-delete-null-pointer-checks.
8042
8043 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
8044
8045         PR target/38988
8046         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
8047         (set_got_offset_rex64): Ditto.
8048
8049 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
8050
8051         PR target/38941
8052         * doc/extend.texi: Improve local variable with asm reg.
8053
8054 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
8055
8056         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
8057         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
8058         was not supplied then set warn_packed_bitfield_compat to the
8059         default value of 1.
8060         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
8061         against 1.
8062
8063 2009-01-27  Richard Guenther  <rguenther@suse.de>
8064
8065         PR tree-optimization/38503
8066         * cfgexpand.c (expand_gimple_basic_block): Ignore
8067         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
8068         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
8069         variables that cannot have TBAA applied.
8070         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
8071         statements.
8072
8073 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
8074
8075         PR middle-end/38969
8076         * calls.c (initialize_argument_information): Do not wrap complex
8077         arguments in SAVE_EXPR.
8078
8079 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
8080
8081         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
8082         (INSTALL_LIBGCC): Revert typo commit.
8083
8084 2009-01-26  Richard Guenther  <rguenther@suse.de>
8085
8086         PR tree-optimization/38745
8087         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
8088         from special handling.
8089
8090 2009-01-26  Richard Guenther  <rguenther@suse.de>
8091
8092         PR tree-optimization/38745
8093         * tree-ssa.c (execute_update_addresses_taken): Do not include
8094         variables that cannot possibly be a register in not_reg_needs.
8095         Do not clear TREE_ADDRESSABLE on vars that may not become
8096         registers.
8097         * tree-ssa.c (update_alias_info_1): Include those in the set
8098         of addressable vars.
8099
8100 2009-01-26  Richard Guenther  <rguenther@suse.de>
8101
8102         PR middle-end/38851
8103         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
8104         * tree-ssa-dse.c: Include langhooks.h
8105         (execute_simple_dse): Remove stores with zero size.
8106
8107 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
8108
8109         PR c/38957
8110         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
8111         as PLUS_EXPR.
8112
8113 2009-01-24  Julian Brown  <julian@codesourcery.com>
8114
8115         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
8116         config/arm/linux-atomic.c.
8117         * config/arm/linux-atomic.c: New.
8118
8119 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
8120
8121         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
8122         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
8123         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
8124
8125 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
8126
8127         PR c/38938
8128         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
8129         properly.
8130
8131 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
8132
8133         PR tree-optimization/38953
8134         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
8135         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
8136         (gloog): Split the exit of the scop when the scop exit is a loop exit.
8137         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
8138         changed the CFG.
8139
8140 2009-01-24  Paul Brook  <paul@codesourcery.com>
8141
8142         * config/arm/neon.md (neon_type): Move to arm.md.
8143         (neon_mov<VSTRUCT>): Add neon_type attribute.
8144         * config/arm/arm.md (neon_type): Move to here.
8145         (conds): Add "unconditioal" and use as default for NEON insns.
8146
8147 2009-01-24  Ben Elliston  <bje@au.ibm.com>
8148
8149         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
8150         void *' warning from -Wc++-compat.
8151         * Makefile.in (dominance.o-warn): Remove.
8152
8153 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
8154
8155         PR tree-optimization/38932
8156         * fold-const.c (fold_unary_ignore_overflow): New.
8157         * tree.h (fold_unary_ignore_overflow): Declare.
8158         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
8159         * tree-ssa-sccvn.c (visit_reference_op_load,
8160         simplify_unary_expression): Likewise.
8161
8162 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
8163
8164         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
8165         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
8166         regardless of their type.
8167         * c-common.c (handle_packed_attribute): Don't ignore packed on
8168         bitfields.
8169         * c.opt (Wpacked-bitfield-compat): New warning option.
8170         * stor-layout.c (place_field): Warn if offset of a field changed.
8171         * doc/extend.texi (packed): Mention the ABI change.
8172         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
8173         (Warning Options): Add it to the list.
8174
8175 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
8176
8177         * c-opts.c (c_common_post_options): Fix a typo in comments.
8178
8179 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
8180
8181         PR middle-end/38615
8182         * gimplify.c (gimplify_init_constructor): Fix promotion of const
8183         variables to static.
8184         * doc/invoke.texi (-fmerge-all-constants): Update description.
8185
8186 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
8187
8188         PR target/38931
8189         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
8190         (*movdi_1_rex64): Use type "mmx" for alternative 5.
8191
8192 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
8193
8194         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
8195         a word boundary.
8196         (LOCAL_ALIGNMENT): Similarly.
8197
8198 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
8199             Joseph Myers  <joseph@codesourcery.com>
8200
8201         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
8202         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
8203         * config/arm/arm-tune.md: Regenerate.
8204         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
8205         -march=iwmmxt2.
8206
8207 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
8208
8209         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
8210         version number to five.
8211
8212 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
8213
8214         PR c++/38930
8215         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
8216         * c-common.c (set_underlying_type): Likewise.
8217         (is_typedef_decl ): Likewise
8218         * tree.h: Likewise
8219         (set_underlying_type): Likewise.
8220         (is_typedef_type): Likewise.
8221
8222 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
8223
8224         PR middle-end/38587
8225         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
8226         crossing setjmps.
8227
8228 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
8229
8230         PR bootstrap/37660
8231         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
8232         (LIBGCC_SPEC):  Don't define.
8233         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
8234
8235 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
8236
8237         PR rtl-optimization/38879
8238         * alias.c (base_alias_check): Unaligned access via AND address can
8239         alias all surrounding object types except those with sizes equal
8240         or wider than the size of unaligned access.
8241
8242 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
8243
8244         PR c++/26693
8245         * c-decl.c (clone_underlying_type): Move this ...
8246         * c-common.c (set_underlying_type): ... here.
8247         Also, make sure the function properly sets TYPE_STUB_DECL() on
8248         the newly created typedef variant type.
8249         (is_typedef_decl ): New entry point.
8250         * tree.h: Added a new member member_types_needing_access_check to
8251         struct tree_decl_non_common.
8252         (set_underlying_type): New entry point.
8253         (is_typedef_type): Likewise.
8254
8255 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
8256
8257         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
8258         Check whether two instructions have memory references that
8259         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
8260         are helper functions for traversing.
8261         * alias.h (insn_alias_sets_confilict_p): New prototypes.
8262         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
8263         not to draw dependency edge for instructions with non-conflicting
8264         alias sets.
8265
8266 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
8267
8268         PR other/38758
8269         * longlong.h: Update copyright years.  Use soft-fp license notice.
8270         Sync __clz_tab declaration with glibc.
8271
8272 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
8273
8274         PR target/30687
8275         * doc/extend.texi (syscall_linkage): New.
8276         (version_id): Modify.
8277
8278 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8279             Richard Guenther  <rguenther@suse.de>
8280
8281         PR tree-optimization/38747
8282         PR tree-optimization/38748
8283         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
8284         conversion if the base address is an indirect reference and the
8285         aliasing sets could cause issues.
8286
8287 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
8288
8289         * common.opt (fgraphite, fgraphite-identity): Add comment for
8290         explaining why these options are not documented.
8291
8292 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
8293
8294         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
8295         gimple_call_lhs is NULL.
8296
8297 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
8298
8299         PR target/38868
8300         * emit-rtl.c (adjust_address_1): Make sure memref is never
8301         overwritten.
8302
8303 2009-01-20  Ben Elliston  <bje@au.ibm.com>
8304
8305         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
8306         const qualifier from arg parameter. Remove unnecessary cast to char *.
8307         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
8308         const qualifier from arg 2.
8309
8310 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
8311
8312         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
8313
8314 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
8315
8316         PR c/38869
8317         * rtl.h (reinit_regs): New prototype.
8318         * regclass.c: Include ira.h.
8319         (reinit_regs): New.
8320         * Makefile.in (regclass.o): Add ira.h.
8321         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
8322
8323 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
8324
8325         PR target/38736
8326         * c-common.c (handle_aligned_attribute): Use
8327         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
8328         default alignment value.
8329
8330         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
8331
8332         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
8333         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
8334
8335         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
8336         __BIGGEST_ALIGNMENT__.
8337
8338         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
8339
8340 2009-01-18  Richard Guenther  <rguenther@suse.de>
8341
8342         PR tree-optimization/38819
8343         * tree-flow.h (operation_could_trap_helper_p): Declare.
8344         * tree-eh.c (operation_could_trap_helper_p): Export.
8345         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
8346         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
8347         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
8348         are about to insert a possibly trapping instruction and fail
8349         in this case.
8350
8351 2009-01-18  Andreas Schwab  <schwab@suse.de>
8352
8353         * doc/install.texi (Configuration): Remove obsolete paragraph
8354         about use of --with-gnu-ld with --with-gnu-as.
8355
8356 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
8357
8358         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
8359         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
8360         Follow spelling conventions.
8361
8362 2009-01-18  Ben Elliston  <bje@au.ibm.com>
8363
8364         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
8365         C++ warning about implicit conversion from void * to struct
8366         bitmap_head_def *.
8367         (bitmap_obstack_free): Likewise for bitmap_element *.
8368         * Makefile.in (bitmap.o-warn): Remove.
8369
8370 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
8371
8372         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
8373
8374 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
8375             Tobias Grosser  <tobi.grosser@amd.com>
8376
8377         * graphite.c (graphite_trans_scop_block): Do not block single
8378         nested loops.
8379
8380 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
8381
8382         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
8383         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
8384         test with assertion.
8385
8386 2009-01-16  Richard Guenther  <rguenther@suse.de>
8387
8388         PR tree-optimization/38835
8389         PR middle-end/36227
8390         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
8391         and INT + PTR -> (INT)(PTR p+ INT) folding.
8392         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
8393
8394 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
8395
8396         PR target/38554
8397         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
8398         the subreg from a lowpart subreg if it is also casting the value.
8399
8400 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8401             Tobias Grosser  <tobi.grosser@amd.com>
8402
8403         * graphite.c (compare_prefix_loops): New.
8404         (build_scop_canonical_schedules): Rewritten.
8405         (graphite_transform_loops): Move build_scop_canonical_schedules
8406         after build_scop_iteration_domain.
8407
8408 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
8409             Tobias Grosser  <tobi.grosser@amd.com>
8410
8411         * graphite.c (add_conditions_to_domain): Add the loops to
8412         the dimension of the iteration domain.  Do copy the domain
8413         only when it exists.
8414         (build_scop_conditions_1): Do not call add_conditions_to_domain.
8415         (add_conditions_to_constraints): New.
8416         (can_generate_code_stmt, can_generate_code): Removed.
8417         (gloog): Do not call can_generate_code.
8418         (graphite_transform_loops): Call add_conditions_to_constraints
8419         after building the iteration domain.
8420
8421 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
8422
8423         PR tree-optimization/38789
8424         * tree-ssa-threadedge.c
8425         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
8426         __builtin_constant_p.
8427
8428 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
8429
8430         * dce.c (delete_unmarked_insns): Reversed the order that insns are
8431         examined before deleting them.
8432
8433 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
8434
8435         * function.c (aggregate_value_p): Correctly extract the function
8436         type from CALL_EXPR_FN lookup.
8437
8438 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
8439
8440         * config/picochip/picochip.c (picochip_override_options): Revert
8441         CFI asm flag disable commited previously.
8442
8443 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
8444             Tobias Grosser  <tobi.grosser@amd.com>
8445             Jan Sjodin  <jan.sjodin@amd.com>
8446
8447         * graphite.c (scan_tree_for_params): On substractions negate
8448         all the coefficients of the term.
8449         (clast_to_gcc_expression_red): New.  Handle reduction expressions
8450         of more than two operands.
8451         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
8452         (get_vdef_before_scop): Handle also the case of default definitions.
8453
8454 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
8455
8456         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
8457         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
8458         Also use them when walking CALL_INSN_FUNCTION_USAGE.
8459
8460 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
8461             Joey Ye  <joey.ye@intel.com>
8462
8463         PR middle-end/37843
8464         * cfgexpand.c (expand_stack_alignment): Don't update stack
8465         boundary nor check incoming stack boundary here.
8466         (gimple_expand_cfg): Update stack boundary and check incoming
8467         stack boundary here.
8468
8469 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
8470
8471         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
8472
8473 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
8474
8475         PR rtl-optimization/38245
8476         * calls.c (expand_call): Add stack arguments to
8477         CALL_INSN_FUNCTION_USAGE even for pure calls (when
8478         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
8479         in regs and partially in memory or BLKmode arguments.
8480         (emit_library_call_value_1): Add stack arguments to
8481         CALL_INSN_FUNCTION_USAGE even for pure calls (when
8482         ACCUMULATE_OUTGOING_ARGS).
8483         * dce.c: Include tm_p.h.
8484         (find_call_stack_args): New function.
8485         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
8486         argument.
8487         (mark_insn): Call find_call_stack_args for CALL_Ps.
8488         (prescan_insns_for_dce): Walk insns backwards in bb rather than
8489         forwards.  Allocate and free arg_stores bitmap if needed, pass it
8490         down to deletable_insn_p, don't mark stores set in arg_stores
8491         bitmap, clear the bitmap at the beginning of each bb.
8492         * Makefile.in (dce.o): Depend on $(TM_P_H).
8493
8494 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
8495
8496         PR target/22599
8497         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
8498         to make sure the insn is a conditional test (bug 22599).  Reformat a
8499         few long lines.
8500
8501 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
8502
8503         PR middle-end/38431
8504         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
8505         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
8506         (gloog): Do not call cleanup_tree_cfg.
8507         (graphite_transform_loops): Call cleanup_tree_cfg after all
8508         scops have been code generated.
8509
8510 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
8511         * doc/gty.texi (Invoking the garbage collector): Added new node
8512         and section documenting ggc_collect.
8513
8514 2009-01-14  Richard Guenther  <rguenther@suse.de>
8515
8516         PR tree-optimization/38826
8517         PR middle-end/38477
8518         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
8519         initialization notes only if we actually emitted a warning.
8520         (intra_create_variable_infos): Add constraints for a result decl
8521         that is passed by hidden reference.
8522         (build_pred_graph): Mark all related variables non-direct on
8523         address-taking.
8524
8525 2009-01-14  Nick Clifton  <nickc@redhat.com>
8526
8527         * ira-conflicts.c: Include addresses.h for the definition of
8528         base_reg_class.
8529         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
8530         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
8531
8532 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
8533
8534         PR target/38811
8535         * Makefile.in (ira-lives.o): Add except.h.
8536
8537         * ira-lives.c: Include except.h.
8538         (process_bb_node_lives): Process can_throw_internal.
8539
8540 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
8541
8542         PR rtl-optimization/38774
8543         * combine.c (simplify_set): When undoing cc_use change, don't do
8544         PUT_CODE on the newly created comparison, but instead put back the
8545         old comparison.
8546
8547 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
8548
8549         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
8550         values.  Remove duplicate arm8 entry.
8551
8552 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
8553
8554         PR tree-optimization/38786
8555         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
8556         the SSA_NAME case of expand_scalar_variables_expr.
8557         Set the type of an expression to the type of its assign statement.
8558         (expand_scalar_variables_expr): Also gather the scalar computation
8559         used to index the memory access.  Do not pass loop_p.
8560         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
8561         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8562         the gimple_stmt_iterator where it inserts new code.
8563         Do not pass loop_p.
8564         (copy_bb_and_scalar_dependences): Do not pass loop_p.
8565         (translate_clast): Update call to copy_bb_and_scalar_dependences.
8566
8567 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
8568
8569         * graphite.h (debug_value): Removed.
8570         * graphite.c (debug_value): Removed.
8571
8572 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
8573
8574         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
8575         ldrd/strd with two 32-bit instructions.
8576
8577 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
8578
8579         * config/arm/arm.c (struct processors): Pass for speed down into
8580         cost helper functions.
8581         (const_ok_for_op): Handle COMPARE and inequality nodes.
8582         (arm_rtx_costs_1): Rewrite.
8583         (arm_size_rtx_costs): Update prototype.
8584         (arm_rtx_costs): Pass speed down to helper functions.
8585         (arm_slowmul_rtx_costs): Rework cost calculations.
8586         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
8587         (arm_9e_rtx_costs): Likewise.
8588
8589 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
8590
8591         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
8592         relocations of local symbols wider than UNITS_PER_WORD are not valid.
8593         (alpha_legitimize_address): Do not split local symbols wider than
8594         UNITS_PER_WORD into HIGH/LO_SUM parts.
8595
8596 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
8597
8598         PR bootstrap/38580
8599         * gcc.c (process_command): Replace call to execvp with calls
8600         to pex_one and exit.
8601
8602 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
8603
8604         PR target/29141
8605         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
8606         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
8607         variant for devices with 3-byte PC.
8608         (__tablejump_elpm__): New.
8609
8610 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
8611
8612         PR c/32041
8613         * c-parser.c (c_parser_postfix_expression): Allow `->' in
8614         offsetof member-designator, handle it as `[0].'.
8615
8616 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8617
8618         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
8619         function when not using named sections on targets with named sections
8620         if branch distance is less than 262132.
8621
8622 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
8623
8624         * combine.c (combine_instructions):  Recompute
8625         optimize_this_for_speed_p  for each BB in the main combine loop.
8626
8627 2009-01-12  Tomas Bily  <tbily@suse.cz>
8628
8629         PR middlend/38385
8630         * tree-loop-distribution.c (prop_phis): New function.
8631         (generate_builtin): Call prop_phis.
8632         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
8633
8634 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
8635
8636         PR tree-optimization/38807
8637         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
8638         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
8639
8640 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
8641
8642         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
8643         subreg of op0 to the original op0.
8644
8645 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
8646
8647         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
8648
8649 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
8650
8651         PR debug/7055
8652         * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
8653         starting with digits.
8654
8655 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
8656
8657         PR target/38695
8658         * config/arm/arm.c (arm_is_long_call_p): Don't call
8659         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
8660
8661 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
8662
8663         * regrename.c (regrename_optimize): Fix dumping.
8664         (find_oldest_value_reg): Preserve REG_POINTER.
8665         (copy_hardreg_forward_1): Likewise.
8666
8667 2009-01-09  Diego Novillo  <dnovillo@google.com>
8668
8669         * gimple.h (struct gimple_statement_base) <uid>: Document
8670         the restrictions on its use.
8671         (gimple_uid): Tidy.
8672         (gimple_set_uid): Tidy.
8673
8674 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
8675
8676         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
8677         zero guard even if align_bytes != 0 and count is smaller than
8678         size_needed.
8679
8680 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
8681
8682         PR rtl-optimization/38495
8683         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
8684         (add_range_and_copies_from_move_list): Print all added ranges.
8685         Add ranges to memory optimized destination.
8686
8687 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
8688
8689         PR target/38686
8690         PR target/38708
8691         * config/i386/i386.c (override_options): Reject
8692         -mstringop-strategy=rep_8byte with -m32.
8693         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
8694         to 1.  Do count comparison against epilogue_size_needed at compile
8695         time even when count_exp was constant forced into register.  For
8696         size_needed don't jump to epilogue, instead just avoid aligning
8697         and invoke the body algorithm.  If need_zero_guard, add zero guard
8698         even if count is non-zero, but smaller than size_needed + number of
8699         bytes that could be stored for alignment.
8700         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
8701         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
8702         but smaller than size_needed + number of bytes that could be stored
8703         for alignment.  Compare size_needed with epilogue_size_needed instead
8704         of desired_align - align, don't adjust size_needed, pass
8705         epilogue_size_needed to the epilogue expanders.
8706
8707         PR c/35742
8708         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8709
8710 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8711
8712         * pa.c (last_address): Change to unsigned.
8713         (update_total_code_bytes): Change argument to unsigned.  Don't
8714         check if insn addresses are set.
8715         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
8716         addresses are not set.
8717         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
8718
8719 2009-01-09  Nick Clifton  <nickc@redhat.com>
8720
8721         * config/sh/symbian.c: Replace uses of DECL_INLINE with
8722         DECL_DECLARED_INLINE_P.
8723
8724 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
8725
8726         PR middle-end/38347
8727         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
8728         GET_MODE (op0) in operand_subword_force calls.
8729
8730         PR middle-end/38771
8731         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
8732         fold_convert arg0 operands to TREE_TYPE (op0) first.
8733
8734 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
8735
8736         * params.def (ira-max-conflict-table-size): Decrease default value
8737         to 1000.
8738
8739 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
8740
8741         PR tree-optimization/37031
8742         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
8743         on parameter_set.
8744         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
8745         allocate it using gc instead of heap, use VEC_quick_push instead of
8746         VEC_safe_push.
8747         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
8748         instead of heap, use VEC_quick_push instead of VEC_safe_push.
8749         * tree-data-ref.h (struct access_matrix): Change matrix to gc
8750         allocated vector from heap allocated.
8751         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
8752         * tree-loop-linear.c (linear_transform_loops): Allocate nest
8753         vector only after perfect_loop_nest_depth call.
8754
8755 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
8756             Jan Sjodin  <jan.sjodin@amd.com>
8757
8758         PR tree-optimization/38559
8759         * graphite.c (debug_value, copy_constraint,
8760         swap_constraint_variables, scale_constraint_variable, ): New.
8761         (get_lower_bound, get_upper_bound): Removed.
8762         (graphite_trans_bb_strip_mine): Clean up this code that works
8763         only for constant number of iterations.  Fully copy upper and
8764         lower bound constraints, not only the constant part of them.
8765         * graphite.h (debug_value): Declared.
8766
8767 2009-01-08  Ira Rosen  <irar@il.ibm.com>
8768
8769         PR tree-optimization/37194
8770         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
8771         Don't add the cost of cost model guard in prologue to scalar
8772         outside cost in case of known number of iterations.
8773
8774 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
8775             Alan Modra  <amodra@bigpond.net.au>
8776
8777         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
8778         non-word-aligned REG+CONST addressing.
8779
8780 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
8781
8782         PR target/38706
8783         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
8784         free_after_compilation when outputting a thunk.
8785         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
8786         Do not call free_after_compilation here.
8787
8788 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
8789
8790         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
8791         (ix86_valid_target_attribute_inner_p): Ditto.
8792
8793 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
8794
8795         PR tree-optimization/38492
8796         PR tree-optimization/38498
8797         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
8798         * tree-chrec.h (scev_is_linear_expression): Declared.
8799         * graphite.c (graphite_cannot_represent_loop_niter): New.
8800         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
8801         (graphite_loop_normal_form): Use gcc_assert.
8802         (scan_tree_for_params): Use CASE_CONVERT.
8803         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
8804         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
8805         Use gcc_assert.  Discard scops that contain unhandled cases.
8806         (build_scop_conditions): Return a boolean status for unhandled cases.
8807         (strip_mine_profitable_p): Print the loop number, not its depth.
8808         (is_interchange_valid): Pass the depth of the loop nest, don't
8809         recompute it wrongly.
8810         (graphite_trans_bb_block): Same.
8811         (graphite_trans_bb_block): Print tentative of loop blocking.
8812         (graphite_trans_scop_block): Do not print that the loop has been
8813         blocked.
8814         (graphite_transform_loops): Do not handle scops that contain condition
8815         scalar phi nodes.
8816
8817 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
8818
8819         AVX Programming Reference (December, 2008)
8820         * config/i386/avxintrin.h (_mm256_stream_si256): New.
8821         (_mm256_stream_pd): Likewise.
8822         (_mm256_stream_ps): Likewise.
8823
8824         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
8825         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
8826         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
8827         (bdesc_special_args): Add __builtin_ia32_movntdq256,
8828         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
8829         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
8830         (ix86_expand_special_args_builtin): Likewise.
8831
8832         * config/i386/sse.md (AVXMODEDI): New.
8833         (avx_movnt<mode>): Likewise.
8834         (avx_movnt<mode>): Likewise.
8835         (<sse>_movnt<mode>): Remove AVX support.
8836         (sse2_movntv2di): Likewise.
8837
8838 2009-01-07  Richard Guenther  <rguenther@suse.de>
8839
8840         PR middle-end/38751
8841         * fold-const.c (extract_muldiv): Remove obsolete comment.
8842         (fold_plusminus_mult_expr): Undo MINUS_EXPR
8843         to PLUS_EXPR canonicalization for the canonicalization.
8844
8845 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
8846
8847         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
8848         hosted cross-compilers generating less efficient code.
8849
8850 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8851
8852         * function.h (rtl_data): Add a dbr_scheduled_p field.
8853         * reorg.c (dbr_schedule): Set it.
8854         (gate_handle_delay_slots): Check it.
8855         * config/mips/mips.c (mips_base_delayed_branch): Delete.
8856         (mips_reorg): Check flag_delayed_branch instead of
8857         mips_base_delayed_branch.
8858         (mips_override_options): Don't set mips_base_delayed_branch
8859         or flag_delayed_branch.
8860
8861 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
8862
8863         PR rtl-optimization/38426.
8864         * ira.c (ira): Set current_function_is_leaf earlier.
8865
8866 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
8867
8868         PR rtl-optimization/38722
8869         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
8870         too early, only set a flag and modify after last possible
8871         undo_all point.
8872
8873 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
8874
8875         PR c/34252
8876         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
8877         * real.c (decimal_single_format): Correct values of emin and emax.
8878         (decimal_double_format): Ditto.
8879         (decimal_quad_format): Ditto.
8880         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
8881         computation of DECnn_MIN and DECnn_MAX for corrected values of
8882         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
8883         __DECnn_MIN__, and adjust its computation for the corrected value
8884         of emin.
8885
8886 2009-01-06  Jan Hubicka  <jh@suse.cz>
8887
8888         PR target/38744
8889         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
8890
8891 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
8892
8893         * doc/contrib.texi (Contributors): Slightly adjust the end note.
8894         Add Robert Clark to the list of testers.
8895
8896 2009-01-06  Jan Hubicka  <jh@suse.cz>
8897             Kai Tietz  <kai.tietz@onevision.com>
8898
8899         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
8900         * config/i386/i386.c (ix86_expand_call): Add clobbers.
8901
8902 2009-01-06  Jan Hubicka  <jh@suse.cz>
8903             Kai Tietz  <kai.tietz@onevision.com>
8904
8905         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
8906         for w64 ABI.
8907         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
8908         (ix86_nsaved_regs): Count only general purpose regs.
8909         (ix86_nsaved_sseregs): New.
8910         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
8911         to 16 for w64; compute padding and size of sse reg save area.
8912         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
8913         general purpose regs.
8914         (ix86_emit_save_sse_regs_using_mov): New.
8915         (ix86_expand_prologue): Save SSE regs if needed.
8916         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
8917         (ix86_emit_restore_sse_regs_using_mov): New.
8918         (ix86_expand_epilogue): Save SSE regs if needed.
8919
8920 2009-01-06  Jan Hubicka  <jh@suse.cz>
8921             Kai Tietz  <kai.tietz@onevision.com>
8922
8923         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
8924         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
8925         functions when accumulate outgoing args is off.
8926
8927 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
8928
8929         PR bootstrap/38742
8930         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
8931         before using pseudos_have_intersected_live_ranges_p.
8932
8933         * ira-int.h (ira_assert): Always define.
8934
8935 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
8936
8937         AVX Programming Reference (December, 2008)
8938         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
8939         (_mm256_permute2_pd): Likewise.
8940         (_mm_permute2_ps): Likewise.
8941         (_mm256_permute2_ps): Likewise.
8942         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
8943         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
8944
8945         * config/i386/i386.c (ix86_builtins): Remove
8946         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
8947         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
8948         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
8949         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
8950         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
8951         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
8952         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
8953         __builtin_ia32_vpermil2ps256.
8954         (ix86_init_mmx_sse_builtins): Updated.
8955         (ix86_expand_args_builtin): Likewise.
8956
8957 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8958
8959         * pa.c (output_call): Relocate non-jump insns in the delay slot of
8960         long absolute calls when generating PA 2.0 code.
8961
8962 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
8963
8964         PR rtl-optimization/38583
8965         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
8966
8967         * params.def (ira-max-conflict-table-size): New.
8968
8969         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
8970
8971         * ira.h (ira_conflicts_p): New external definition.
8972
8973         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
8974         table.  Report this.  Return result of building.
8975         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
8976         building conflict table.
8977
8978         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
8979         (ira_color): Use ira_conflicts_p.
8980
8981         * global.c: Include ira.h.
8982         (pseudo_for_reload_consideration_p, build_insn_chain): Use
8983         ira_conflicts_p.
8984
8985         * Makefile.in (global.o): Add ira.h.
8986
8987         * ira-build.c (mark_all_loops_for_removal,
8988         propagate_some_info_from_allocno): New.
8989         (remove_unnecessary_allocnos): Call
8990         propagate_some_info_from_allocno.
8991         (remove_low_level_allocnos): New.
8992         (remove_unnecessary_regions): Add parameter.  Call
8993         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
8994         parameter to remove_unnecessary_regions.
8995         (ira_build): Remove all regions but root if the conflict table was
8996         not built.  Update conflict hard regs for allocnos crossing calls.
8997
8998         * ira.c (ira_conflicts_p): New global.
8999         (ira): Define and use ira_conflicts_p.
9000
9001         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
9002         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
9003         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
9004
9005 2009-01-06  Ben Elliston  <bje@au.ibm.com>
9006
9007         * gengtype-lex.l (YY_NO_INPUT): Define.
9008
9009 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9010
9011         PR c/34911
9012         * c-common.c (handle_vector_size_attribute): Also reject
9013         BOOLEAN_TYPE types.
9014
9015 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
9016
9017         PR tree-optimization/38492
9018         * graphite.c (rename_map_elt, debug_rename_elt,
9019         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
9020         rename_map_elt_info, eq_rename_map_elts,
9021         get_new_name_from_old_name, bb_in_sese_p): Moved around.
9022         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
9023         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
9024         (sese_build_livein_liveouts): New.
9025         (new_sese, free_sese): New.
9026         (new_scop): Call new_sese.
9027         (free_scop): Call free_sese.
9028         (rename_variables_from_edge, rename_phis_end_scop): Removed.
9029         (register_old_new_names): Renamed register_old_and_new_names.
9030         (register_scop_liveout_renames, add_loop_exit_phis,
9031         insert_loop_close_phis, struct igp,
9032         default_liveout_before_guard, add_guard_exit_phis,
9033         insert_guard_phis, copy_renames): New.
9034         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
9035         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
9036         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
9037         (scop_adjust_phis_for_liveouts): New.
9038         (gloog): Call scop_adjust_phis_for_liveouts.
9039
9040         * graphite.h (struct sese): Documented.  Added fields liveout,
9041         num_ver and livein.
9042         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
9043         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
9044         (struct scop): Added field liveout_renames.
9045         (SCOP_LIVEOUT_RENAMES): New.
9046
9047 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
9048
9049         PR tree-optimization/38510
9050         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
9051         (translate_clast): Call recompute_all_dominators before
9052         graphite_verify.
9053         (gloog): Call recompute_all_dominators before graphite_verify.
9054
9055 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
9056             Jan Sjodin  <jan.sjodin@amd.com>
9057
9058         PR tree-optimization/38500
9059         * graphite.c (create_sese_edges): Call fix_loop_structure after
9060         splitting blocks.
9061
9062 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
9063
9064         * config.gcc: Add m32r*-*-rtems*.
9065         * config/m32r/rtems.h: New file.
9066
9067 2009-01-05  Ben Elliston  <bje@au.ibm.com>
9068
9069         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
9070         (.po.pox): Likewise.
9071         (po/gcc.pot): Likewise.
9072
9073 2009-01-04  David S. Miller  <davem@davemloft.net>
9074
9075         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
9076         (STARTING_FRAME_OFFSET): Always set to zero.
9077
9078 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
9079
9080         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
9081         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
9082         fixed-point types, and vectors of the same.
9083
9084 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
9085
9086         * config/mips/sync.md (*mb_barrier): Rename to...
9087         (*memory_barrier): ...this.
9088
9089 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
9090
9091         * doc/extend.texi (Function Attributes): Move @cindex after @item
9092         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
9093         and put in alphabetical order. Fix 'target' name and put in order.
9094         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
9095         typos.
9096
9097 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
9098
9099         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
9100         (memory_barrier): Expand as unspec instead of unspec_volatile.
9101         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9102         (*memory_barrier): Define as unspec instead of unspec_volatile.
9103         Use (match_dup 0) as input operand.
9104
9105         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
9106         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
9107         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
9108         scratch register.  Remove operand 1.
9109         (*stbar): Define as unspec instead of unspec_volatile.
9110         Use (match_dup 0) as input operand, remove (const_int 8).
9111         (*membar): Define as unspec instead of unspec_volatile.
9112         Use (match_dup 0) as input operand, remove input operand 2.
9113
9114         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
9115         (memory_barrier): Expand as unspec instead of unspec_volatile.
9116         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9117         (*memory_barrier): Define as unspec instead of unspec_volatile.
9118         Use (match_dup 0) as input operand.
9119
9120         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
9121         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9122         Set volatile flag on operand 0.
9123         (*memory_barrier): New insn pattern.
9124
9125         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
9126         insn operands.
9127         (*memory_barrier): Use (match_dup 0) as input operand.
9128
9129         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
9130         Remove mem:BLK from insn operands.  Use Pmode scratch register.
9131         Set volatile flag on operand 0.
9132         (*mb_internal): New insn pattern.
9133
9134         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
9135
9136 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
9137
9138         PR middle-end/38586
9139         * function.c (struct temp_slot): Move to the section of the file
9140         that deals with temp slots.  Remove field 'address'.
9141         (temp_slot_address_table): New hash table of address -> temp slot.
9142         (struct temp_slot_address_entry): New struct, items for the table.
9143         (temp_slot_address_compute_hash, temp_slot_address_hash,
9144         temp_slot_address_eq, insert_temp_slot_address): Support functions
9145         for the new table.
9146         (find_temp_slot_from_address): Rewrite to use the new hash table.
9147         (remove_unused_temp_slot_addresses): Remove addresses of temp
9148         slots that have been made available.
9149         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
9150         worker function for remove_unused_temp_slot_addresses.
9151         (assign_stack_temp_for_type): Don't clear the temp slot address list.
9152         Add the temp slot address to the address -> temp slot map.
9153         (update_temp_slot_address): Update via insert_temp_slot_address.
9154         (free_temp_slots): Call remove_unused_temp_slot_addresses.
9155         (pop_temp_slots): Likewise.
9156         (init_temp_slots): Allocate the address -> temp slot map, or empty
9157         the map if it is already allocated.
9158         (prepare_function_start): Initialize temp slot processing.
9159
9160 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
9161
9162         PR middle-end/38584
9163         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
9164         Calculate the size of all stack vars assuming no packing of stack
9165         vars will happen, replacing a quadratic algorithm with a linear one.
9166
9167 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
9168
9169         PR target/38707
9170         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
9171         can't be used.
9172
9173 2009-01-03  Diego Novillo  <dnovillo@google.com>
9174
9175         * doc/contrib.texi: Update contributions.
9176
9177 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
9178
9179         PR c++/38705
9180         * builtins.c (fold_builtin_memory_op): Give up if either operand
9181         is volatile.  Set srctype or desttype to non-qualified version
9182         of the other type.
9183
9184         PR c/38700
9185         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
9186         and FUNCTION_DECLs.
9187
9188 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
9189
9190         PR rtl-optimization/35805
9191         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
9192         problem if fast dce is able to remove any instructions.
9193         * dce.c (dce_process_block): Fix dump message.
9194
9195 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
9196
9197         PR 33649
9198         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
9199
9200 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
9201
9202         PR middle-end/38690
9203         * tree-flow.h (op_code_prio, op_prio): New prototypes.
9204         * tree-pretty-print.c (op_code_prio): New function.
9205         (op_prio): No longer static.  Use op_code_prio.
9206         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
9207         Use op_prio and op_code_prio to determine if () should be
9208         printed around operand(s) or not.
9209
9210         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
9211         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
9212         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
9213         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
9214         pp_character instead of pp_string for single letter printing.
9215
9216 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
9217
9218         * doc/extend.texi: Fix '#pragma GCC option' typo.
9219
9220 2009-01-02  Richard Guenther  <rguenther@suse.de>
9221
9222         * doc/install.texi (--enable-checking): Mention different
9223         default for stage1.
9224         (--enable-stage1-checking): Document.
9225
9226 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
9227
9228         PR middle-end/30142
9229         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
9230         case to be an error.
9231
9232 2009-01-02  Ben Elliston  <bje@au.ibm.com>
9233
9234         * config/fp-bit.h (pack_d): Constify argument.
9235         * config/fp-bit.c (makenan): Constify return type. Remove casts.
9236         (isnan): Constify argument.
9237         (isinf): Likewise.
9238         (iszero): Likewise.
9239         (pack_d): Likewise.
9240         (_fpadd_parts): Constify return type.
9241         (_fpmul_parts): Likewise.
9242         (_fpdiv_parts): Likewise.
9243
9244 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
9245
9246         PR c/36489
9247         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
9248         warn about overwriting initializer with side-effects or
9249         -Woverride-init if !IMPLICIT.
9250         (output_init_element): Likewise.  Pass IMPLICIT down to
9251         add_pending_init.
9252         (process_init_element): Add IMPLICIT argument.  Pass it down
9253         to output_init_element.
9254         (push_init_element, pop_init_level, set_designator): Adjust
9255         process_init_element callers.
9256         (set_nonincremental_init, set_nonincremental_init_from_string):
9257         Adjust add_pending_init callers.
9258         (output_pending_init_elements): Adjust output_init_element callers.
9259         * c-tree.h (process_init_element): Adjust prototype.
9260         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
9261         process_init_element callers.
9262
9263 \f
9264 Copyright (C) 2009 Free Software Foundation, Inc.
9265
9266 Copying and distribution of this file, with or without modification,
9267 are permitted in any medium without royalty provided the copyright
9268 notice and this notice are preserved.