OSDN Git Service

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