OSDN Git Service

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