OSDN Git Service

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