OSDN Git Service

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