OSDN Git Service

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