OSDN Git Service

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