OSDN Git Service

7fcbf0474dbccfae0769bd5b9e11c690d7ae6877
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
4         record or union type with RECORD_OR_UNION_TYPE_P predicate.
5         (lto_input_ts_type_tree_pointers): Likewise.
6         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
7         (lto_output_ts_type_tree_pointers): Likewise.
8
9 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
10
11         Uniquization of constants at the Tree level
12         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
13         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
14         bit to the end.
15         (tree_output_constant_def): Declare.
16         * gimplify.c (gimplify_init_constructor): When using block copy, first
17         uniquize the constant constructor on the RHS.
18         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
19         DECL_IN_CONSTANT_POOL flag.
20         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
21         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
22         constant pool.
23         (assemble_variable): Deal with symbols belonging to the tree constant
24         pool.
25         (get_constant_section): Add ALIGN parameter and simplify.
26         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
27         (assemble_constant_contents): Use the expression of the VAR_DECL.
28         (output_constant_def_contents): Use the alignment of the VAR_DECL.
29         (tree_output_constant_def): New global function.
30         (mark_constant): Use the expression of the VAR_DECL.
31         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
32         its expression.
33         (output_object_block): Likewise and assemble the expression.
34
35 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
36
37         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
38         hash_tree, eq_tree): New tree hash table.
39         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
40         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
41         lto_orig_address_remove): Reimplement.
42
43 2010-04-28  Xinliang David Li  <davidxl@google.com>
44
45         PR c/42643
46         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
47         (compute_uninit_opnds_pos): New function.
48         (is_non_loop_exit_postdominating): New function.
49         (compute_control_dep_chain): New function.
50         (find_pdom): New function.
51         (convert_control_dep_chain_into_preds): New function.
52         (find_predicates): New function.
53         (find_control_equiv_block): New function.
54         (collect_phi_def_edges): New function.
55         (find_def_preds): New function.
56         (find_dom): New function.
57         (dump_predicates): New function.
58         (get_cmp_code): New function.
59         (is_value_included_in): New function.
60         (find_matching_predicate_in_rest_chains): New function.
61         (use_pred_not_overlap_with_undef_path_pred): New function.
62         (is_use_properly_guarded): New function.
63         (normalize_cond_1): New function.
64         (is_and_or_or): New function.
65         (normalize_cond): New function.
66         (is_gcond_subset_of): New function.
67         (is_subset_of_any): New function.
68         (is_or_set_subset_of): New function.
69         (is_and_set_subset_of): New function.
70         (is_norm_cond_subset_of): New function.
71         (is_pred_expr_subset_of): New function.
72         (is_pred_chain_subset_of): New function.
73         (is_included_in): New function.
74         (is_superset_of): New function.
75         (find_uninit_use): New function.
76         (warn_uninitialized_phi): New function.
77         (compute_possibly_undefined_names): New function.
78         (ssa_undefined_value_p): New function.
79         (execute_late_warn_uninitialized): New function.
80         * tree-ssa.c (ssa_undefined_value_p): Removed.
81         (warn_uninit): Changed to extern.
82         (warn_uninitialized_phi): Removed.
83         (warn_uninitialized_vars): Changed to extern.
84         (execute_late_warn_uninitialized): Removed
85         * tree-flow.h: Add new prototypes.
86         * timevar.def: Add new time variable.
87         * Makefile.in: Add new build file.
88
89 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
90
91         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
92         type if available.
93
94 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
95
96         PR target/22224
97         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
98
99 2010-04-28  Martin Jambor  <mjambor@suse.cz>
100
101         * cgraph.h (struct cgraph_node): New field indirect_calls.
102         (struct cgraph_indirect_call_info): New type.
103         (struct cgraph_edge): Removed field indirect_call. New fields
104         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
105         (cgraph_create_indirect_edge): Declare.
106         (cgraph_make_edge_direct): Likewise.
107         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
108         * ipa-prop.h (struct ipa_param_call_note): Removed.
109         (struct ipa_node_params): Removed field param_calls.
110         (ipa_create_all_structures_for_iinln): Declare.
111         * cgraph.c: Described indirect edges and uids in initial comment.
112         (cgraph_add_edge_to_call_site_hash): New function.
113         (cgraph_edge): Search also among the indirect edges, use
114         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
115         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
116         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
117         site hash.
118         (initialize_inline_failed): Assign a reason to indirect edges.
119         (cgraph_create_edge_1): New function.
120         (cgraph_create_edge): Moved some functionality to
121         cgraph_create_edge_1.
122         (cgraph_create_indirect_edge): New function.
123         (cgraph_edge_remove_callee): Add an assert checking for
124         non-indirectness.
125         (cgraph_edge_remove_caller): Special-case indirect edges.
126         (cgraph_remove_edge): Likewise.
127         (cgraph_set_edge_callee): New function.
128         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
129         (cgraph_make_edge_direct): New function.
130         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
131         the declaration of the call statement matches.
132         (cgraph_node_remove_callees): Special-case indirect edges.
133         (cgraph_clone_edge): Likewise.
134         (cgraph_clone_node): Clone also the indirect edges.
135         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
136         indirect_call, dump count of indirect_calls edges.
137         * ipa-prop.c (iinlining_processed_edges): New variable.
138         (ipa_note_param_call): Create indirect edges instead of
139         creating notes.  New parameter node.
140         (ipa_analyze_call_uses): New parameter node, pass it on to
141         ipa_note_param_call.
142         (ipa_analyze_stmt_uses): Likewise.
143         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
144         (print_edge_addition_message): Work on edges rather than on notes.
145         (update_call_notes_after_inlining): Likewise, renamed to
146         update_indirect_edges_after_inlining.
147         (ipa_create_all_structures_for_iinln): New function.
148         (ipa_free_node_params_substructures): Do not free notes.
149         (ipa_edge_duplication_hook): Propagate bits within
150         iinlining_processed_edges bitmap.
151         (ipa_node_duplication_hook): Do not duplicate notes.
152         (free_all_ipa_structures_after_ipa_cp): Renamed to
153         ipa_free_all_structures_after_ipa_cp.
154         (free_all_ipa_structures_after_iinln): Renamed to
155         ipa_free_all_structures_after_iinln.g
156         (ipa_write_param_call_note): Removed.
157         (ipa_read_param_call_note): Removed.
158         (ipa_write_indirect_edge_info): New function.
159         (ipa_read_indirect_edge_info): Likewise.
160         (ipa_write_node_info): Do not stream notes, do stream information
161         in indirect edges.
162         (ipa_read_node_info): Likewise.
163         (lto_ipa_fixup_call_notes): Removed.
164         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
165         * ipa-inline.c (pass_ipa_inline): Likewise.
166         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
167         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
168         * tree-inline.c (copy_bb): Removed an unnecessary double check for
169         is_gimple_call.
170         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
171         edges.
172         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
173         (output_cgraph): Stream also indirect edges.
174         (lto_output_edge): Added capability to stream indirect edges.
175         (input_edge): Likewise.
176         (input_cgraph_1): Likewise.
177
178 2010-04-28  Richard Guenther  <rguenther@suse.de>
179
180         PR tree-optimization/43879
181         PR tree-optimization/43909
182         * tree-ssa-structalias.c (struct variable_info): Add
183         only_restrict_pointers flag.
184         (new_var_info): Initialize it.  Increment stats.total_vars here.
185         (create_function_info_for): Do not increment stats.total_vars
186         here.
187         (get_function_part_constraint): Fix build with C++.
188         (insert_into_field_list): Remove.
189         (push_fields_onto_fieldstack): Properly merge fields.
190         (create_variable_info_for): Split and simplify.
191         (create_variable_info_for_1): New piece.
192         (intra_create_variable_infos): Properly make restrict constraints
193         from parameters.
194
195 2010-04-28  Richard Guenther  <rguenther@suse.de>
196
197         PR c++/43880
198         * tree-inline.c (copy_bind_expr): Also copy bind expr vars
199         value-exprs.
200
201 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
202             Jan Hubicka <hubicka@ucw.cz>
203
204         * doc/invoke.texi (-Wsuggest-attribute=const,
205         -Wsuggest-attribute=pure): Document.
206         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
207         (function_always_visible_to_compiler_p,
208         suggest_attribute, warn_function_pure, warn_function_const):
209         New functions.
210         (check_call): Improve debug info.
211         (analyze_function): Do not check availability.
212         (add_new_function): Check availability.
213         (propagate): Output warnings.
214         (skip_function_for_local_pure_const): New function.
215         (local_pure_const): Use it; output warnings.
216         * common.opt (Wsuggest-attribute=const,
217         Wsuggest-attribute=pure): New.
218
219 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
220
221         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
222         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
223         or DW_CFA_def_cfa_offset{,_sf}.
224
225 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
226
227         * tree.h: Fix truncated long macros.
228
229 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
230
231         * collect2.c (TARGET_64BIT): Redefine to target's default.
232         * tlink.c: Likewise.
233         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
234         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
235         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
236         for underscoring __USER_LABEL_PREFIX__.
237         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
238         (SUB_LINK_ENTRY32): New.
239         (SUB_LINK_ENTRY64): New.
240         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
241         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
242         (SUB_LINK_ENTRY64): New.
243         (SUB_LINK_ENTRY): New.
244         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
245         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
246         x64 target is choosen.
247         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
248         * configure: Regenerated.
249         * configure.ac (leading-mingw64-underscores): Option added.
250
251 2010-04-27  Jan Hubicka  <jh@suse.cz>
252
253         * doc/invoke.texi (-fipa-profile): Document.
254         * opts.c (decode_options): Enable ipa-profile at -O1.
255         * timevar.def (TV_IPA_PROFILE): Define.
256         * common.opt (fipa-profile): Add.
257         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
258         flag for clones.
259         (cgraph_propagate_frequency): Handle only local ones.
260         * tree-pass.h (pass_ipa_profile): Declare.
261         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
262         (pass_ipa_profile): Use TV_IPA_PROFILE.
263         * ipa.c (ipa_profile): New function.
264         (gate_ipa_profile): Likewise.
265         (pass_ipa_profile): New global variable.
266         * passes.c (pass_ipa_profile): New.
267
268 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
269
270         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
271
272 2010-04-27  Martin Jambor  <mjambor@suse.cz>
273
274         PR middle-end/43812
275         * ipa.c (dissolve_same_comdat_group_list): New function.
276         (function_and_variable_visibility): Call
277         dissolve_same_comdat_group_list when comdat group contains external or
278         newly local nodes.
279         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
280         lists are circular and that they contain only DECL_ONE_ONLY nodes.
281
282 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
283
284         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
285         (const_hash_1) <VECTOR_CST>: New case.
286         (compare_constant) <VECTOR_CST>: Likewise.
287         <ADDR_EXPR>: Deal with LABEL_REFs.
288         (copy_constant) <VECTOR_CST>: New case.
289
290 2010-04-27  Jan Hubicka  <jh@suse.cz>
291
292         * cgraph.c (cgraph_propagate_frequency): New function.
293         * cgraph.h (cgraph_propagate_frequency): Declare.
294         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
295         cgraph_propagate_frequency.
296
297 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
298
299         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
300
301 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
302
303         PR target/40657
304         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
305         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
306         here to determine which regs to push and how much stack to reserve.
307
308 2010-04-27  Jie Zhang  <jie@codesourcery.com>
309
310         * doc/gimple.texi (gimple_statement_with_ops): Remove
311         addresses_taken field.
312         (gimple_statement_with_memory_ops): Likewise.
313
314 2010-04-27  Jan Hubicka  <jh@suse.cz>
315
316         * tree-inline.c (eni_inlining_weights): Remove.
317         (estimate_num_insns): Special case more builtins.
318
319 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
320
321         PR c/32207
322         * c-typeck.c (build_binary_op): Move forward check for comparison
323         pointer with null pointer constant and adjust the diagnostic message.
324
325 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
326
327         PR lto/42776
328         * configure.ac (gcc_cv_as_section_has_align): Set if installed
329         binutils supports extended .section directive needed by LTO, or
330         warn if older binutils found.
331         (LTO_BINARY_READER): New AC_SUBST'd variable.
332         (LTO_USE_LIBELF): Likewise.
333         * gcc/config.gcc (lto_binary_reader): New target-specific configure
334         variable.
335         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
336         (LTO_USE_LIBELF): Likewise.
337         * configure: Regenerate.
338
339         * collect2.c (is_elf): Rename from this ...
340         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
341          object files in addition to ELF-formatted ones.
342         (scan_prog_file): Caller updated.  Also allow for LTO info marker
343         symbol to be prefixed or not by an extra underscore.
344
345         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
346         * config/i386/winnt.c: Also #include lto-streamer.h
347         (i386_pe_asm_named_section): Specify 1-byte section alignment for
348         LTO named sections.
349         (i386_pe_asm_output_aligned_decl_common): Add comment.
350         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
351
352 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
353
354         PR target/43889
355         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
356         Add missing earlyclobber for second alternative.
357
358 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
359
360         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
361         bits for artificial defs at the top of the block.
362         * fwprop.c (single_def_use_enter_block): Don't call it.
363
364 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
365
366         PR 43715
367         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
368         instead of "$gcc_cv_objdump -T".
369         Use "-undefined dynamic_lookup" on darwin.
370         * gcc/configure: Regenerate.
371
372 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
373
374         PR c/43893
375         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
376
377 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
378
379         * c-parser.c (struct c_token): Move location field up.
380         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
381         (struct c_declspecs): Convert typespec_word, storage_class, and
382         default_int_p into bitfields.
383         (struct c_declarator): Move loc field up.
384
385 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
386
387         * cfgloop.h (struct loop): Move can_be_parallel field up.
388         * ipa-prop.h (struct ip_node_params): Move bitfields up.
389         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
390         down.
391         (struct iv_cand): Convert pos field into a bitfield.
392         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
393         field up.
394         (struct _stmt_vec_info): Shuffle fields for better packing.
395
396 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
397
398         * varasm.c (IN_NAMED_SECTION): Remove guard.
399         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
400         (IN_NAMED_SECTION_P): ...this.
401         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
402         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
403
404 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
405
406         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
407         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
408         of shadowing it.  Fix comments.
409
410 2010-04-26  Jan Hubicka  <jh@suse.cz>
411
412         * cgraph.c (cgraph_create_node): Set node frequency to normal.
413         (cgraph_clone_node): Copy function frequency.
414         * cgraph.h (node_frequency): New enum
415         (struct cgraph_node): Add.
416         * final.c (rest_of_clean_state): Update.
417         * lto-cgraph.c (lto_output_node): Output node frequency.
418         (input_overwrite_node): Input node frequency.
419         * tre-ssa-loop-ivopts (computation_cost): Update.
420         * lto-streamer-out.c (output_function): Do not output function
421         frequency.
422         * predict.c (maybe_hot_frequency_p): Update and handle functions
423         executed once.
424         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
425         attribute lookup.
426         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
427         (compute_function_frequency): Set noreturn functions to be executed
428         once.
429         (choose_function_section): Update.
430         * lto-streamer-in.c (input_function): Do not input function frequency.
431         * function.c (allocate_struct_function): Do not initialize function
432         frequency.
433         * function.h (function_frequency): Remove.
434         (struct function): Remove function frequency.
435         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
436         (try_update): Update.
437         * tree-inline.c (initialize_cfun): Do not update function frequency.
438         * passes.c (pass_init_dump_file): Update.
439         * i386.c (ix86_compute_frame_layout): Update.
440         (ix86_pad_returns): Update.
441
442 2010-04-26  Jie Zhang  <jie@codesourcery.com>
443
444         PR tree-optimization/43833
445         * tree-vrp.c (range_int_cst_p): New.
446         (range_int_cst_singleton_p): New.
447         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
448         when both operands are constants.  Use range_int_cst_p in
449         BIT_IOR_EXPR case.
450
451 2010-04-26  Jan Hubicka  <jh@suse.cz>
452
453         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
454
455 2010-04-26  Richard Guenther  <rguenther@suse.de>
456
457         PR lto/43080
458         * gimple.c (gimple_decl_printable_name): Deal gracefully
459         with a NULL DECL_NAME.
460
461 2010-04-26  Richard Guenther  <rguenther@suse.de>
462
463         PR lto/42425
464         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
465         if emitting debug information and it is either a function
466         or a namespace decl.
467
468 2010-04-26  Ira Rosen  <irar@il.ibm.com>
469
470         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
471         determine if the statement is vectorizable, and a macro to access it.
472         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
473         Skip statements that can't be vectorized. If the analysis fails,
474         mark the statement as unvectorizable if vectorizing basic block.
475         (vect_compute_data_refs_alignment): Likewise.
476         (vect_verify_datarefs_alignment): Skip statements marked as
477         unvectorizable. Add print.
478         (vect_analyze_group_access): Skip statements that can't be
479         vectorized. If the analysis fails, mark the statement as
480         unvectorizable if vectorizing basic block.
481         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
482         * tree-vect-stmts.c (vectorizable_store): Fix the number of
483         generated stmts for SLP.
484         (new_stmt_vec_info): Initialize the new field.
485         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
486         statements marked as unvectorizable.
487
488 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
489
490         * c-common.c (flag_isoc1x): New.
491         (flag_isoc99): Update comment.
492         * c-common.h (flag_isoc1x): New.
493         (flag_isoc99): Update comment.
494         * c-cppbuiltin.c (builtin_define_float_constants): Also define
495         __<type>_DECIMAL_DIG__.
496         * c-opts.c (set_std_c1x): New.
497         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
498         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
499         * c.opt (-std=c1x, -std=gnu1x): New options.
500         * doc/cpp.texi: Mention -std=c1x.
501         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
502         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
503         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
504         * doc/standards.texi: Mention C1X.
505         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
506         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
507         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
508         Define for C1X.
509
510 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
511
512         * config/i386/gmon-sol2.c (_mcleanup): Change format string
513         placeholder from 0x%x to %#x.
514         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
515         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
516         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
517         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
518         * config/i386/i386.c (ix86_target_string): Ditto.
519         (output_pic_addr_const): Ditto.
520         (print_operand): Ditto.
521
522 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
523
524         * combine.c (find_split_point): Add third argument.  Use it
525         to find nested multiply-accumulate instructions.  Adjust calls.
526         (try_combine): Adjust call to find_split_point.
527
528 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
529
530         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
531
532 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
533
534         PR tree-optimization/41442
535         * fold-const.c (merge_truthop_with_opposite_arm): New function.
536         (fold_binary_loc): Call it.
537
538 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
539
540         * toplev.c (general_init): Set default for fdiagnostics-show-option.
541         * opts.c (common_handle_option): Allow disabling it.
542         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
543
544 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
545
546         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
547         between modes if both types are integral.
548
549 2010-04-23  Richard Guenther  <rguenther@suse.de>
550
551         PR tree-optimization/43572
552         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
553
554 2010-04-23  Richard Guenther  <rguenther@suse.de>
555
556         PR lto/43455
557         * tree-inline.c (tree_can_inline_p): Also check compatibility
558         of return types.
559
560 2010-04-23  Martin Jambor  <mjambor@suse.cz>
561
562         PR tree-optimization/43846
563         * tree-sra.c (struct access): New flag grp_assignment_read.
564         (build_accesses_from_assign): Set grp_assignment_read.
565         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
566         (enum mark_read_status): New type.
567         (analyze_access_subtree): Propagate grp_assignment_read, create
568         accesses also if both direct_read and root->grp_assignment_read.
569
570 2010-04-23  Martin Jambor  <mjambor@suse.cz>
571
572         PR middle-end/43835
573         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
574         function does not have type attributes.
575
576 2010-04-23  Richard Guenther  <rguenther@suse.de>
577
578         PR lto/42653
579         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
580         of FUNCTION_DECLs.
581
582 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
583
584         * sese.h (create_if_region_on_edge): Remove.
585
586         * sese.c (create_if_region_on_edge): Make static.
587
588         * tree-inline.c: Do not include ggc.h.
589
590         * expr.c: Do not include ggc.h.
591
592         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
593         dependencies.
594
595 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
596
597         PR target/43744
598         * config/sh/sh.c (find_barrier): Don't emit a constant pool
599         in the middle of insns for casesi_worker_2.
600
601 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
602
603         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
604
605 2010-04-22  Ira Rosen  <irar@il.ibm.com>
606
607         PR tree-optimization/43842
608         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
609         loop unrolling in update of exit phis. Fix comment.
610         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
611         least two reduction statements in the loop before starting SLP
612         analysis.
613
614 2010-04-22  Nick Clifton  <nickc@redhat.com>
615
616         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
617
618 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
619
620         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
621         to simplify a + ~a.
622
623 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
624
625         * tree-parloops.c (loop_parallel_p): New argument
626         parloop_obstack.  Pass it down.
627         (parallelize_loops): New variable parloop_obstack.  Initialize it,
628         pass it down, free it.
629
630         * tree-loop-linear.c (linear_transform_loops): Pass down
631         lambda_obstack.
632
633         * tree-data-ref.h (lambda_compute_access_matrices): New argument
634         of type struct obstack *.
635
636         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
637         scratch_obstack.  Initialize it, pass down, free it.
638
639         * lambda.h (lambda_loop_new): Remove.
640         (lambda_matrix_new, lambda_matrix_inverse)
641         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
642         argument of type struct obstack *.
643
644         * lambda-trans.c (lambda_trans_matrix_new): New argument
645         lambda_obstack.  Pass it down, use obstack allocation for ret.
646         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
647         it down.
648
649         * lambda-mat.c (lambda_matrix_get_column)
650         (lambda_matrix_project_to_null): Remove.
651         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
652         allocation for mat.
653         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
654         lambda_obstack.
655
656         * lambda-code.c (lambda_loop_new): New function.
657         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
658         (lambda_compute_auxillary_space, lambda_compute_target_space)
659         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
660         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
661         (build_access_matrix): New argument lambda_obstack.  Use obstack
662         allocation for am.
663         (lambda_compute_step_signs, lambda_compute_access_matrices): New
664         argument lambda_obstack.  Pass it down.
665
666 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
667
668         * optabs.h (expand_widening_mult): Declare.
669
670 2010-04-22  Richard Guenther  <rguenther@suse.de>
671
672         PR tree-optimization/43845
673         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
674         lookup the CALL_EXPR function and arguments.
675
676 2010-04-22  Nick Clifton  <nickc@redhat.com>
677
678         * config/stormy16/stormy16.c
679         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
680         * config/stormy16/stormy16.h: Tidy up formatting.
681         (DONT_USE_BUILTIN_SETJMP): Remove definition.
682         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
683         (ineqbranchsi): Delete pattern.
684         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
685         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
686         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
687         stormy16-lib2-ucmpsi2.c.
688
689 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
690
691         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
692         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
693         extra set merge_set_noclobber, and use it to relax the final test
694         slightly.
695         * df.h (df_simulate_find_noclobber_defs): Declare.
696         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
697         conditional defs.
698         (df_simulate_find_noclobber_defs): New function.
699
700 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
701
702         * config/i386/i386.md: Use {} around multi-line preparation statements.
703
704 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
705
706         * c-tree.h (push_init_level, pop_init_level, set_init_index)
707         (process_init_element): New argument of type struct obstack *.
708
709         * c-typeck.c (push_init_level, pop_init_level, set_designator)
710         (set_init_index, set_init_label, set_nonincremental_init)
711         (set_nonincremental_init_from_string, find_init_member)
712         (output_init_element, output_pending_init_elements)
713         (process_init_element): New argument braced_init_obstack.  Pass it
714         down.
715         (push_range_stack, add_pending_init): New argument
716         braced_init_obstack.  Use obstack allocation.
717
718         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
719         braced_init_obstack.  Pass it down.
720         (c_parser_braced_init): New variables ret, braced_init_obstack.
721         Initialize obstack, pass it down and finally free it.
722
723 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
724
725         PR middle-end/29274
726         * tree-pass.h (pass_optimize_widening_mul): Declare.
727         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
728         gate_optimize_widening_mul): New static functions.
729         (pass_optimize_widening_mul): New.
730         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
731         <case MULT_EXPR>: Remove support for widening multiplies.
732         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
733         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
734         simplify_gen_unary rather than directly building extensions.
735         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
736         WIDEN_MULT_EXPR.
737         * expmed.c (expand_widening_mult): New function.
738         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
739
740 2010-04-21  Jan Hubicka  <jh@suse.cz>
741
742         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
743         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
744         * lto-wpa-fixup.c: Remove.
745         * Makefile.in (lto-wpa-fixup.o): Remove.
746         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
747         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
748         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
749
750 2010-04-21  Jan Hubicka  <jh@suse.cz>
751
752         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
753         add write_optimization_summary, read_optimization_summary.
754         (ipa_write_summaries_of_cgraph_node_set): Remove.
755         (ipa_write_optimization_summaries): Declare.
756         (ipa_read_optimization_summaries): Declare.
757         * ipa-cp.c (pass_ipa_cp): Update.
758         * ipa-reference.c (pass_ipa_reference): Update.
759         * ipa-pure-const.c (pass_ipa_pure_const): Update.
760         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
761         Update.
762         * ipa-inline.c (pass_ipa_inline): Update.
763         * ipa.c (pass_ipa_whole_program): Update.
764         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
765         * passes.c (ipa_write_summaries_1): Do not test wpa.
766         (ipa_write_optimization_summaries_1): New.
767         (ipa_write_optimization_summaries): New.
768         (ipa_read_summaries): Do not test ltrans.
769         (ipa_read_optimization_summaries_1): New.
770         (ipa_read_optimization_summaries): New.
771
772 2010-04-21  Jan Hubicka  <jh@suse.cz>
773
774         * lto-cgraph.c (lto_output_node): Do not output comdat groups
775         for boundary nodes.
776         (output_cgraph): Do not arrange comdat groups for boundary nodes.
777
778 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
779
780         PR debug/40040
781         * dwarf2out.c (add_name_and_src_coords_attributes): Add
782         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
783
784 2010-04-21  Jan Hubicka  <jh@suse.cz>
785
786         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
787
788 2010-04-21  Jan Hubicka  <jh@suse.cz>
789
790         * varpool.c (decide_is_variable_needed): Variable is always needed
791         during ltrans.
792
793 2010-04-21  Jan Hubicka  <jh@suse.cz>
794
795         * opts.c (decode_options): Enable pure-const pass for whopr.
796
797 2010-04-21  Jan Hubicka  <jh@suse.cz>
798
799         * cgraph.c (dump_cgraph_node): Dump also assembler name.
800         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
801         at WPA dumping.
802         (cgraph_decide_inlining): Do not expect callee to be removed in all
803         cases.
804
805 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
806
807         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
808
809 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
810
811         * config/i386/i386.md (x86_shrd): Add athlon_decode and
812         amdfam10_decode attributes.
813
814 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
815
816         PR middle-end/43570
817         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
818         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
819         (lower_copyprivate_clauses): Use private var in outer
820         context instead of original var.  Make sure the types
821         are correct for VLAs.
822
823 2010-04-21  Richard Guenther  <rguenther@suse.de>
824
825         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
826         to non-pointer objects.
827
828 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
829
830         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
831         last chain entry if it starts with the still current label.
832         (add_location_or_const_value_attribute): Check that
833         loc_list->first->next is NULL instead of comparing ->first with ->last.
834         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
835         to add_var_loc_to_decl.
836
837         * dwarf2out.c (output_call_frame_info): For dw_cie_version
838         >= 4 add also address size and segment size fields into CIE header.
839
840         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
841         long as address size is the same as sizeof (void *) and
842         segment size is 0.
843         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
844         address size or segment size is unexpected, return DW_EH_PE_omit.
845         (classify_object_over_fdes): If get_cie_encoding returned
846         DW_EH_PE_omit, return -1.
847         (init_object): If classify_object_over_fdes returned -1,
848         pretend there were no FDEs at all.
849
850 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
851
852         * config/i386/i386.md (bswap<mode>2): Macroize expander from
853         bswap{si,di}2 using SWI48 mode iterator.
854         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
855         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
856         set modrm attribute of bswap insn to 0 and remove length attribute.
857         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
858         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
859         set mode attribute to <MODE> and remove length attribute.
860
861 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
862
863         PR rtl-optimization/43520
864         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
865         zero available registers.
866
867 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
868
869         * builtins.c (fold_builtin_cproj): Fold more cases.
870
871 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
872
873         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
874         (fold_builtin_1): Fold builtin cproj.
875         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
876         Use ATTR_CONST_NOTHROW_LIST.
877
878 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
879
880         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
881         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
882         ffsi2_no_cmove for !TARGET_CMOVE.
883         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
884         (ffssi2): Remove expander.
885         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
886         mode iterator.
887         (ctz<mode>2): Ditto from ctz{si,di}2.
888         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
889         mode iterator.
890         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
891         mode iterator.
892
893 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
894
895         * dwarf2out.c (AT_linkage_name): Define.
896         (clone_as_declaration): Handle DW_AT_linkage_name.
897         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
898         of DW_AT_MIPS_linkage_name.
899         (move_linkage_attr): Likewise.
900         (dwarf2out_finish): Likewise.
901
902 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
903
904         PR middle-end/41952
905         * fold-const.c (fold_comparison): New folding rule.
906
907 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
908
909         * double-int.h (double_int_setbit): Declare.
910         * double-int.c (double_int_setbit): New function.
911         * rtl.h (immed_double_int_const): Declare.
912         * emit-rtl.c (immed_double_int_const): New function.
913         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
914         and immed_double_int_const functions.
915         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
916         expand_copysign_bit):  (Ditto.).
917         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
918         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
919         * dojump.c (prefer_and_bit_test): (Ditto.).
920         * expr.c (convert_modes, reduce_to_bit_field_precision,
921         const_vector_from_tree): (Ditto.).
922         * expmed.c (mask_rtx, lshift_value): (Ditto.).
923
924 2010-04-20  Jan Hubicka  <jh@suse.cz>
925
926         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
927         (dump_cgraph_node): Dump new flags.
928         * cgraph.h (struct cgraph_node): Add flags
929         reachable_from_other_partition and in_other_partition.
930         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
931         other partition can not be removed.
932         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
933         the other partition must be output; silence sanity checking on
934         leaking functions bodies from other paritition.
935         * lto-cgraph.c (reachable_from_other_partition_p): New function.
936         (lto_output_node): Output new flags; do not sanity check that inline
937         clones are output; drop lto_forced_extern_inline_p code; do not mock
938         visibility flags at partition boundaries.
939         (add_node_to): New function.
940         (output_cgraph): Use it to sort functions so masters appear before
941         clones.
942         (input_overwrite_node): Input new flags.
943         * passes.c (ipa_write_summaries): Do not call
944         lto_new_extern_inline_states.
945         * lto-section-out.c (forced_extern_inline, lto_new_extern_inline_states,
946         lto_delete_extern_inline_states, lto_force_functions_extern_inline,
947         lto_forced_extern_inline_p): Kill.
948         * lto-streamer.h (lto_new_extern_inline_states,
949         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
950         lto_forced_extern_inline_p): Kill.
951
952 2010-04-20  Richard Guenther  <rguenther@suse.de>
953
954         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
955         from vars that can have pointers.
956         (process_constraint): Dump useless constraints.
957
958 2010-04-20  Richard Guenther  <rguenther@suse.de>
959
960         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
961         (dump_sa_points_to_info): Remove asserts.
962         (init_base_vars): nothing_id isn't an escape point nor does it
963         have pointers.
964
965 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
966
967         * tree.h (TYPE_REF_IS_RVALUE): Define.
968         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
969         should_move_die_to_comdat, prune_unused_types_walk): Handle
970         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
971         (modified_type_die, gen_reference_type_die): Emit
972         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
973         if TYPE_REF_IS_RVALUE and -gdwarf-4.
974
975 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
976
977         PR target/43635
978         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
979         calls for -fpic -m31 if they have been sibcall optimized.
980
981 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
982
983         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
984         ar.lc fixed and call-used.
985
986         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
987
988 2010-04-19  Jan Hubicka  <jh@suse.cz>
989
990         * opts.c (decode_options): Disable whpr incompatible passes.
991         * lto/lto.c (lto_1_to_1_map): Skip clones.
992         (read_cgraph_and_symbols): Do not mark everything as needed.
993         (do_whole_program_analysis): Do map only after optimizing;
994         set proper cgraph_state; use passmanager.
995
996 2010-04-19  DJ Delorie  <dj@redhat.com>
997
998         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
999         POINTER_PLUS_EXPR and fix them.
1000
1001 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1002
1003         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1004         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1005         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1006         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1007         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1008         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1009         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1010         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1011         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1012         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1013         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1014
1015 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1016
1017         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1018         (check_cond_move_block): Likewise.
1019         (cond_move_process_if_block): Likewise.
1020         (noce_find_if_block): Improve formatting.
1021         (find_if_header): Pass 0 to memset and tweak conditions.
1022         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1023
1024 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1025
1026         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1027         for -gdwarf-4.
1028
1029         PR middle-end/43337
1030         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1031         with non-local decl doesn't need chain.
1032
1033 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1034
1035         * ira-color.c (allocno_reload_assign): Avoid accumulating
1036         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1037
1038 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1039
1040         * gimple.h (create_tmp_reg): Declare.
1041         * gimplify.c (create_tmp_reg): New function.
1042         (gimplify_return_expr): Use create_tmp_reg.
1043         (gimplify_omp_atomic): Likewise.
1044         (gimple_regimplify_operands): Likewise.
1045         * tree-dfa.c (make_rename_temp): Likewise.
1046         * tree-predcom.c (predcom_tmp_var): Likewise.
1047         (reassociate_to_the_same_stmt): Likewise.
1048         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
1049         (get_replaced_param_substitute): Likewise.
1050         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1051         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1052         * tree-ssa-pre.c (get_representative_for): Likewise.
1053         (create_expression_by_pieces): Likewise.
1054         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
1055         (create_tailcall_accumulator): Likewise.
1056
1057 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1058
1059         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
1060         new_stmt.
1061         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
1062
1063 2010-04-19  Richard Guenther  <rguenther@suse.de>
1064
1065         PR tree-optimization/43796
1066         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
1067         from SCEV in the lattice.
1068         (vrp_visit_phi_node): Dump change.
1069
1070 2010-04-19  Richard Guenther  <rguenther@suse.de>
1071
1072         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
1073         * configure: Re-generated.
1074
1075 2010-04-19  Richard Guenther  <rguenther@suse.de>
1076
1077         PR tree-optimization/43783
1078         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
1079         constant ARRAY_REF operands two and three if possible.
1080
1081 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
1082
1083         PR target/43766
1084         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
1085
1086 2010-04-19  Jie Zhang  <jie@codesourcery.com>
1087
1088         PR target/43662
1089         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
1090
1091 2010-04-19  Ira Rosen  <irar@il.ibm.com>
1092
1093         PR tree-optimization/37027
1094         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
1095         and macro to access it.
1096         (vectorizable_reduction): Add argument.
1097         (vect_get_slp_defs): Likewise.
1098         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
1099         statements for possible use in SLP.
1100         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
1101         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
1102         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
1103         add new argument.
1104         (vectorizable_reduction): Likewise.
1105         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
1106         vect_get_slp_defs.
1107         (vectorizable_type_demotion, vectorizable_type_promotion,
1108         vectorizable_store): Likewise.
1109         (vect_analyze_stmt): Update call to vectorizable_reduction.
1110         (vect_transform_stmt): Likewise.
1111         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
1112         (vect_build_slp_tree): Fix indentation. Check that there are no loads
1113         from different interleaving chains in same node.
1114         (vect_slp_rearrange_stmts): New function.
1115         (vect_supported_load_permutation_p): Allow load permutations for
1116         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
1117         inside SLP nodes if necessary.
1118         (vect_analyze_slp_instance): Handle reductions.
1119         (vect_analyze_slp): Try to build SLP instances originating from groups
1120         of reductions.
1121         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
1122         (vect_get_constant_vectors): Create initial vectors for reductions
1123         according to reduction code. Add new argument.
1124         (vect_get_slp_defs): Add new argument, pass it to
1125         vect_get_constant_vectors.
1126         (vect_schedule_slp_instance): Remove SLP tree root statements.
1127
1128 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1129
1130         * tree.h (ENUM_IS_SCOPED): Define.
1131         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
1132         for ENUM_IS_SCOPED enums.
1133
1134 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1135
1136         * fold-const.c (fold_comparison): Use ssizetype.
1137         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1138         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
1139         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
1140         * tree-object-size.c (compute_object_sizes): Use size_type_node.
1141
1142         * tree.h (initialize_sizetypes): Remove parameter.
1143         (build_common_tree_nodes): Remove second parameter.
1144         * stor-layout.c (initialize_sizetypes): Remove parameter.
1145         Always create an unsigned type.
1146         (set_sizetype): Assert that the passed type is unsigned and simplify.
1147         * tree.c (build_common_tree_nodes): Remove second parameter.
1148         Adjust call to initialize_sizetypes.
1149         * c-decl.c (c_init_decl_processing): Remove second argument in call to
1150         build_common_tree_nodes.
1151
1152 2010-04-18  Matthias Klose  <doko@ubuntu.com>
1153
1154         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
1155
1156 2010-04-18  Ira Rosen  <irar@il.ibm.com>
1157
1158         PR tree-optimization/43771
1159         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
1160         load permutation doesn't have gaps.
1161
1162 2010-04-18  Jan Hubicka  <jh@suse.cz>
1163
1164         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
1165         (sse_prologue_save_insn expander): Use new pattern.
1166         (sse_prologue_save_insn1): New pattern and splitter.
1167         (sse_prologue_save_insn): Update to deal also with 64bit aligned
1168         blocks.
1169         * i386.c (setup_incoming_varargs_64): Do not compute jump
1170         destination here.
1171         (ix86_gimplify_va_arg): Update alignment needed.
1172         (ix86_local_alignment): Do not align all local arrays to 128bit.
1173
1174 2010-04-17  Jan Hubicka  <jh@suse.cz>
1175
1176         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
1177
1178 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1179
1180         * arm.md (negdi2): Remove redundant code to force values into a
1181         register.
1182
1183 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1184
1185         * arm/bpabi.S: Add EABI alignment attributes to objects.
1186         * arm/bpabi-v6m.S: Likewise.
1187         * arm/crti.asm: Likewise.
1188         * arm/crtn.asm: Likewise.
1189         * arm/lib1funcs.asm: Likewise.
1190         * arm/libunwind.S: Likewise.
1191
1192 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1193
1194         * arm-protos.h (tune_params): New structure.
1195         * arm.c (current_tune): New variable.
1196         (arm_constant_limit): Delete.
1197         (struct processors): Add pointer to the tune parameters.
1198         (arm_slowmul_tune): New tuning option.
1199         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
1200         (all_cores): Adjust to pick up the tuning model.
1201         (arm_constant_limit): New function.
1202         (arm_override_options): Select the appropriate tuning model.  Delete
1203         initialization of arm_const_limit.
1204         (arm_split_constant): Use the new constant-limit model.
1205         (arm_rtx_costs): Pick up the current tuning model.
1206         * arm.md (is_strongarm, is_xscale): Delete.
1207         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
1208         for Xscale variant architectures.
1209         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
1210
1211 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1212
1213         * config/arm/arm.c (arm_gen_constant): Remove unused variable
1214         can_shift.
1215         (arm_rtx_costs_1): Remove unused variable extra_cost.
1216         (arm_unwind_emit_set): Use variable offset.
1217         (thumb1_output_casesi): Remove unused variable flags.
1218
1219 2010-04-16  Jeff Law  <law@redhat.com>
1220
1221         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
1222         needing assignment rather than doing a two-phase assignment.  Remove
1223         unused variable 'm'.
1224
1225 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1226
1227         PR bootstrap/43767
1228         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
1229
1230 2010-04-16  Doug Kwan  <dougkwan@google.com>
1231
1232         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
1233         (next_operand_entry_id): New static variable.
1234         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
1235         (add_to_ops_vec): Assigned unique ID to operand entry.
1236         (struct oecount_s): New field ID.
1237         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
1238         (undistribute_ops_list): Assign unique IDs to oecounts.
1239         (init_reassoc): reset next_operand_entry_id.
1240
1241 2010-04-16  Doug Kwan  <dougkwan@google.com>
1242
1243         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
1244         missing left parenthesis.
1245
1246 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
1247
1248         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
1249         *btdi_rex64 using SWI48 mode iterator.
1250         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
1251         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
1252         *jcc_btdi_mask_rex64.
1253
1254 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
1255
1256         * double-int.h (tree_to_double_int): Convert to macro.
1257         * double-int.c (tree_to_double_int): Remove.
1258
1259 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1260
1261         PR debug/43762
1262         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
1263         with want_address 2 and in case a single element list might be
1264         possible, call it again with want_address 0.
1265
1266 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1267
1268         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
1269         case 'W' print operands for HI mode.
1270         * config/h8300/h8300.h (Y0, Y2) : New constraints.
1271         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
1272         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
1273         * config/h8300/predicate.md (bit_register_indirect_operand): New.
1274
1275         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
1276
1277         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
1278         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
1279         #xx:3 and #xx:4 mode.
1280
1281         * config/h8300/h8300.md (inverted load with HImode dest): Add
1282         support for H8300SX.
1283
1284         * config/h8300/predicate.md (bit_operand): Allow immediate values that
1285         satisfy 'U' constraint.
1286
1287 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1288
1289         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
1290         * configure: Regenerate.
1291         * config.in: Regenerate.
1292         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
1293         works.
1294
1295 2010-04-16  Richard Guenther  <rguenther@suse.de>
1296
1297         * tree.h (struct tree_decl_minimal): Move pt_uid ...
1298         (struct tree_decl_common): ... here.
1299         (DECL_PT_UID): Adjust.
1300         (SET_DECL_PT_UID): Likewise.
1301         (DECL_PT_UID_SET_P): Likewise.
1302
1303 2010-04-16  Richard Guenther  <rguenther@suse.de>
1304
1305         PR tree-optimization/43572
1306         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
1307         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
1308         * tree-flow.h (is_call_clobbered): Remove.
1309         * tree-flow-inline.h (is_call_clobbered): Likewise.
1310         * tree-dfa.c (dump_variable): Do not dump call clobber state.
1311         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
1312         (execute_return_slot_opt): Adjust.
1313         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
1314         check for call clobbered vars here.
1315         (find_tail_calls): Move tailcall verification to the
1316         proper place.
1317
1318 2010-04-16  Diego Novillo  <dnovillo@google.com>
1319
1320         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
1321
1322 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1323
1324         PR target/40603
1325         * config/arm/arm.md (cbranchqi4): New pattern.
1326         * config/arm/predicates.md (const0_operand,
1327         cbranchqi4_comparison_operator): New predicates.
1328
1329 2010-04-16  Richard Guenther  <rguenther@suse.de>
1330
1331         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
1332         (dump_gimple_stmt): Likewise.
1333
1334 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1335
1336         * recog.h (struct recog_data): New field is_operator.
1337         (struct insn_operand_data): New field is_operator.
1338         * recog.c (extract_insn): Set recog_data.is_operator.
1339         * genoutput.c (output_operand_data): Emit code to set the
1340         is_operator field.
1341         * reload.c (find_reloads): Use it rather than testing for an
1342         empty constraint string.
1343
1344         PR target/41514
1345         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
1346         If the previous insn is a cbranchsi4_insn with the same arguments,
1347         omit the compare instruction.
1348
1349         * config/arm/arm.md (addsi3_cbranch): If destination is a high
1350         register, inputs must be low registers and we need a low register
1351         scratch.  Handle alternative 2 like alternative 3.
1352
1353 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1354
1355         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
1356         don't call get_addr on both.  If one expression is a VALUE and
1357         the other a REG, check VALUE's locs if the REG isn't among them.
1358
1359 2010-04-16  Christian Bruel  <christian.bruel@st.com>
1360
1361         * config/sh/sh.h (sh_frame_pointer_required): New function.
1362         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
1363         (flag_omit_frame_pointer) Set.
1364         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
1365         (rounded_frame_size): Adjust size with outgoing_args_size.
1366         (sh_set_return_address): Must return from stack pointer.
1367         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
1368         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1369         (ACCUMULATE_OUTGOING_ARGS): Define.
1370         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
1371         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
1372
1373 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1374
1375         PR target/43471
1376         * config/sh/sh.c (sh_legitimize_reload_address): Use
1377         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
1378         Remove a unneeded check for offset_base.
1379
1380 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1381
1382         * configure: Regenerated.
1383
1384 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1385
1386         * config/s390/s390.c (s390_call_save_register_used): Switch back
1387         to HARD_REGNO_NREGS.
1388
1389 2010-04-15  Richard Guenther  <rguenther@suse.de>
1390
1391         * alias.c (alias_set_subset_of): Handle alias-set zero
1392         child properly.
1393
1394 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
1395             Julian Brown  <julian@codesourcery.com>
1396
1397         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
1398         alternatives according to use of high and low regs.
1399         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1400         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
1401         optimizing for size on Thumb-2.
1402
1403 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
1404
1405         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
1406
1407 2010-04-15  Richard Guenther  <rguenther@suse.de>
1408
1409         * tree-ssa-structalias.c (struct variable_info): Add
1410         is_fn_info flag.
1411         (new_var_info): Initialize it.
1412         (dump_constraints): Support printing last added constraints.
1413         (debug_constraints): Adjust.
1414         (dump_constraint_graph): Likewise.
1415         (make_heapvar_for): Check for NULL cfun.
1416         (get_function_part_constraint): New function.
1417         (get_fi_for_callee): Likewise.
1418         (find_func_aliases): Properly implement IPA PTA constraints.
1419         (process_ipa_clobber): New function.
1420         (find_func_clobbers): Likewise.
1421         (insert_into_field_list_sorted): Remove.
1422         (create_function_info_for): Properly allocate vars for IPA mode.
1423         Do not use insert_into_field_list_sorted.
1424         (create_variable_info_for): Properly generate constraints for
1425         global vars in IPA mode.
1426         (dump_solution_for_var): Always dump the solution.
1427         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
1428         (find_what_var_points_to): Adjust.
1429         (pt_solution_set): Change.
1430         (pt_solution_ior_into): New function.
1431         (pt_solution_empty_p): Export.
1432         (pt_solution_includes_global): Adjust.
1433         (pt_solution_includes_1): Likewise.
1434         (pt_solutions_intersect_1): Likewise.
1435         (dump_sa_points_to_info): Check some invariants.
1436         (solve_constraints): Move constraint dumping ...
1437         (compute_points_to_sets): ... here.
1438         (ipa_pta_execute): ... and here.
1439         (compute_may_aliases): Do not re-compute points-to info
1440         locally if IPA info is available.
1441         (ipa_escaped_pt): New global var.
1442         (ipa_pta_execute): Properly implement IPA PTA.
1443         * tree-into-ssa.c (dump_decl_set): Support dumping
1444         decls not in referenced-vars.
1445         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
1446         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
1447         (dump_points_to_solution): Likewise.
1448         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
1449         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
1450         (remap_gimple_stmt): Reset call clobber/use information if necessary.
1451         (copy_decl_to_var): Copy DECL_PT_UID.
1452         (copy_result_decl_to_var): Likewise.
1453         * tree.c (make_node_stat): Initialize DECL_PT_UID.
1454         (copy_node_stat): Copy it.
1455         * tree.h (DECL_PT_UID): New macro.
1456         (SET_DECL_PT_UID): Likewise.
1457         (DECL_PT_UID_SET_P): Likewise.
1458         (struct tree_decl_minimal): Add pt_uid member.
1459         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
1460         (pt_solution_empty_p): Declare.
1461         (pt_solution_set): Adjust.
1462         (ipa_escaped_pt): Declare.
1463         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1464         * gimple-pretty-print.c (pp_points_to_solution): New function.
1465         (dump_gimple_call): Dump call clobber/use information.
1466         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
1467         * tree-pass.h (TDF_ALIAS): New dump option.
1468         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
1469         * doc/invoke.texi (-fipa-pta): Update documentation.
1470
1471 2010-04-15  Richard Guenther  <rguenther@suse.de>
1472
1473         * Makefile.in (OBJS-common): Add gimple-fold.o.
1474         (gimple-fold.o): New rule.
1475         * tree.h (maybe_fold_offset_to_reference,
1476         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
1477         prototypes ...
1478         * gimple.h: ... here.
1479         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
1480         may_propagate_address_into_dereference): Move prototypes ...
1481         * gimple.h: ... here.
1482         * tree-ssa-ccp.c (get_symbol_constant_value,
1483         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
1484         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
1485         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
1486         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
1487         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
1488         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
1489         gimplify_and_update_call_from_tree): Move ...
1490         * gimple-fold.c: ... here.  New file.
1491         (ccp_fold_builtin): Rename to ...
1492         (gimple_fold_builtin): ... this.
1493         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
1494
1495 2010-04-15  Richard Guenther  <rguenther@suse.de>
1496
1497         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
1498         fit_double_type, force_fit_type_double, add_double_with_sign,
1499         neg_double, mul_double_with_sign, lshift_double, rshift_double,
1500         lrotate_double, rrotate_double, div_and_round_double): Move ...
1501         * double-int.c: ... here.
1502         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
1503         add_double, neg_double, mul_double_with_sign, mul_double,
1504         lshift_double, rshift_double, lrotate_double, rrotate_double,
1505         div_and_round_double): Move prototypes ...
1506         * double-int.h: ... here.
1507
1508 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
1509
1510         PR target/43742
1511         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
1512         matching constraints to ensure inputs match the output.
1513
1514 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1515
1516         PR target/43742
1517         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
1518         in an input-only operand.
1519
1520 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
1521
1522         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
1523         (double_int_not, double_int_lshift, double_int_rshift): Declare.
1524         (double_int_negative_p): Convert to static inline function.
1525         * double-int.c (double_int_lshift, double_int_lshift): Add new function.
1526         (double_int_negative_p): Remove.
1527         * tree.h (lshift_double, rshift_double):
1528         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
1529         * fold-const.c (fold_convert_const_int_from_real,
1530         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
1531         (lshift_double): Change type of arith argument to bool.
1532         (rshift_double): Change type of arith argument to bool. Correct
1533         comment.
1534         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1535
1536 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
1537
1538         PR target/21803
1539         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
1540         at the start and end of the then/else blocks, and omit them from the
1541         conversion.
1542         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
1543         argument; all callers changed.  Pass zero to old_insns_match_p instead.
1544         (flow_find_head_matching_sequence): New function.
1545         (old_insns_match_p): Check REG_EH_REGION notes for calls.
1546         * basic-block.h (flow_find_cross_jump,
1547         flow_find_head_matching_sequence): Declare functions.
1548
1549 2010-04-14  Jason Merrill  <jason@redhat.com>
1550
1551         PR c++/36625
1552         * c-common.c (attribute_takes_identifier_p): New fn.
1553         * c-common.h: Declare it.
1554
1555 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1556
1557         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
1558         splitter condition.
1559         (*udivmod<mode>4): Ditto.
1560
1561 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1562
1563         * config/i386/i386.md (maxmin_int): Rename code attribute from
1564         maxminiprefix and update all users.
1565         (maxmin_float): Ditto from maxminfprefix.
1566         (logic): Ditto from logicprefix.
1567         (absneg_mnemonic): Ditto from absnegprefix.
1568         * config/i386/mmx.md: Update all users of maxminiprefix,
1569         maxminfprefix and logicprefix for rename.
1570         * config/i386/sse.md: Ditto.
1571         * config/i386/sync.md (sync_<code><mode>): Update for
1572         logicprefix rename.
1573
1574 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1575
1576         PR 42966
1577         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
1578         warnings converted to errors.
1579
1580 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1581
1582         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
1583         used insn_type variable.
1584         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
1585         to avoid set-but-not-used warning.
1586
1587 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1588
1589         * df-core.c (df_ref_debug): Change format string placeholder
1590         from 0x%x to %#x.
1591         * dwarf2asm.c (dw2_asm_output_data_raw,
1592         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
1593         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
1594         * dwarf2out.c (output_cfi, output_cfi_directive,
1595         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
1596         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
1597         Ditto.
1598         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
1599         * print-rtl.c (print_rtx): Ditto.
1600
1601 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1602
1603         PR middle-end/42694
1604         * builtins.c (expand_builtin_pow_root): New function to expand pow
1605         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
1606         series of sqrt and cbrt calls under -ffast-math.
1607         (expand_builtin_pow): Call it.
1608
1609 2010-04-14  Michael Matz  <matz@suse.de>
1610
1611         PR tree-optimization/42963
1612         * tree-cfg.c (touched_switch_bbs): New static variable.
1613         (group_case_labels_stmt): New function broken out from ...
1614         (group_case_labels): ... here, use the above.
1615         (start_recording_case_labels): Allocate touched_switch_bbs.
1616         (end_recording_case_labels): Deallocate it, call
1617         group_case_labels_stmt.
1618         (gimple_redirect_edge_and_branch): Remember index of affected BB.
1619
1620 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1621
1622         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
1623         from insn template.
1624
1625 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1626
1627         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
1628
1629 2010-04-13  Jan Hubicka  <jh@suse.cz>
1630
1631         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
1632         of optimized out static functions.
1633         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
1634         cost computation.  Also sanity check for overflows.
1635         (update_caller_keys): Update cgraph_edge_badness call; properly
1636         update fibheap and sanity check that it is up to date.
1637         (add_new_edges_to_heap): Update cgraph_edge_badness.
1638         (cgraph_decide_inlining_of_small_function): Likewise;
1639         add sanity checking that badness in heap is up to date;
1640         improve dumping of reason; Update badness of calls to the
1641         offline copy of function currently inlined; dump badness
1642         of functions not inlined because of unit growth limits.
1643
1644 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1645
1646         PR middle-end/32628
1647         * c-common.c (pointer_int_sum): Disregard overflow that occured only
1648         because of sign-extension change when converting to sizetype here...
1649         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
1650
1651         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
1652         the folding to constants.  Remove redundant final conversion.
1653         (fold_binary) <associate>: Do not associate if the re-association of
1654         constants alone overflows.
1655         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
1656         to the end of the list.
1657         (multiple_of_p) <COND_EXPR>: New case.
1658
1659 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1660
1661         * opt-functions.awk (opt_sanitized_name): New.
1662         (opt_enum): New.
1663         * optc-gen.awk: Use it
1664         * opth-gen.awk: Use it.
1665
1666 2010-04-13  Martin Jambor  <mjambor@suse.cz>
1667
1668         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
1669         (sra_modify_assign): Delete stmts loading dead data even if racc has no
1670         children.  Call replace_uses_with_default_def_ssa_name to handle
1671         SSA_NAES on lhs.
1672
1673 2010-04-13  Michael Matz  <matz@suse.de>
1674
1675         PR middle-end/43730
1676         * builtins.c (expand_builtin_interclass_mathfn): Also create
1677         a register if the predicate doesn't match.
1678
1679 2010-04-13  Diego Novillo  <dnovillo@google.com>
1680
1681         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
1682         * c-pch.c: Include timevar.h.
1683         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
1684         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
1685         * ggc-common.c: Include timevar.h.
1686         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
1687         * timevar.def (TV_PCH_SAVE): Define.
1688         (TV_PCH_CPP_SAVE): Define.
1689         (TV_PCH_PTR_REALLOC): Define.
1690         (TV_PCH_PTR_SORT): Define.
1691         (TV_PCH_RESTORE): Define.
1692         (TV_PCH_CPP_RESTORE): Define.
1693
1694 2010-04-13  Michael Matz  <matz@suse.de>
1695
1696         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
1697         into MINUS_EXPRs.
1698         (can_reassociate_p): New function.
1699         (break_up_subtract_bb, reassociate_bb): Use it.
1700
1701 2010-04-13  Richard Guenther  <rguenther@suse.de>
1702
1703         PR bootstrap/43737
1704         * builtins.c (c_readstr): Fix assert.
1705
1706 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
1707
1708         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
1709         when generating cltd insn.
1710
1711         (*ashl<mode>3_1): Remove special handling for register operand 2.
1712         (*ashlsi3_1_zext): Ditto.
1713         (*ashlhi3_1): Ditto.
1714         (*ashlhi3_1_lea): Ditto.
1715         (*ashlqi3_1): Ditto.
1716         (*ashlqi3_1_lea): Ditto.
1717         (*<shiftrt_insn><mode>3_1): Ditto.
1718         (*<shiftrt_insn>si3_1_zext): Ditto.
1719         (*<shiftrt_insn>qi3_1_slp): Ditto.
1720         (*<rotate_insn><mode>3_1): Ditto.
1721         (*<rotate_insn>si3_1_zext): Ditto.
1722         (*<rotate_insn>qi3_1_slp): Ditto.
1723
1724 2010-04-13  Richard Guenther  <rguenther@suse.de>
1725
1726         * tree-ssa-structalias.c (callused_id): Remove.
1727         (call_stmt_vars): New.
1728         (get_call_vi): Likewise.
1729         (lookup_call_use_vi): Likewise.
1730         (lookup_call_clobber_vi): Likewise.
1731         (get_call_use_vi): Likewise.
1732         (get_call_clobber_vi): Likewise.
1733         (make_transitive_closure_constraints): Likewise.
1734         (handle_const_call): Adjust to do per-call call-used handling.
1735         (handle_pure_call): Likewise.
1736         (find_what_var_points_to): Remove general callused handling.
1737         (init_base_vars): Likewise.
1738         (init_alias_vars): Initialize call_stmt_vars.
1739         (compute_points_to_sets): Process call-used and call-clobbered
1740         vars for call statements.
1741         (delete_points_to_sets): Free call_stmt_vars.
1742
1743 2010-04-13  Richard Guenther  <rguenther@suse.de>
1744
1745         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1746         Only add RW dependence for dependence distance zero.
1747         Adjust maximal vectorization factor according to dependences.
1748         Move alignment handling ...
1749         (vect_find_same_alignment_drs): ... here.  New function.
1750         (vect_analyze_data_ref_dependences): Adjust.
1751         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
1752         (vect_analyze_data_refs): Adjust minimal vectorization factor
1753         according to data references.
1754         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
1755         dependences before determining the vectorization factor.
1756         Analyze alignment after determining the vectorization factor.
1757         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
1758         dependences before alignment.
1759         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
1760         Adjust prototype.
1761         (vect_analyze_data_refs): Likewise.
1762         (MAX_VECTORIZATION_FACTOR): New define.
1763
1764 2010-04-13  Duncan Sands  <baldrick@free.fr>
1765
1766         * except.h (lang_eh_type_covers): Remove.
1767         * except.c (lang_eh_type_covers): Likewise.
1768
1769 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1770             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1771
1772         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
1773         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
1774         UNITS_PER_LONG where it is ABI relevant.
1775         (s390_return_addr_rtx): Likewise.
1776         (s390_back_chain_rtx): Likewise.
1777         (s390_frame_area): Likewise.
1778         (s390_frame_info): Likewise.
1779         (s390_initial_elimination_offset): Likewise.
1780         (save_gprs): Likewise.
1781         (s390_emit_prologue): Likewise.
1782         (s390_emit_epilogue): Likewise.
1783         (s390_function_arg_advance): Likewise.
1784         (s390_function_arg): Likewise.
1785         (s390_va_start): Likewise.
1786         (s390_gimplify_va_arg): Likewise.
1787         (s390_function_profiler): Likewise.
1788         (s390_optimize_prologue): Likewise.
1789         (s390_rtx_costs): Likewise.
1790         (s390_secondary_reload): Likewise.
1791         (s390_promote_function_mode): Likewise.
1792         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
1793         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
1794         registers available.
1795         (s390_unwind_word_mode): New function.
1796         (s390_function_value): Split 64 bit values into register pair if
1797         used as return value.
1798         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
1799         function call parameters.  Handle parallels.
1800         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
1801         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
1802         (DWARF_CIE_DATA_ALIGNMENT): New macro.
1803         (s390_expand_setmem): Remove unused variable src_addr.
1804         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
1805         deal with 64 bit registers.
1806         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
1807         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
1808         (UNITS_PER_LONG): New macro.
1809         * libjava/include/s390-signal.h: Define extended ucontext
1810         structure containing the upper halfs of the 64 bit registers.
1811
1812 2010-04-13  Simon Baldwin  <simonb@google.com>
1813
1814         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
1815
1816 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1817
1818         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
1819         rvalue on the RHS if the LHS is of a non-renamable type.
1820         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
1821
1822 2010-04-13  Matthias Klose  <doko@ubuntu.com>
1823
1824         * gcc.c (cc1_options): Handle -iplugindir before processing
1825         the cc1 spec. Only add -iplugindir once.
1826         (cpp_unique_options): Add -iplugindir option if -fplugin* options
1827         found.
1828         * common.opt (iplugindir): Remove `Separate' property, initialize.
1829         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
1830         option.
1831         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
1832         (distclean): Remove plugin dir.
1833         * doc/invoke.texi: Document -iplugindir.
1834
1835 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
1836
1837         * doc/plugins.texi (Loading Plugins): Document short
1838         -fplugin=foo option.
1839         (Plugin API): Mention default_plugin_dir_name function.
1840
1841         * gcc.c (find_file_spec_function): Add new declaration.
1842         (static_spec_func): Use it for "find-file".
1843         (find_file_spec_function): Add new function.
1844         (cc1_options): Add -iplugindir option if -fplugin* options found.
1845
1846         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
1847
1848         * plugin.c (add_new_plugin): Updated comment, and handle short
1849         plugin name.
1850         (default_plugin_dir_name): Added new function.
1851
1852         * common.opt (iplugindir): New option to set the plugin directory.
1853
1854 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
1855
1856         * config/i386/i386.md (any_rotate): New code iterator.
1857         (rotate_insn): New code attribute.
1858         (rotate): Ditto.
1859         (SWIM124): New mode iterator.
1860         (<rotate_insn>ti3): New expander.
1861         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
1862         any_rotate code iterator.
1863         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
1864         using any_rotate code iterator and SWIM124 mode iterator.
1865         (ix86_rotlti3): New insn_and_split pattern.
1866         (ix86_rotrti3): Ditto.
1867         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
1868         ix86_rotl{di,ti}3 patterns.
1869         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
1870         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
1871         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
1872         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
1873         code iterator and SWI mode iterator.
1874         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
1875         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
1876         code iterator.
1877         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
1878         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
1879         (bswap rotatert splitter): Add splitter.
1880         (bswap splitter): Macroize splitter using any_rotate code iterator.
1881         Add insn predicate to split only for TARGET_USE_XCHGB or when
1882         optimizing function for size.
1883
1884 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1885
1886         * config/pa/pa.c (emit_move_sequence): Remove use of
1887         deleted variable flag_argument_noalias.
1888
1889 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1890
1891         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
1892         configurations.
1893         Add to unsupported targets list.
1894         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
1895         sparc*-sun-solaris2.[567]* from target lists.
1896         * configure: Regenerate.
1897         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
1898         removal.
1899         Remove Solaris 7 patch references.
1900         (Specific, sparc-sun-solaris2.7): Removed.
1901         (sparc-sun-solaris2*): Update Solaris 7 example.
1902         (sparc64-*-solaris2*): Likewise.
1903
1904 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1905
1906         * config.build (alpha*-dec-osf4*): Remove.
1907         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
1908         of obsolete configurations.
1909         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
1910         support.
1911         * config/alpha/t-osf4: Renamed to ...
1912         * config/alpha/t-osf5: ... this.
1913         * config/alpha/osf.h: Renamed to ...
1914         * config/alpha/osf5.h: ... this.
1915         Merged old osf5.h contents.
1916         Update comments.
1917         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
1918         (EXTRA_SPECS): Removed.
1919         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
1920         reflect removal of Tru64 UNIX V4.0/V5.0 support.
1921         Document that.
1922
1923 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1924
1925         * doc/contrib.texi (Contributors, Rainer Orth): Update.
1926
1927 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
1928
1929         PR/43702
1930         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
1931         __thiscall convention.
1932
1933 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1934
1935         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
1936         orig_base.
1937         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
1938
1939 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1940
1941         * function.c (assign_parms_initialize_all): Add unused attribute
1942         to fntype.
1943
1944 2010-04-12  Richard Guenther  <rguenther@suse.de>
1945
1946         * gsstruct.def (GSS_CALL): New.
1947         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
1948         * gimple.h: Include tree-ssa-alias.h.
1949         (struct gimple_statement_call): New.
1950         (union gimple_statement_struct_d): Add gimple_call member.
1951         (gimple_call_reset_alias_info): Declare.
1952         (gimple_call_use_set): New function.
1953         (gimple_call_clobber_set): Likewise.
1954         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
1955         * gimple.c (gimple_call_reset_alias_info): New function.
1956         (gimple_build_call_1): Call it.
1957         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1958         * tree-inline.c (remap_gimple_stmt): Likewise.
1959         (expand_call_inline): Remove callused handling.
1960         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
1961         * tree-dfa.c (dump_variable): Likewise.
1962         * tree-parloops.c (parallelize_loops): Likewise.
1963         * tree-ssa.c (init_tree_ssa): Likewise.
1964         (delete_tree_ssa): Likewise.
1965         * tree-flow-inline.h (is_call_used): Remove.
1966         * tree-flow.h (struct gimple_df): Remove callused member.
1967         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
1968         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
1969         (ref_maybe_used_by_call_p_1): Simplify.
1970         (call_may_clobber_ref_p_1): Likewise.
1971         * tree-ssa-structalias.c (compute_points_to_sets): Set
1972         the call stmt used and clobbered sets.
1973         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
1974         (find_tail_calls): Verify the tail call.
1975
1976 2010-04-12  Richard Guenther  <rguenther@suse.de>
1977
1978         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
1979         single-iteration always-inline inlining.
1980         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
1981         (cgraph_decide_inlining): Do not handle always-inline specially.
1982         (try_inline): Remove always-inline cycle detection special case.
1983         Do not recurse on always-inlines.
1984         (cgraph_early_inlining): Do not iterate if not optimizing.
1985         (cgraph_gate_early_inlining): remove.
1986         (pass_early_inline): Run unconditionally.
1987         (gate_cgraph_decide_inlining): New function.
1988         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
1989         not inlining or optimizing.
1990         (cgraph_decide_inlining_of_small_functions): Also consider
1991         always-inline functions.
1992         (cgraph_default_inline_p): Return true for nodes which should
1993         disregard inline limits.
1994         (estimate_function_body_sizes): Assume zero size and time for
1995         nodes which are marked as disregarding inline limits.
1996         (cgraph_decide_recursive_inlining): Do not perform recursive
1997         inlining on always-inline nodes.
1998
1999 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2000
2001         PR bootstrap/43699
2002         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2003         for exprs satisfying handled_component_p.
2004
2005 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2006
2007         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2008         non-constant aggregate elements.
2009
2010         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2011         is a real initialization.
2012
2013 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2014
2015         PR c/36774
2016         * c-decl.c (start_function): Move forward check for nested function.
2017
2018 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2019
2020         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2021         * config/sh/sh.c: Include reload.h.
2022         (sh_legitimize_reload_address): New.
2023         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2024         sh_legitimize_reload_address.
2025
2026 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2027
2028         * config/sh/sh.md (*movqi_pop): New insn pattern.
2029         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2030
2031 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2032
2033         * config/i386/i386.md (any_shiftrt): New code iterator.
2034         (shiftrt_insn): New code attribute.
2035         (shiftrt): Ditto.
2036         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2037         using any_shiftrt code iterator.
2038         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2039         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2040         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2041         pattern from corresponding peephole2 patterns.
2042         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2043         using any_shiftrt code iterator.
2044         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
2045         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
2046         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
2047         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
2048         *{ashr,lshr}<mode>3_cmp_zext.
2049         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
2050
2051 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2052
2053         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
2054         scratch register.
2055         (*lshr<mode>3_cconly): Ditto.
2056
2057 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2058
2059         * config/i386/i386.md (lshr<mode>3): Macroize expander from
2060         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2061         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2062         pattern from *lshr{di,ti}3_1 and corresponding splitters using
2063         DWI mode iterator.
2064         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2065         from corresponding peephole2 patterns.
2066         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
2067         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
2068         and *lshrdi3_1_rex64 using SWI mode iterator.
2069         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
2070         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
2071         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
2072         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
2073         and *lshrdi3_cmp_rex64 using SWI mode iterator.
2074         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
2075         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
2076         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
2077         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
2078         SWI mode iterator.
2079
2080 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
2081
2082         * config/i386/i386.md (ashr<mode>3): Macroize expander from
2083         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2084         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2085         pattern from *ashr{di,ti}3_1 and corresponding splitters using
2086         DWI mode iterator.
2087         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2088         from corresponding peephole2 patterns.
2089         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
2090         (ashrsi3_cvt): Rename from ashrsi3_31.
2091         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
2092         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
2093         and x86_64_shift_adj_3 using SWI48 mode iterator.
2094         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
2095         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
2096         and *ashrdi3_1_rex64 using SWI mode iterator.
2097         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
2098         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
2099         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
2100         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
2101         and *ashrdi3_cmp_rex64 using SWI mode iterator.
2102         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
2103         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
2104         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
2105         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
2106         SWI mode iterator.
2107         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
2108         * config/i386/i386.c (ix86_split_ashr): Update for renamed
2109         x86_shift<mode>_adj_3 expanders.
2110
2111 2010-04-10  Wei Guozhi  <carrot@google.com>
2112
2113         PR target/42601
2114         * config/arm/arm.c (arm_pic_static_addr): New function.
2115         (legitimize_pic_address): Call arm_pic_static_addr when it detects
2116         a static symbol.
2117         (arm_output_addr_const_extra): Output expression for new pattern.
2118         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
2119
2120 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
2121
2122         * ira-costs.c (record_reg_classes): Ignore alternatives that are
2123         not enabled.
2124
2125         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
2126         * web.c: Include "insn-config.h" and "recog.h".
2127         (union_match_dups): New function.
2128         (web_main): Call it.
2129         (union_defs): Don't try to recognize match_dups.
2130
2131         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
2132         if doing so would replace the entire pattern.
2133
2134 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2135
2136         PR target/43707
2137         PR target/43709
2138         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
2139         and splitter pattern.  Change splitter operand 1 predicate to
2140         nonmemory_operand.
2141
2142 2010-04-09  Martin Jambor  <mjambor@suse.cz>
2143
2144         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
2145         lattices are addresses of CONST_DECLs with the same initial value.
2146         (ipcp_print_all_lattices): Print values of CONST_DECLs.
2147         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2148
2149 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
2150             Bernd Schmidt  <bernds@codesourcery.com>
2151
2152         * loop-invariant.c (replace_uses): New static function.
2153         (move_invariant_reg): Use it to ensure we can replace the uses.
2154
2155 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2156
2157         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
2158         function template.
2159         (picochip_override_options): Enable section anchors only above -O1.
2160         (picochip_reorg): Fixed a couple of build warnings.
2161
2162 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2163
2164         * configure.ac (plugin -rdynamic test): Log result.
2165         * configure: Regenerate.
2166         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
2167         (RDYNAMIC_SPEC): Define.
2168         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
2169
2170 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2171
2172         * configure.ac: Determine Sun ld version numbers.
2173         (comdat_group): Restrict GNU ld version checks to gld.
2174         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
2175         (enable_comdat): Support --enable-comdat.
2176         * configure: Regenerate.
2177         * doc/install.texi (Configuration): Document --enable-comdat.
2178
2179 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2180
2181         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
2182         * config/sol2-gld.h: ... here.
2183         * config.gcc (sparc*-*-solaris2*): Reflect this.
2184         (i[34567]86-*-solaris2*): Use it.
2185
2186 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
2187
2188         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
2189         setup_clocks_p.
2190         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
2191
2192 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2193
2194         PR 42965
2195         * diagnostic.c (diagnostic_initialize): Initialize
2196         some_warnings_are_errors.
2197         (diagnostic_finish): New.
2198         (diagnostic_action_after_output): Call it before exiting.
2199         (diagnostic_report_diagnostic): Do not print message here. Set
2200         some_warnings_are_errors.
2201         * diagnostic.h (diagnostic_context): Delete
2202         issue_warnings_are_errors_message. Add some_warnings_are_errors.
2203         (diagnostic_finish): Declare.
2204         * toplev.c (toplev_main): Call it before exit.
2205
2206 2010-04-09  Jason Merrill  <jason@redhat.com>
2207
2208         PR c++/42623
2209         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
2210         for incomplete type.
2211
2212         PR c++/41788
2213         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
2214         based on a warning flag.
2215
2216 2010-04-09  Richard Guenther  <rguenther@suse.de>
2217
2218         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
2219
2220 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2221
2222         PR bootstrap/43684
2223         * varasm.c (default_assemble_visibility): Wrap vars that are
2224         set, but unused, by targets without GAS.
2225         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
2226         Remove set, but unused, vars.
2227         (rs6000_legitimize_tls_address): Likewise.
2228         (altivec_expand_dst_builtin): Likewise.
2229         * config/darwin.c (machopic_classify_symbol): Likewise.
2230         (machopic_indirection_name): Likewise.
2231
2232 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2233
2234         * config/i386/i386.md (DWI): New mode iterator.
2235         (S): New mode attribute.
2236         (shift_operand): Ditto.
2237         (shift_immediate_operand): Ditto.
2238         (ashl_input_operand): Ditto.
2239         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
2240         using SDWIM mode iterator.
2241         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2242         pattern from *ashl{di,ti}3_1 and corresponding splitters using
2243         DWI mode iterator.
2244         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
2245         from corresponding peephole2 patterns.
2246         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
2247         and x86_64_shift_adj_1 using SWI48 mode iterator.
2248         (x86_shift<mode>_adj_2): Ditto.
2249         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
2250         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
2251         using SWI48 mode iterator.
2252         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
2253         *ashldi3_cmp_rex64 using SWI mode iterator.
2254         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
2255         *ashldi3_cconly_rex64 using SWI mode iterator.
2256         * config/i386/i386.c (ix86_split_ashl): Update for renamed
2257         x86_shift<mode>_adj_{1,2}.
2258         (ix86_split_ashr): Ditto.
2259         (ix86_split_lshr): Ditto.
2260
2261 2010-04-09  Richard Guenther  <rguenther@suse.de>
2262
2263         * target.h (builtin_conversion): Pass in input and output types.
2264         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
2265         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
2266         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
2267         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
2268
2269         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
2270         Handle AVX modes.
2271         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
2272
2273 2010-04-09  Richard Guenther  <rguenther@suse.de>
2274
2275         PR target/43152
2276         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
2277
2278 2010-04-09  Richard Guenther  <rguenther@suse.de>
2279
2280         * tree-vectorizer.h (struct _stmt_vec_info): Document
2281         that vectype is the type of the LHS.
2282         (supportable_widening_operation, supportable_narrowing_operation):
2283         Get both input and output vector types as arguments.
2284         (vect_is_simple_use_1): Declare.
2285         (get_same_sized_vectype): Likewise.
2286         * tree-vect-loop.c (vect_determine_vectorization_factor):
2287         Set STMT_VINFO_VECTYPE to the vector type of the def.
2288         (vectorizable_reduction): Adjust.
2289         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
2290         Adjust.  Specify the output vector type.
2291         (vect_pattern_recog_1): Adjust.
2292         * tree-vect-stmts.c (get_same_sized_vectype): New function.
2293         (vectorizable_call): Adjust.
2294         (vectorizable_conversion): Likewise.
2295         (vectorizable_operation): Likewise.
2296         (vectorizable_type_demotion): Likewise.
2297         (vectorizable_type_promotion): Likewise.
2298         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
2299         the def.
2300         (vect_is_simple_use_1): New function.
2301         (supportable_widening_operation): Get both input and output
2302         vector types.
2303         (supportable_narrowing_operation): Likewise.
2304         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
2305
2306 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
2307
2308         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
2309         __thiscall and _thiscall as predefined macros.
2310         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
2311         thiscall attribute handling.
2312         (ix86_comp_type_attributes): Likewise.
2313         (ix86_function_regparm): Likewise.
2314         (ix86_return_pops_args): Likewise.
2315         (init_cumulative_args): Likewise.
2316         (find_drap_reg): Likewise.
2317         (ix86_static_chain): Likewise.
2318         (x86_this_parameter): Likewise.
2319         (x86_output_mi_thunk): Likewise.
2320         (ix86_attribute_table): Add description for thiscall attribute.
2321         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
2322         * doc/extend.texi: Add documentation for thiscall.
2323
2324 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2325
2326         PR c++/28584
2327         * c.opt (Wint-to-pointer-cast): Available in C++.
2328         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
2329
2330 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2331
2332         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
2333         * calls.c (expand_call): Pass the function type to aggregate_value_p.
2334         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
2335         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
2336         function type instead.  Reorder and simplify checks.
2337
2338         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
2339
2340 2010-04-08  Jing Yu  <jingyu@google.com>
2341             Zdenek Dvorak  <ook@ucw.cz>
2342
2343         PR tree-optimization/42720
2344         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
2345         loop unswitch conditions here from ...
2346         (tree_unswitch_single_loop): ... here.
2347
2348 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2349
2350         * tree-if-conv.c: Fix comments and simplify logic.
2351
2352 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2353
2354         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
2355         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
2356         (main_tree_if_conversion): Update call to tree_if_conversion.
2357
2358 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2359
2360         PR 42485
2361         * doc/invoke.texi (-b,-V): Delete.
2362         * doc/tm.texi: Do not mention -b.
2363         * gcc.c (display_help): Delete -b and -V.
2364         (process_command): Delete -b and -V.
2365         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
2366
2367 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
2368             Wolfgang Gellerich  <gellerich@de.ibm.com>
2369
2370         Implement target hook for loop unrolling
2371         * target.h (loop_unroll_adjust): Add a new target hook function.
2372         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
2373         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
2374         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
2375         (s390_loop_unroll_adjust): Implement the new target hook for s390.
2376         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
2377         target hook.
2378         (decide_unroll_stupid): Likewise.
2379
2380 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2381
2382         PR target/43643
2383         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
2384
2385 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2386
2387         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
2388         (Specific, *-*-solaris2*): Likewise.
2389         Don't prefer Sun as over GNU as.
2390
2391 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
2392
2393         * config/s390/s390.c (override_options): Adjust the z10
2394           defaults for max-unroll-times, max-completely-peeled-insns
2395           and max-completely-peel-times.
2396
2397 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2398
2399         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
2400         instructions for z10.
2401         (s390_expand_setmem): Likewise.
2402         (s390_expand_cmpmem): Likewise.
2403
2404 2010-04-08  Richard Guenther  <rguenther@suse.de>
2405
2406         PR tree-optimization/43679
2407         * tree-ssa-pre.c (eliminate): Only propagate copies.
2408
2409 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2410
2411         PR bootstrap/43681
2412         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
2413         set but not used variable warning.
2414
2415 2010-04-08  Wei Guozhi  <carrot@google.com>
2416
2417         PR target/41653
2418         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
2419         (arm_size_rtx_costs): Call the new function when optimized for size.
2420
2421 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2422
2423         PR debug/43670
2424         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
2425         op0 is not a MEM, just return NULL instead of assertion
2426         failure.
2427         (discover_nonconstant_array_refs): Don't walk debug stmts.
2428
2429 2010-04-08  Doug Kwan  <dougkwan@google.com>
2430
2431         * configure.ac: Recognize gold and do not use its version number
2432         to test ld features.
2433         * configure: Regenerate.
2434
2435 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
2436
2437         PR middle-end/40815
2438         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
2439         (negate_value): Move code to push elements to broken_up_substracts ...
2440         (eliminate_plus_minus_pair): ... here.  Push operands that have no
2441         negative pair to plus_negates.
2442         (repropagate_negates, init_reassoc, fini_reassoc): Update.
2443
2444 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2445
2446         * doc/install.texi (Configuration): Move description of
2447         --enable-lto, --with-libelf*, --enable-gold from Java section to
2448         general section.
2449
2450         * doc/generic.texi (Working with declarations)
2451         (Function Properties, C and C++ Trees): Fix typos.
2452         * doc/sourcebuild.texi (Top Level): Likewise.
2453
2454 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2455
2456         PR c/18624
2457         * tree.h (DECL_READ_P): Define.
2458         (struct tree_decl_common): Add decl_read_flag.
2459         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
2460         a set but not used warning.
2461         (merge_decls): Merge DECL_READ_P flag.
2462         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
2463         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
2464         * c-common.c (handle_used_attribute, handle_unused_attribute):
2465         Likewise.
2466         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
2467         New prototypes.
2468         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
2469         New functions.
2470         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
2471         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
2472         c_parser_binary_expression, c_parser_cast_expression,
2473         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
2474         Call default_function_array_read_conversion instead of
2475         default_function_array_conversion where needed.
2476         (c_parser_unary_expression, c_parser_conditional_expression,
2477         c_parser_postfix_expression_after_primary, c_parser_initelt):
2478         Likewise.  Call mark_exp_read where needed.
2479         (c_parser_statement_after_labels, c_parser_asm_operands,
2480         c_parser_typeof_specifier, c_parser_sizeof_expression,
2481         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
2482         where needed.
2483         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
2484         New.
2485         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
2486         (warn_unused_but_set_parameter): Default to warn_unused
2487         && extra_warnings.
2488         * doc/invoke.texi: Document -Wunused-but-set-variable and
2489         -Wunused-but-set-parameter.
2490
2491         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
2492         used count variable.
2493         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
2494         when operandN variables aren't used in the body of the expander
2495         or splitter.
2496         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
2497         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
2498         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
2499         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
2500         FOR_EACH_IMM_USE_ON_STMT): Likewise.
2501         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
2502         * tree.c (PROCESS_ARG): Likewise.
2503
2504 2010-04-07  Simon Baldwin  <simonb@google.com>
2505
2506         * diagnostic.h (diagnostic_override_option_index): New macro to
2507         set a diagnostic's option_index.
2508         * c-tree.h (c_cpp_error): Add warning reason argument.
2509         * opts.c (_warning_as_error_callback): New.
2510         (register_warning_as_error_callback): Store callback for
2511         warnings enabled via enable_warning_as_error.
2512         (enable_warning_as_error): Call callback, minor code tidy.
2513         * opts.h (register_warning_as_error_callback): Declare.
2514         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
2515         response to -Werror=.
2516         (c_common_init_options): Register warning_as_error_callback in opts.c.
2517         * common.opt: Add -Wno-cpp option.
2518         * c-common.c (struct reason_option_codes_t): Map cpp warning
2519         reason codes to gcc option indexes.
2520         * (c_option_controlling_cpp_error): New function, lookup the gcc
2521         option index for a cpp warning reason code.
2522         * (c_cpp_error): Add warning reason argument, call
2523         c_option_controlling_cpp_error for diagnostic_override_option_index.
2524         * doc/invoke.texi: Document -Wno-cpp.
2525
2526 2010-04-07  Richard Guenther  <rguenther@suse.de>
2527
2528         * ipa-reference.c (mark_load): Use get_base_address.
2529         (mark_store): Likewise.
2530
2531         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
2532         inserting GIMPLE_NOPs into the IL.
2533         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2534         Explicitly strip handled components and indirect references.
2535
2536         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
2537         folding address expressions.
2538         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
2539         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
2540         operand_equal_p to compare decls.
2541         (ptr_deref_may_alias_decl_p): Likewise.
2542         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
2543         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
2544         Handle reversed comparison ops.
2545         * tree-sra.c (asm_visit_addr): Use get_base_address.
2546         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2547         * ipa-reference.c (mark_address): Use get_base_address.
2548
2549 2010-04-07  Richard Guenther  <rguenther@suse.de>
2550
2551         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
2552         Propagate constants everywhere.
2553
2554 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2555
2556         PR debug/43516
2557         * tree.c (MAX_INT_CACHED_PREC): Define.
2558         (nonstandard_integer_type_cache): New array.
2559         (build_nonstandard_integer_type): Cache results for precision
2560         <= MAX_INT_CACHED_PREC.
2561
2562 2010-04-07  Richard Guenther  <rguenther@suse.de>
2563
2564         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
2565         -fargument-noalias-global, -fargument-noalias-anything): Remove.
2566         * common.opt: Likewise.
2567         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
2568         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
2569         (nonoverlapping_memrefs_p): Likewise.
2570         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2571         * opts.c (common_handle_option): Handle OPT_fargument_alias,
2572         OPT_fargument_noalias, OPT_fargument_noalias_anything and
2573         OPT_fargument_noalias_global for backward compatibility.
2574
2575 2010-04-07  Richard Guenther  <rguenther@suse.de>
2576
2577         PR tree-optimization/43270
2578         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
2579         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
2580         * tree-ssa-pre.c (phi_translate_1): Adjust.
2581         (fully_constant_expression): Split out vn_reference handling to ...
2582         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
2583         Fold reads from constant strings.
2584         (vn_reference_lookup): Handle fully constant references.
2585         (vn_reference_lookup_pieces): Likewise.
2586         * Makefile.in (expmed.o-warn): Add -Wno-error.
2587
2588 2010-04-07  Martin Jambor  <mjambor@suse.cz>
2589
2590         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
2591
2592 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2593
2594         PR driver/41594
2595         * gcc.c: Add -static-libstdc++ to list of recognized options.
2596
2597 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2598
2599         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
2600
2601 2010-04-07  Richard Guenther  <rguenther@suse.de>
2602
2603         PR middle-end/42617
2604         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
2605         bases build simple mem attributes to retain points-to information.
2606
2607 2010-04-07  Richard Guenther  <rguenther@suse.de>
2608
2609         PR middle-end/42617
2610         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
2611         preserve points-to related information.
2612
2613 2010-04-07  Richard Guenther  <rguenther@suse.de>
2614
2615         PR middle-end/42617
2616         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
2617         discard plain indirect references.
2618         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
2619         * tree.c (tree_nop_conversion): Likewise.
2620
2621 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
2622
2623         PR debug/43628
2624         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
2625
2626 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
2627
2628         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
2629         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
2630
2631 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2632
2633         * tree-if-conv.c: Fix indentation and comments.
2634
2635 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2636
2637         * tree-if-conv.c: Sort static functions in topological order.
2638
2639 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2640
2641         * tree-if-conv.c: Fix indentation and comments.
2642
2643 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2644
2645         PR middle-end/43519
2646         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
2647         lang_hooks.types.type_for_size instead of
2648         build_nonstandard_integer_type.
2649         When converting an unsigned type to signed, double its precision.
2650         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
2651         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
2652         (graphite_create_new_loop_guard): When ub + 1 wraps around,
2653         use lb <= ub.
2654
2655 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2656
2657         PR middle-end/43519
2658         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
2659         POINTER_PLUS_EXPR for pointer types.
2660
2661 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2662
2663         PR middle-end/43519
2664         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
2665         * graphite-clast-to-gimple.c: Include langhooks.h.
2666         (max_signed_precision_type): New.
2667         (max_precision_type): Takes two types as arguments.
2668         (precision_for_value): New.
2669         (precision_for_interval): New.
2670         (gcc_type_for_interval): New.
2671         (gcc_type_for_value): New.
2672         (gcc_type_for_clast_term): New.
2673         (gcc_type_for_clast_red): New.
2674         (gcc_type_for_clast_bin): New.
2675         (gcc_type_for_clast_expr): Split up into several functions.
2676         (gcc_type_for_clast_eq): Rewritten.
2677         (compute_bounds_for_level): New.
2678         (compute_type_for_level_1): New.
2679         (compute_type_for_level): New.
2680         (gcc_type_for_cloog_iv): Removed.
2681         (gcc_type_for_iv_of_clast_loop): Rewritten.
2682         (graphite_create_new_loop): Compute the lower and upper bound types
2683         with gcc_type_for_clast_expr.
2684         (graphite_create_new_loop_guard): Same.
2685         (find_cloog_iv_in_expr): Removed.
2686         (compute_cloog_iv_types_1): Removed.
2687         (compute_cloog_iv_types): Removed.
2688         (gloog): Do not call compute_cloog_iv_types.
2689         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
2690         GBB_CLOOG_IV_TYPES.
2691         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
2692         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
2693         (GBB_CLOOG_IV_TYPES): Removed.
2694
2695 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2696
2697         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
2698         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
2699         (detect_commutative_reduction): Same.
2700
2701 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2702
2703         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
2704         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
2705         argument.
2706         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
2707         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
2708         (rewrite_commutative_reductions_out_of_ssa): Same.
2709         * passes.c (execute_function_todo): Call verify_ssa for every pass
2710         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
2711         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
2712         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
2713         with an extra argument.
2714         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
2715         verify_ssa only when the extra argument is true.
2716         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
2717         with an extra argument.
2718         (tree_transform_and_unroll_loop): Same.
2719
2720 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2721
2722         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
2723         for all the passes of the LNO having LOOP_CLOSED_SSA.
2724         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
2725         * tree-loop-distribution.c (pass_loop_distribution): Same.
2726         * tree-pass.h (TODO_verify_loops): Removed.
2727         * tree-ssa-loop.c (pass_tree_loop_init): Same.
2728         (pass_lim): Same.
2729         (pass_tree_unswitch): Same.
2730         (pass_predcom): Same.
2731         (pass_vectorize): Same.
2732         (pass_linear_transform): Same.
2733         (pass_graphite_transforms): Same.
2734         (pass_iv_canon): Same.
2735         (pass_complete_unroll): Same.
2736         (pass_complete_unrolli): Same.
2737         (pass_parallelize_loops): Same.
2738         (pass_loop_prefetch): Same.
2739         (pass_iv_optimize): Same.
2740
2741 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
2742
2743         PR middle-end/32824
2744         * passes.c (init_optimization_passes): Move pass_lim before
2745         pass_copy_prop and pass_dce_loop.
2746
2747 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2748
2749         PR target/43667
2750         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
2751         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
2752         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
2753         MULTI_* defines for 4 argument vpermil2p* builtins.
2754
2755 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2756
2757         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
2758         * config/i386/i386.c (x86_maybe_negate_const_int): New.
2759         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
2760         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
2761         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
2762         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
2763         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
2764         Use x86_maybe_negate_const_int to output insn mnemonic.
2765         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
2766         check from instruction predicate.  Update comments.
2767         * config/i386/sync.md (sync_add<mode>): Use
2768         x86_maybe_negate_const_int to output insn mnemonic.
2769
2770 2010-04-06  Jan Hubicka  <jh@suse.cz>
2771
2772         PR tree-optimization/42906
2773         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
2774         IGNORE_SELF argument.  Set visited_control_parents for fully
2775         processed BBs.
2776         (find_obviously_necessary_stmts): Update call of
2777         mark_control_dependent_edges_necessary.
2778         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
2779
2780 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2781
2782         * config/i386/i386.md: Remove comment about 'e' and 'E'
2783         operand modifier.
2784
2785 2010-04-06  Richard Guenther  <rguenther@suse.de>
2786
2787         PR tree-optimization/43627
2788         * tree-vrp.c (extract_range_from_unary_expr): Widenings
2789         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
2790         not varying.
2791
2792 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2793
2794         * BASE-VER: Change to 4.6.0.
2795
2796         PR target/43638
2797         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
2798         handling.
2799
2800 2010-04-06  Richard Guenther  <rguenther@suse.de>
2801
2802         PR middle-end/43661
2803         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
2804
2805 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2806
2807         * doc/invoke.texi (Optimize Options): Document that LTO
2808         won't remove object access purely due to incompatible
2809         declarations.
2810
2811 2010-04-04  Matthias Klose  <doko@ubuntu.com>
2812
2813         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
2814         Initialize variable.
2815
2816 2010-04-03  Richard Guenther  <rguenther@suse.de>
2817
2818         PR middle-end/42509
2819         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
2820         require a non-NULL MEM_OFFSET.
2821
2822 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
2823
2824         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
2825         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
2826         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
2827         config/alpha/predicates.md, config/arm/arm.md,
2828         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
2829         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
2830         config/darwin9.h, config/darwin.c, config/darwin.h,
2831         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
2832         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
2833         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
2834         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
2835         config/mips/mips.md, config/mn10300/mn10300.c,
2836         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
2837         config/rs6000/aix.h, config/rs6000/dfp.md,
2838         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
2839         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
2840         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
2841         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
2842         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
2843         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
2844         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
2845         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
2846         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
2847         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
2848         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
2849         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
2850         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
2851         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
2852         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
2853         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
2854         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
2855         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
2856         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
2857         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
2858         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
2859         opt-functions.awk, opth-gen.awk, params.def, passes.c,
2860         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
2861         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
2862         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
2863         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
2864         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
2865         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
2866         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
2867         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
2868         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
2869         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2870         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
2871         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
2872         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
2873         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
2874
2875 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2876
2877         PR other/43620
2878         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
2879         * aclocal.m4: Regenerate.
2880
2881 2010-04-02  Richard Guenther  <rguenther@suse.de>
2882
2883         PR tree-optimization/43629
2884         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
2885         if we have seen a constant value.
2886
2887 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
2888
2889         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
2890
2891 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
2892
2893         PR target/43469
2894         * arm.c (legitimize_tls_address): Adjust call to
2895         gen_tls_load_dot_plus_four.
2896         (arm_note_pic_base): New function.
2897         (arm_cannot_copy_insn_p): Use it.
2898         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
2899         constraint.
2900
2901 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2902
2903         PR bootstrap/43531
2904
2905         Revert:
2906         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2907
2908         * Makefile.in ($(out_object_file)): Depend on
2909         gt-$(basename $(notdir $(out_file))).h.
2910
2911 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
2912
2913         * config.gcc (lm32-*-rtems*): Add t-lm32.
2914
2915 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
2916
2917         * config.gcc: Add lm32-*-rtems*.
2918         * config/lm32/rtems.h: New file.
2919
2920 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
2921
2922         PR target/42609
2923         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
2924
2925 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
2926
2927         * dwarf2out.c (output_compilation_unit_header): For
2928         -gdwarf-4 use version 4 instead of version 3.
2929         (output_line_info): For version 4 and above emit additional
2930         maximum ops per insn header field.
2931         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
2932
2933         * dwarf2out.c (is_c_family, is_java): Remove.
2934         (lower_bound_default): New function.
2935         (add_bound_info, gen_descr_array_type_die): Use it.
2936
2937 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
2938
2939         PR debug/43325
2940         * dwarf2out.c (gen_variable_die): Allow debug info for variable
2941         re-declaration when it happens in a function.
2942
2943 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
2944
2945         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
2946         (cgraph_remove_function_insertion_hook): Same.
2947         (cgraph_call_function_insertion_hooks): Same.
2948
2949 2010-04-01  Richard Guenther  <rguenther@suse.de>
2950
2951         PR middle-end/43614
2952         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
2953         and TREE_THIS_VOLATILE.
2954         (copy_ref_info): Likewise.
2955         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
2956         * tree.c (build6_stat): Ignore side-effects of all but arg5
2957         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
2958         TARGET_MEM_REF.
2959
2960 2010-04-01  Richard Guenther  <rguenther@suse.de>
2961
2962         PR tree-optimization/43607
2963         * ipa-type-escape.c (check_call): Do not access non-existing
2964         arguments.
2965
2966 2010-04-01  Richard Guenther  <rguenther@suse.de>
2967
2968         PR middle-end/43602
2969         Revert
2970         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
2971                     Jack Howarth <howarth@bromo.med.uc.edu>
2972
2973         * tree-profile.c (tree_init_ic_make_global_vars): Make static
2974         variables TLS.
2975
2976 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2977
2978         * doc/install.texi (Prerequisites): Document libelf usability on
2979         IRIX 5/6 and Solaris 2.
2980         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
2981         Update GNU as, GNU ld requirements.
2982         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
2983         Document Sun Studio compiler download.
2984         Update and simplify as, ld recommendations.
2985         (Specific, *-*-solaris2.7): Note obsoletion, removal.
2986
2987 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2988
2989         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
2990         with_tune_32 to pentium4.
2991
2992 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
2993
2994         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
2995
2996 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2997
2998         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
2999         obsoletion, removal.
3000         Update IDO URL.
3001         Document GNU as requirement.
3002         Update configure requirements.
3003         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
3004         Recomment IRIX 6.5.18+.
3005         Document IDF/IDL requirement.
3006         Document GNU as requirement.
3007         Document GNU ld bootstrap failure.
3008         Remove freeware.sgi.com reference.
3009
3010 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3011
3012         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
3013         UNIX V4.0, V5.0 obsoletion, removal.
3014         Remove --with-gc=simple reference.
3015         Update VM requirements during bootstrap.
3016         Remove -oldas bootstrap description.
3017         Update binutils reference.
3018         Remove comparison failure note.
3019
3020 2010-03-31  Richard Guenther  <rguenther@suse.de>
3021             Zdenek Dvorak  <ook@ucw.cz>
3022             Sebastian Pop  <sebastian.pop@amd.com>
3023
3024         PR middle-end/43464
3025         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
3026         with multiple arguments.
3027         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
3028
3029 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3030
3031         * graphite-dependences.c (print_pddr): Call print_pdr with an
3032         extra argument.
3033         * graphite-poly.c (debug_pdr): Add an extra argument for the
3034         verbosity level.
3035         (print_pdr): Same.
3036         (print_pbb_domain): Same.
3037         (print_pbb): Same.
3038         (print_scop_context): Same.
3039         (print_scop): Same.
3040         (print_cloog): Same.
3041         (debug_pbb_domain): Same.
3042         (debug_pbb): Same.
3043         (print_pdrs): Same.
3044         (debug_pdrs): Same.
3045         (debug_scop_context): Same.
3046         (debug_scop): Same.
3047         (debug_cloog): Same.
3048         (print_scop_params): Same.
3049         (debug_scop_params): Same.
3050         (print_iteration_domain): Same.
3051         (print_iteration_domains): Same.
3052         (debug_iteration_domain): Same.
3053         (debug_iteration_domains): Same.
3054         (print_scattering_function): Same.
3055         (print_scattering_functions): Same.
3056         (debug_scattering_function): Same.
3057         (debug_scattering_functions): Same.
3058         * graphite-poly.h (debug_pdr): Update declaration.
3059         (print_pdr): Same.
3060         (print_pbb_domain): Same.
3061         (print_pbb): Same.
3062         (print_scop_context): Same.
3063         (print_scop): Same.
3064         (print_cloog): Same.
3065         (debug_pbb_domain): Same.
3066         (debug_pbb): Same.
3067         (print_pdrs): Same.
3068         (debug_pdrs): Same.
3069         (debug_scop_context): Same.
3070         (debug_scop): Same.
3071         (debug_cloog): Same.
3072         (print_scop_params): Same.
3073         (debug_scop_params): Same.
3074         (print_iteration_domain): Same.
3075         (print_iteration_domains): Same.
3076         (debug_iteration_domain): Same.
3077         (debug_iteration_domains): Same.
3078         (print_scattering_function): Same.
3079         (print_scattering_functions): Same.
3080         (debug_scattering_function): Same.
3081         (debug_scattering_functions): Same.
3082
3083 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3084
3085         * graphite-poly.c (print_scattering_function_1): New.
3086         (print_scattering_function): Call it.
3087         (print_scop_params): Remove spaces at the end of lines.
3088         (print_cloog): New.
3089         (debug_cloog): New.
3090         * graphite-poly.h (print_cloog): Declared.
3091         (debug_cloog): Declared.
3092
3093 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3094
3095         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
3096         in loop->header.
3097         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
3098         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
3099         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
3100         to switch between adding the IV bump in loop->latch or in loop->header.
3101
3102 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3103
3104         * graphite-poly.c (print_scattering_function): Pretty print following
3105         the scoplib format.
3106         (print_pdr): Same.
3107         (print_pbb_domain): Same.
3108         (dump_gbb_cases): Same.
3109         (dump_gbb_conditions): Same.
3110         (print_pdrs): Same.
3111         (print_pbb): Same.
3112         (print_scop_params): Same.
3113         (print_scop_context): Same.
3114         (print_scop): Same.
3115         (print_pbb_body): New.
3116         (lst_indent_to): New.
3117         (print_lst): Start new lines with a #.
3118         * graphite-poly.h (pbb_bb): New.
3119         (pbb_index): Use pbb_bb.
3120         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
3121         disjuncts.
3122         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
3123
3124 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3125
3126         * dwarf2out.c (size_of_die): For -gdwarf-4 use
3127         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
3128         and 0 instead of 1 for dw_val_class_flag.
3129         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
3130         dw_val_class_range_list, dw_val_class_loc_list,
3131         dw_val_class_lineptr and dw_val_class_macptr, use
3132         DW_FORM_flag_present for dw_val_class_flag and
3133         DW_FORM_exprloc for dw_val_class_loc.
3134         (output_die): For -gdwarf-4 print dw_val_class_loc
3135         size as uleb128 instead of 1 or 2 bytes and don't print
3136         anything for dw_val_class_flag.
3137
3138         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
3139         instead of cselib_lookup following by tweaking locs->setting_insn.
3140
3141         PR bootstrap/43596
3142         * cselib.c (cselib_process_insn): Clear cselib_current_insn
3143         even before returning from label, setjmp call or volatile asm
3144         handling.
3145
3146 2010-03-31  Richard Guenther  <rguenther@suse.de>
3147
3148         PR middle-end/43600
3149         * cgraphunit.c (cgraph_output_in_order): Do not allocate
3150         temporary data on stack.
3151
3152 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3153
3154         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
3155         (PUSHSECTION_ASM_OP): Remove.
3156         (POPSECTION_ASM_OP): Remove.
3157         (PUSHSECTION_FORMAT): Remove.
3158         * config/sol2.h (PUSHSECTION_FORMAT): Define.
3159         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
3160         * config/sol2.c (solaris_output_init_fini): Use it.
3161
3162 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3163
3164         PR 43574
3165         * opt-functions.awk (var_type_struct): Use signed char type
3166         for simple variables.
3167
3168 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3169
3170         * config/sol2.c: Include output.h.
3171         (solaris_assemble_visibility): New function.
3172         * config/t-sol2 (sol2.o): Add output.h dependency.
3173         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
3174         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
3175         Redefine.
3176
3177 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3178
3179         PR target/43580
3180         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
3181         V2SImode or XFmode on PRE_DEC.
3182
3183         PR debug/43557
3184         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
3185         BLKmode.
3186
3187 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3188
3189         PR 43562
3190         * reload.h (caller_save_initialized_p): Declare.
3191         * toplev.c (backend_init_target): Don't call
3192         init_caller_save but set caller_save_initialized_p to false.
3193         * caller-save.c (caller_save_initialized_p): Define.
3194         (init_caller_save): Check caller_save_initialized_p.
3195         * ira.c (ira): Call init_caller_save if flag_caller_saves.
3196
3197 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3198
3199         PR target/39048
3200         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
3201         and soft-fp/t-softfp to tmake_file.
3202         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
3203         (LIBGCC2_TF_CEXT): Define.
3204         (TF_SIZE): Define.
3205
3206 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
3207
3208         PR debug/42977
3209         * cselib.c (n_useless_values): Document handling of debug locs.
3210         (n_useless_debug_values, n_debug_values): New variables.
3211         (new_elt_loc_list): Don't add to debug values, keep count.
3212         (promote_debug_loc): New.
3213         (cselib_reset_table): Zero new variables.
3214         (entry_and_rtx_equal_p): Promote debug locs.
3215         (discard_useless_locs): Increment n_useless_debug_values for
3216         debug values.
3217         (remove_useless_values): Adjust n_useless_values and n_debug_values
3218         with n_useless_debug_values.
3219         (add_mem_for_addr): Promote debug locs.
3220         (cselib_lookup_mem): Likewise.
3221         (cselib_lookup_addr): Renamed to...
3222         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
3223         (cselib_log_lookup): ... this.  Turn into...
3224         (cselib_lookup_addr): ... new wrapper.
3225         (cselib_lookup_from_insn): New.
3226         (cselib_invalidate_regno): Increment n_useless_debug_values for
3227         debug values.
3228         (cselib_invalidate_mem): Likewise.
3229         (cselib_process_insn): Take n_deleted and n_debug_values into
3230         account to guard remove_useless_value call.
3231         (cselib_finish): Zero n_useless_debug_values.
3232         * cselib.h (cselib_lookup_from_insn): Declare.
3233         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
3234         (sched_analyze_2): Likewise.
3235
3236 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
3237
3238         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
3239         functions.
3240         (adjust_mems): Replace narrowing SUBREG of expression containing
3241         just PLUS, MINUS, MULT and ASHIFT of registers and constants
3242         with operations in the narrower mode.
3243
3244         PR debug/43593
3245         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
3246         regs_invalidated_by_call instead all call_used_reg_set registers.
3247
3248 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3249
3250         PR middle-end/43430
3251         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
3252         pointer comparisons with types_compatible_p.
3253         * tree-vect-stmts.c (vectorizable_call): Same.
3254         (vectorizable_condition): Same.
3255
3256 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3257
3258         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
3259         stack check if the mask would be zero.
3260
3261 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3262             Jack Howarth <howarth@bromo.med.uc.edu>
3263
3264         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3265         variables TLS.
3266
3267 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
3268
3269         PR other/25232
3270         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
3271         and __unordtf2.
3272         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
3273         Include ___unordxf2 and ___unordtf2.
3274         * config/i386/libgcc-glibc.ver: Do not define inheritance from
3275         GCC_4.4.0 here.
3276
3277 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
3278
3279         * config/lm32/t-lm32: New file.
3280         * config.gcc: Use the above file when targetting lm32.
3281
3282 2010-03-28  Duncan Sands  <baldrick@free.fr>
3283
3284         * Makefile.in (PLUGIN_HEADERS): Add except.h.
3285
3286 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3287
3288         PR middle-end/43431
3289         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3290         Improve vectorization cost model diagnostic.
3291
3292 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3293
3294         PR middle-end/43436
3295         * tree-vect-data-refs.c (vect_analyze_data_refs): When
3296         compute_data_dependences_for_loop returns false, early exit
3297         and output an extra diagnostic for the failed data reference
3298         analysis.
3299
3300 2010-03-29  Richard Guenther  <rguenther@suse.de>
3301
3302         PR tree-optimization/43560
3303         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
3304         (can_sm_ref_p): Treat stores to readonly locations as trapping.
3305
3306 2010-03-29  Jie Zhang  <jie@codesourcery.com>
3307
3308         PR 43564
3309         * toplev.c (process_options): Set optimization_default_node
3310         and optimization_current_node.
3311         * opts.c (decode_options): Don't set optimization_default_node
3312         and optimization_current_node.
3313
3314 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
3315
3316         * config/rtems.h: Abandon -qrtems_debug.
3317
3318 2010-03-28  Jan Hubicka  <jh@suse.cz>
3319
3320         PR tree-optimization/43505
3321         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
3322         map should not be copied.
3323
3324 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3325
3326         PR middle-end/41674
3327         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
3328         cdtors, set DECL_PRESERVE_P.
3329         * ipa.c (cgraph_externally_visible_p): Return true if declaration
3330         should be preseved.
3331
3332 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
3333
3334         PR tree-optimization/43528
3335         * stor-layout.c (place_field): Check that constant fits into
3336         unsigned HWI when skipping calculation of MS bitfield layout.
3337
3338 2010-03-27  Jan Hubicka  <jh@suse.cz>
3339
3340         PR middle-end/43391
3341         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
3342         notice_global_symbol work.
3343
3344 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
3345
3346         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
3347         instead of dwarf2out_decl.
3348         (struct var_loc_node): Remove section_label field.
3349         (dwarf2out_function_decl): New function.
3350         (dwarf2out_var_location): Don't set section_label field.
3351         (dwarf2out_begin_function): Don't empty decl_loc_table here.
3352
3353 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3354
3355         PR tree-optimization/43544
3356         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
3357         First argument for builtin vectorized function hook is now a
3358         tree to be able to distinguish between machine specific and
3359         standard builtins.
3360         * targhooks.c (default_builtin_vectorized_function): Ditto.
3361         * targhooks.h (default_builtin_vectorized_function): Ditto.
3362         * target.h (struct gcc_target): Ditto.
3363         * tree-vect-stmts.c (vectorizable_function): Ditto.
3364         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
3365         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
3366         Ditto.
3367
3368 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
3369
3370         PR c/43381
3371         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
3372         nested binding iff it is a FUNCTION_DECL.
3373         (store_parm_decls_newstyle): Pass nested=true to bind for
3374         FUNCTION_DECLs amongst parameters.
3375
3376 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3377
3378         * var-tracking.c (vt_expand_loc_callback): Don't run
3379         cselib_expand_value_rtx_cb in dummy mode if
3380         cselib_dummy_expand_value_rtx_cb returned false.
3381
3382         * var-tracking.c (emit_note_insn_var_location): For one part
3383         notes with offset 0, don't add EXPR_LIST around the location.
3384         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
3385         add_location_or_const_value_attribute): Adjust for that change.
3386
3387         PR debug/43540
3388         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
3389         into first operand and location into second.
3390         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
3391         dw_cfi_oprnd_loc for DW_CFA_expression.
3392         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
3393         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
3394         assume first argument is regnum and second argument is location.
3395
3396 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3397
3398         PR target/42113
3399         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
3400         of scratch register to DImode.  Split to DImode comparison operator.
3401         Use SImode subreg of scratch register in the multiplication.
3402         (*cmp_sadd_sidi): Ditto.
3403         (*cmp_ssub_si): Ditto.
3404         (*cmp_ssub_sidi): Ditto.
3405
3406 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3407
3408         PR target/43524
3409         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
3410         Remove invalid assert and wrong comment.
3411
3412 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3413
3414         PR debug/43516
3415         * flags.h (final_insns_dump_p): New extern.
3416         * final.c (final_insns_dump_p): New variable.
3417         (rest_of_clean_state): Set it before -fdump-final-insns=
3418         dumping, clear afterwards.
3419         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
3420         MEM_ALIAS_SET on MEMs.
3421
3422 2010-03-26  David S. Miller  <davem@davemloft.net>
3423
3424         * configure.ac: Fix sparc GOTDATA_OP bug check.
3425         * configure: Rebuild.
3426
3427 2010-03-26  Alan Modra  <amodra@gmail.com>
3428
3429         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
3430
3431 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3432
3433         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
3434         TLS_SECTION_ASM_FLAG.
3435
3436 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
3437
3438         PR bootstrap/43511
3439         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
3440         Clear first_function_block_is_cold.
3441
3442         PR c/43385
3443         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
3444         argument if the argument is truth_value_p.
3445
3446 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3447
3448         * config/rs6000/constraints.md: Update copyright year for my changes.
3449
3450         PR target/43484
3451         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
3452         used in reg+reg addressing, swap registers.
3453
3454 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3455
3456         PR debug/43293
3457         * target.h (struct gcc_target): Add code_end hook.
3458         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
3459         if not yet defined.
3460         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
3461         * toplev.c (compile_file): Call targetm.asm_out.code_end
3462         hook before unwind info/debug info output.
3463         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
3464         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
3465         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3466         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
3467         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3468         * config/i386/i386.c (ix86_file_end): Renamed to...
3469         (ix86_code_end): ... this.  Make static.  Don't call
3470         file_end_indicate_exec_stack.  Emit unwind info using
3471         final_start_function/final_end_function.
3472         (darwin_x86_file_end): Remove.
3473         (TARGET_ASM_CODE_END): Define.
3474         * config/i386/i386.h (TARGET_ASM_FILE_END,
3475         NEED_INDICATE_EXEC_STACK): Don't define.
3476         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
3477         (TARGET_ASM_FILE_END): Define to darwin_file_end.
3478         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
3479         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
3480
3481         PR target/43498
3482         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
3483         at the beginning and final_end_function at the end.
3484         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3485
3486 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3487
3488         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
3489         and Sun as TLS syntax.
3490         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
3491         * configure: Regenerate.
3492         * config.in: Regenerate.
3493         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
3494         (default_elf_asm_named_section): Use it.
3495         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
3496         (i386_output_dwarf_dtprel): Likewise.
3497         (output_addr_const_extra): Likewise.
3498         (output_pic_addr_const): Lowercase @GOTTPOFF.
3499         (output_addr_const_extra): Likewise.
3500         (output_pic_addr_const): Lowercase @GOTNTPOFF.
3501         (output_addr_const_extra): Likewise.
3502         (output_pic_addr_const): Lowercase @INDNTPOFF.
3503         (output_addr_const_extra): Likewise.
3504         (output_pic_addr_const): Lowercase @NTPOFF.
3505         (output_addr_const_extra): Likewise.
3506         (output_pic_addr_const): Lowercase @TPOFF.
3507         (output_addr_const_extra): Likewise.
3508         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
3509         (*tls_global_dynamic_64): Likewise.
3510         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
3511         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
3512
3513         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
3514         (ASM_OUTPUT_TLS_COMMON): Use it.
3515         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
3516
3517         PR target/38118
3518         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
3519         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
3520         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
3521         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
3522         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3523         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
3524
3525 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3526
3527         * config/i386/i386.c (override_options): Don't accept
3528         -mtls-dialect=sun any longer.
3529         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
3530         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
3531         (*tls_local_dynamic_base_32_sun): Likewise.
3532         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3533
3534 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3535
3536         PR debug/43508
3537         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
3538         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
3539
3540         PR debug/43479
3541         * ira.c (adjust_cleared_regs): New function.
3542         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
3543
3544         PR debug/19192
3545         PR debug/43479
3546         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
3547         from gimple_block.
3548         * expr.c (expand_expr_real): Restore previous
3549         curr_insn_source_location and curr_insn_block after
3550         expand_expr_real_1 call.
3551         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
3552         instead of expand_expr_real_1.
3553
3554 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
3555
3556         PR rtl-optimization/43413
3557         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
3558         hard regs too.
3559
3560 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
3561
3562         PR target/43348
3563         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
3564         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
3565
3566 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
3567
3568         * config/i386/i386.c (ix86_target_string): Add -mfma.
3569         Fix a typo in comment.
3570
3571 2010-03-22  Mike Stump  <mikestump@comcast.net>
3572
3573         PR target/23071
3574         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
3575         Don't overly align based upon packed packed fields.
3576
3577 2010-03-22  Jason Merrill  <jason@redhat.com>
3578
3579         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
3580         Use () rather than [], and move before the element type.
3581
3582 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3583
3584         * doc/configfiles.texi (Configuration Files): Removed
3585         fixinc/Makefile*, intl/Makefile.*.
3586         * doc/makefile.texi: Fixed markup. Abstract from version
3587         control system used.
3588         (Makefile): Removed obsolete gcc/java/parse.y example.
3589         * doc/sourcebuild.texi: Likewise.
3590         (Top Level): Added config, gnattools, libdecnumber, libgcc,
3591         libgomp, libssp.  Removed fastjar.
3592         (Miscellaneous Docs): Clarify location.
3593         Added COPYING3, COPYING3.LIB.
3594         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3595
3596 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3597
3598         PR target/38085
3599         * config/i386/i386.c (x86_function_profiler)
3600         [!NO_PROFILE_COUNTERS]: Fix typo.
3601         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
3602         instead of callq.
3603
3604 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
3605             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3606
3607         * doc/sourcebuild.texi (Test Directives): Split into six
3608         subsections, with most of the current text in new subsections
3609         Directives, Selectors, and Final Actions.
3610         (Directives): Split list of test directives into multiple
3611         subsubsections.
3612         (Selectors): Describe use and syntax of selectors.
3613         (Effective-Target Keywords): Describe all existing keywords.
3614         (Add Options): Describe features for dg-add-options.
3615         (Require Support): Describe variants of dg-require-support.
3616         (Final Actions): Describe commands to use in dg-final.
3617
3618 2010-03-22  Michael Matz  <matz@suse.de>
3619
3620         PR middle-end/43475
3621         * recog.c (validate_replace_rtx_group): Replace also in
3622         REG_EQUAL and REG_EQUIV notes.
3623
3624 2010-03-22  Richard Guenther  <rguenther@suse.de>
3625
3626         PR tree-optimization/43390
3627         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
3628         sure vector extracts are type correct.
3629
3630 2010-03-22  Richard Guenther  <rguenther@suse.de>
3631
3632         PR middle-end/40106
3633         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
3634         x * sqrt (x) even when optimizing for size if the target
3635         has native support for sqrt.
3636
3637 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
3638
3639         * varasm.c (make_decl_rtl_for_debug): Also clear
3640         flag_mudflap for the duration of make_decl_rtl call.
3641
3642         PR debug/43443
3643         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
3644         locs from preserved VALUEs.
3645
3646 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3647
3648         PR middle-end/42718
3649         * pa.md (movmemsi): Set align to one if zero.
3650         (movmemdi): Likewise.
3651
3652 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
3653
3654         PR target/42321
3655         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
3656         with their corresponding prologue pushes.
3657
3658 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
3659
3660         PR target/43156
3661         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
3662         at the begining or end.
3663         (spu_expand_epilogue): Likewise.
3664
3665 2010-03-20  Richard Guenther  <rguenther@suse.de>
3666
3667         PR rtl-optimization/43438
3668         * combine.c (make_extraction): Properly zero-/sign-extend an
3669         extraction of the low part of a CONST_INT.  Also handle
3670         CONST_DOUBLE.
3671
3672 2010-03-19  Mike Stump  <mikestump@comcast.net>
3673
3674         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
3675         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
3676         (override_options): Use SUBTARGET32_DEFAULT_CPU.
3677
3678 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
3679
3680         PR c/43211
3681         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
3682         an error.
3683
3684 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
3685
3686         PR rtl-optimization/42258
3687         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
3688         use that may match DEF.
3689
3690         PR target/40697
3691         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
3692         the cost of loading the constant rather than assuming
3693         COSTS_N_INSNS (1).
3694         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
3695         outer code is AND, do the same tests as the andsi3 expander and
3696         return COSTS_N_INSNS (1) if and is cheap.
3697
3698         * optabs.c (avoid_expensive_constant): Fix formatting.
3699
3700 2010-03-19  Michael Matz  <matz@suse.de>
3701
3702         PR c++/43116
3703         * attribs.c (decl_attributes): When rebuilding a function pointer
3704         type use the same qualifiers as the original pointer type.
3705
3706 2010-03-19  Martin Jambor  <mjambor@suse.cz>
3707
3708         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
3709         and is_gimple_ip_invariant_address.
3710
3711 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3712
3713         Revert
3714         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3715
3716         * config/arm/arm.c (arm_override_options): Turn off
3717         flag_dwarf2_cfi_asm for AAPCS variants.
3718
3719 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3720
3721         PR target/43399
3722         * config/arm/arm.c (emit_multi_reg_push): Update comments.
3723         Use PRE_MODIFY instead of PRE_DEC.
3724         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
3725         (vfp_emit_fstmd): Likewise.
3726
3727 2010-03-19  Michael Matz  <matz@suse.de>
3728
3729         PR target/43305
3730         * builtins.c (expand_builtin_interclass_mathfn,
3731         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
3732         if that fails.
3733
3734 2010-03-19  Richard Guenther  <rguenther@suse.de>
3735
3736         PR tree-optimization/43415
3737         * tree-ssa-pre.c (phi_translate): Split out worker to ...
3738         (phi_translate_1): ... this.
3739         (phi_translate): Move all caching here.  Cache all NARY
3740         and REFERENCE translations.
3741
3742 2010-03-19  David S. Miller  <davem@davemloft.net>
3743
3744         With help from Eric Botcazou.
3745         * config/sparc/sparc.c: Include dwarf2out.h.
3746         (emit_pic_helper): Delete.
3747         (pic_helper_symbol_name): Delete.
3748         (pic_helper_emitted_p): Delete.
3749         (pic_helper_needed): New.
3750         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
3751         (get_pc_thunk_name): New.
3752         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
3753         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
3754         Set pic_helper_needed to true.  Don't call emit_pic_helper.
3755         (sparc_expand_prologue): Update load_pic_register call.
3756         (sparc_output_mi_thunk): Likewise.
3757         (sparc_file_end): Emit a hidden comdat symbol for the PIC
3758         thunk if possible.  Output CFI information as needed.
3759
3760 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3761             Jack Howarth <howarth@bromo.med.uc.edu>
3762
3763         PR target/36399
3764         * config/i386/i386.h: Fix ABI on darwin x86-32.
3765
3766 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
3767
3768         * tree.h: Declare make_decl_rtl_for_debug.
3769         * varasm.c (make_decl_rtl_for_debug): New.
3770         * dwarf2out.c (rtl_for_decl_location): Call it.
3771         * cfgexpand.c (expand_debug_expr): Call it.
3772
3773 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3774
3775         PR bootstrap/43399
3776         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
3777         mem_mode.
3778
3779         PR bootstrap/43403
3780         * var-tracking.c (vt_init_cfa_base): Do nothing if
3781         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
3782
3783 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
3784
3785         PR debug/42873
3786         * var-tracking.c (canonicalize_vars_star): New.
3787         (dataflow_post_merge_adjust): Use it.
3788
3789 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3790
3791         PR debug/43058
3792         * var-tracking.c (non_suitable_const): New function.
3793         (add_uses): For DEBUG_INSNs with constants, don't record any
3794         value, instead just the constant value itself.
3795         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
3796         is not VAR_LOC_UNKNOWN_P, set var to the constant.
3797         (emit_notes_in_bb): Likewise.
3798         (emit_note_insn_var_location): For onepart variables if
3799         cur_loc is a VOIDmode constant, use DECL_MODE.
3800
3801 2010-03-18  Martin Jambor  <mjambor@suse.cz>
3802
3803         PR middle-end/42450
3804         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
3805         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
3806         all non-clones.  Moved call redirection...
3807         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
3808         (cgraph_materialize_all_clones): Dispose of all
3809         combined_args_to_skip bitmaps.
3810         (verify_cgraph_node): Do not check for edges pointing to wrong
3811         nodes in inline clones.
3812         * tree-inline.c (copy_bb): Call
3813         cgraph_redirect_edge_call_stmt_to_callee.
3814         * ipa.c (cgraph_remove_unreachable_nodes): Call
3815         cgraph_node_remove_callees even when there are used clones.
3816
3817 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
3818
3819         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
3820
3821 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
3822
3823         PR target/43383
3824         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
3825         for 32bit.
3826
3827 2010-03-18  Michael Matz  <matz@suse.de>
3828
3829         PR middle-end/43419
3830         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
3831         into sqrt(x) if we need to preserve signed zeros.
3832
3833 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
3834             Eric Botcazou  <ebotcazou@adacore.com>
3835
3836         PR rtl-optimization/43360
3837         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
3838         note if we don't know its invariant status.
3839
3840 2010-03-18  Michael Matz  <matz@suse.de>
3841
3842         PR tree-optimization/43402
3843         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
3844         PHI chains of ssa names registered for update.
3845
3846 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
3847
3848         PR target/42427
3849         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
3850         non-offsettable and pre_modify update addressing.
3851         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
3852         and "2" alternatives "#".
3853         (*movdd_softfloat32): Make all alternatives "#";
3854         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
3855         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
3856         (*movdf_softfloat32): Make all alternatives "#";
3857         (movdi): Use the new DIFD mode iterator to create a common splitter
3858         for movdi, movdf and movdd patterns.
3859
3860 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
3861
3862         * common.opt (dumpdir): Remove redundant tab.
3863
3864 2010-03-17  Martin Jambor  <mjambor@suse.cz>
3865
3866         PR tree-optimization/43347
3867         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
3868         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
3869
3870 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3871
3872         PR rtl-optimization/42216
3873         * regrename.c (create_new_chain): New function, broken out from...
3874         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
3875         appending a use to an empty chain.
3876         (build_def_use): Remove previous changes that convert OP_INOUT to
3877         OP_OUT operands; instead detect the case where an OP_INOUT operand
3878         uses a previously untracked register and create an empty chain for it.
3879
3880 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3881
3882         * doc/extend.texi (Function Attributes): Rewrite unfinished
3883         sentence in ms_abi documentation.
3884
3885 2010-03-17  Alan Modra  <amodra@gmail.com>
3886
3887         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
3888         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
3889         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
3890         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
3891
3892 2010-03-16  Richard Henderson  <rth@redhat.com>
3893
3894         PR middle-end/43365
3895         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
3896         (lower_try_finally): Save and restore eh_seq around the expansion
3897         of the try-finally.
3898
3899 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
3900
3901         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
3902         statements before splitting block.
3903
3904 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3905
3906         * doc/sourcebuild.texi (Testsuites): Fix markup.
3907         Use pathnames relative to gcc/testsuite.
3908         (Test Directives): Move description of how timeout is determined.
3909         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
3910         (C Tests): Correct gcc.misc-tests directory.
3911         Framework tests now live in gcc.test-framework.
3912
3913 2010-03-16  Richard Guenther  <rguenther@suse.de>
3914
3915         PR middle-end/43379
3916         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
3917         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
3918
3919 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
3920             Alexandre Oliva  <aoliva@redhat.com>
3921
3922         PR tree-optimization/42917
3923         * lambda-code.c (remove_iv): Skip debug statements.
3924         (lambda_loopnest_to_gcc_loopnest): Likewise.
3925         (not_interesting_stmt): Debug statements are not interesting.
3926
3927 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
3928
3929         PR debug/43051
3930         PR debug/43092
3931         * cselib.c (cselib_preserve_constants,
3932         cfa_base_preserved_val): New static variables.
3933         (preserve_only_constants): New function.
3934         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
3935         clear its REG_VALUES.  If cselib_preserve_constants, don't
3936         empty the whole hash table, but preserve there VALUEs with constants,
3937         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
3938         (cselib_preserve_cfa_base_value): New function.
3939         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
3940         (cselib_init): Change argument to int bitfield.  Set
3941         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
3942         is in it.
3943         (cselib_finish): Clear cselib_preserve_constants and
3944         cfa_base_preserved_val.
3945         * cselib.h (enum cselib_record_what): New enum.
3946         (cselib_init): Change argument to int.
3947         (cselib_preserve_cfa_base_value): New prototype.
3948         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
3949         * dse.c (dse_step1): Likewise.
3950         * cfgcleanup.c (thread_jump): Likewise.
3951         * sched-deps.c (sched_analyze): Likewise.
3952         * gcse.c (local_cprop_pass): Likewise.
3953         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
3954         If FN is non-NULL, call the callback always and whenever it returns
3955         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
3956         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
3957         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
3958         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
3959         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
3960         * var-tracking.c: Include recog.h.
3961         (bb_stack_adjust_offset): Remove.
3962         (vt_stack_adjustments): Don't call it, instead just gather the
3963         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
3964         (adjust_stack_reference): Remove.
3965         (compute_cfa_pointer): New function.
3966         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
3967         (struct adjust_mem_data): New type.
3968         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
3969         functions.
3970         (get_address_mode): New function.
3971         (replace_expr_with_values): Use it.
3972         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
3973         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
3974         (adjust_sets): Remove.
3975         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
3976         Use get_address_mode.
3977         (get_adjusted_src): Remove.
3978         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
3979         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
3980         (add_with_sets): Don't call adjust_sets.
3981         (fp_setter, vt_init_cfa_base): New functions.
3982         (vt_initialize): Change return type to bool.  Move most of pool etc.
3983         initialization to the beginning of the function from end.  Pass
3984         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
3985         If !frame_pointer_needed, call vt_stack_adjustment before mos
3986         vector is filled, call vt_init_cfa_base if argp/framep has been
3987         eliminated to sp.  If frame_pointer_needed and argp/framep has
3988         been eliminated to hard frame pointer, set
3989         hard_frame_pointer_adjustment and call vt_init_cfa_base after
3990         encountering fp setter in the prologue.  For MO_ADJUST, call
3991         log_op_type before pusing the op into mos vector, not afterwards.
3992         Call adjust_insn before cselib_process_insn/add_with_sets,
3993         call cancel_changes (0) afterwards.
3994         (variable_tracking_main_1): Adjust for vt_initialize calling
3995         vt_stack_adjustments and returning whether it succeeded or not.
3996
3997 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
3998
3999         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
4000         debug statements.
4001
4002 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
4003
4004         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
4005         has been set.
4006         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
4007         drap_reg has not been set.
4008
4009 2010-03-15  Michael Matz  <matz@suse.de>
4010
4011         PR middle-end/43300
4012         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
4013         use it to expand block copies.
4014         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4015         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
4016         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
4017
4018 2010-03-15  Richard Guenther  <rguenther@suse.de>
4019
4020         PR tree-optimization/43367
4021         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
4022         elimination check.
4023
4024 2010-03-15  Richard Guenther  <rguenther@suse.de>