OSDN Git Service

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