OSDN Git Service

From Dominique d'Humieres <dominiq@lps.ens.fr>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
2
3         From Dominique d'Humieres <dominiq@lps.ens.fr>
4         PR bootstrap/43858
5         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
6         test_set.
7
8 2010-04-29  Brian Hackett   <bhackett1024@gmail.com>
9
10         * plugin.h (invoke_plugin_callbacks): New inline function.
11         * plugin.c (flag_plugin_added): New global flag.
12         (add_new_plugin): Initialize above flag.
13         (invoke_plugin_callbacks): Rename to ...
14         (invoke_plugin_callbacks_full): ... this.
15
16 2010-04-28  Jan Hubicka  <jh@suse.cz>
17
18         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
19         (lto_varpool_replace_node): New.
20         (lto_symtab_resolve_symbols): Resolve varpool nodes.
21         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
22         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
23         * cgraph.h (varpool_node_ptr): New type.
24         (varpool_node_ptr): New vector.
25         (varpool_node_set_def): New structure.
26         (varpool_node_set): New type.
27         (varpool_node_set): New vector.
28         (varpool_node_set_element_def): New structure.
29         (varpool_node_set_element, const_varpool_node_set_element): New types.
30         (varpool_node_set_iterator): New type.
31         (varpool_node): Add prev pointers, add used_from_other_partition,
32         in_other_partition.
33         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
34         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
35         varpool_get_node, varpool_remove_node): Declare.
36         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
37         varpool_node_set_size): New inlines.
38         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
39         * tree-pass.h (varpool_node_set_def): Forward declare.
40         (ipa_opt_pass_d): Summary writting takes vnode sets too.
41         (ipa_write_optimization_summaries): Update prototype.
42         * ipa-cp.c (ipcp_write_summary): Update.
43         * ipa-reference.c (ipa_reference_write_summary): Update.
44         * lto-cgraph.c (lto_output_varpool_node): New static function.
45         (output_varpool): New function.
46         (input_varpool_node): New static function.
47         (input_varpool_1): New function.
48         (input_cgraph): Input varpool.
49         * ipa-pure-const.c (pure_const_write_summary): Update.
50         * lto-streamer-out.c (lto_output): Update, output varpool too.
51         (write_global_stream): Kill WPA hack.
52         (produce_asm_for_decls): Update.
53         (output_alias_pair_p): Handle variables.
54         (output_unreferenced_globals): Output only needed partition of varpool.
55         * ipa-inline.c (inline_write_summary): Update.
56         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build cgraph.
57         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
58         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
59         varpool_node_set_new, varpool_node_set_add,
60         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
61         debug_varpool_node_set): New functions.
62         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
63         (execute_one_pass): Process new decls too.
64         (ipa_write_summaries_2): Pass around vsets.
65         (ipa_write_summaries_1): Likewise.
66         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
67         to add.
68         (ipa_write_optimization_summaries_1): Pass around vsets.
69         (ipa_write_optimization_summaries): Likewise.
70         * varpool.c (varpool_get_node): New.
71         (varpool_node): Update doubly linked lists.
72         (varpool_remove_node): New.
73         (dump_varpool_node): More dumping.
74         (varpool_enqueue_needed_node): Update doubly linked lists.
75         (decide_is_variable_needed): Kill ltrans hack.
76         (varpool_finalize_decl): Kill lto hack.
77         (varpool_assemble_decl): Skip decls in other partitions.
78         (varpool_assemble_pending_decls): Update doubly linkes lists.
79         (varpool_empty_needed_queue): Likewise.
80         (varpool_extra_name_alias): Likewise.
81         * lto-streamer.c (lto_get_section_name): Add vars section.
82         * lto-streamer.h (lto_section_type): Update.
83         (output_varpool, input_varpool): Declare.
84
85 2010-04-28  Mike Stump  <mikestump@comcast.net>
86
87         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
88
89 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
90
91         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
92         record or union type with RECORD_OR_UNION_TYPE_P predicate.
93         (lto_input_ts_type_tree_pointers): Likewise.
94         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
95         (lto_output_ts_type_tree_pointers): Likewise.
96
97 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
98
99         Uniquization of constants at the Tree level
100         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
101         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
102         bit to the end.
103         (tree_output_constant_def): Declare.
104         * gimplify.c (gimplify_init_constructor): When using block copy, first
105         uniquize the constant constructor on the RHS.
106         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
107         DECL_IN_CONSTANT_POOL flag.
108         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
109         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
110         constant pool.
111         (assemble_variable): Deal with symbols belonging to the tree constant
112         pool.
113         (get_constant_section): Add ALIGN parameter and simplify.
114         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
115         (assemble_constant_contents): Use the expression of the VAR_DECL.
116         (output_constant_def_contents): Use the alignment of the VAR_DECL.
117         (tree_output_constant_def): New global function.
118         (mark_constant): Use the expression of the VAR_DECL.
119         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
120         its expression.
121         (output_object_block): Likewise and assemble the expression.
122
123 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
124
125         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
126         hash_tree, eq_tree): New tree hash table.
127         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
128         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
129         lto_orig_address_remove): Reimplement.
130
131 2010-04-28  Xinliang David Li  <davidxl@google.com>
132
133         PR c/42643
134         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
135         (compute_uninit_opnds_pos): New function.
136         (is_non_loop_exit_postdominating): New function.
137         (compute_control_dep_chain): New function.
138         (find_pdom): New function.
139         (convert_control_dep_chain_into_preds): New function.
140         (find_predicates): New function.
141         (find_control_equiv_block): New function.
142         (collect_phi_def_edges): New function.
143         (find_def_preds): New function.
144         (find_dom): New function.
145         (dump_predicates): New function.
146         (get_cmp_code): New function.
147         (is_value_included_in): New function.
148         (find_matching_predicate_in_rest_chains): New function.
149         (use_pred_not_overlap_with_undef_path_pred): New function.
150         (is_use_properly_guarded): New function.
151         (normalize_cond_1): New function.
152         (is_and_or_or): New function.
153         (normalize_cond): New function.
154         (is_gcond_subset_of): New function.
155         (is_subset_of_any): New function.
156         (is_or_set_subset_of): New function.
157         (is_and_set_subset_of): New function.
158         (is_norm_cond_subset_of): New function.
159         (is_pred_expr_subset_of): New function.
160         (is_pred_chain_subset_of): New function.
161         (is_included_in): New function.
162         (is_superset_of): New function.
163         (find_uninit_use): New function.
164         (warn_uninitialized_phi): New function.
165         (compute_possibly_undefined_names): New function.
166         (ssa_undefined_value_p): New function.
167         (execute_late_warn_uninitialized): New function.
168         * tree-ssa.c (ssa_undefined_value_p): Removed.
169         (warn_uninit): Changed to extern.
170         (warn_uninitialized_phi): Removed.
171         (warn_uninitialized_vars): Changed to extern.
172         (execute_late_warn_uninitialized): Removed
173         * tree-flow.h: Add new prototypes.
174         * timevar.def: Add new time variable.
175         * Makefile.in: Add new build file.
176
177 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
178
179         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
180         type if available.
181
182 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
183
184         PR target/22224
185         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
186
187 2010-04-28  Martin Jambor  <mjambor@suse.cz>
188
189         * cgraph.h (struct cgraph_node): New field indirect_calls.
190         (struct cgraph_indirect_call_info): New type.
191         (struct cgraph_edge): Removed field indirect_call. New fields
192         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
193         (cgraph_create_indirect_edge): Declare.
194         (cgraph_make_edge_direct): Likewise.
195         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
196         * ipa-prop.h (struct ipa_param_call_note): Removed.
197         (struct ipa_node_params): Removed field param_calls.
198         (ipa_create_all_structures_for_iinln): Declare.
199         * cgraph.c: Described indirect edges and uids in initial comment.
200         (cgraph_add_edge_to_call_site_hash): New function.
201         (cgraph_edge): Search also among the indirect edges, use
202         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
203         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
204         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
205         site hash.
206         (initialize_inline_failed): Assign a reason to indirect edges.
207         (cgraph_create_edge_1): New function.
208         (cgraph_create_edge): Moved some functionality to
209         cgraph_create_edge_1.
210         (cgraph_create_indirect_edge): New function.
211         (cgraph_edge_remove_callee): Add an assert checking for
212         non-indirectness.
213         (cgraph_edge_remove_caller): Special-case indirect edges.
214         (cgraph_remove_edge): Likewise.
215         (cgraph_set_edge_callee): New function.
216         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
217         (cgraph_make_edge_direct): New function.
218         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
219         the declaration of the call statement matches.
220         (cgraph_node_remove_callees): Special-case indirect edges.
221         (cgraph_clone_edge): Likewise.
222         (cgraph_clone_node): Clone also the indirect edges.
223         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
224         indirect_call, dump count of indirect_calls edges.
225         * ipa-prop.c (iinlining_processed_edges): New variable.
226         (ipa_note_param_call): Create indirect edges instead of
227         creating notes.  New parameter node.
228         (ipa_analyze_call_uses): New parameter node, pass it on to
229         ipa_note_param_call.
230         (ipa_analyze_stmt_uses): Likewise.
231         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
232         (print_edge_addition_message): Work on edges rather than on notes.
233         (update_call_notes_after_inlining): Likewise, renamed to
234         update_indirect_edges_after_inlining.
235         (ipa_create_all_structures_for_iinln): New function.
236         (ipa_free_node_params_substructures): Do not free notes.
237         (ipa_edge_duplication_hook): Propagate bits within
238         iinlining_processed_edges bitmap.
239         (ipa_node_duplication_hook): Do not duplicate notes.
240         (free_all_ipa_structures_after_ipa_cp): Renamed to
241         ipa_free_all_structures_after_ipa_cp.
242         (free_all_ipa_structures_after_iinln): Renamed to
243         ipa_free_all_structures_after_iinln.g
244         (ipa_write_param_call_note): Removed.
245         (ipa_read_param_call_note): Removed.
246         (ipa_write_indirect_edge_info): New function.
247         (ipa_read_indirect_edge_info): Likewise.
248         (ipa_write_node_info): Do not stream notes, do stream information
249         in indirect edges.
250         (ipa_read_node_info): Likewise.
251         (lto_ipa_fixup_call_notes): Removed.
252         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
253         * ipa-inline.c (pass_ipa_inline): Likewise.
254         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
255         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
256         * tree-inline.c (copy_bb): Removed an unnecessary double check for
257         is_gimple_call.
258         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
259         edges.
260         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
261         (output_cgraph): Stream also indirect edges.
262         (lto_output_edge): Added capability to stream indirect edges.
263         (input_edge): Likewise.
264         (input_cgraph_1): Likewise.
265         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
266         of indirect edges.
267
268 2010-04-28  Richard Guenther  <rguenther@suse.de>
269
270         PR tree-optimization/43879
271         PR tree-optimization/43909
272         * tree-ssa-structalias.c (struct variable_info): Add
273         only_restrict_pointers flag.
274         (new_var_info): Initialize it.  Increment stats.total_vars here.
275         (create_function_info_for): Do not increment stats.total_vars
276         here.
277         (get_function_part_constraint): Fix build with C++.
278         (insert_into_field_list): Remove.
279         (push_fields_onto_fieldstack): Properly merge fields.
280         (create_variable_info_for): Split and simplify.
281         (create_variable_info_for_1): New piece.
282         (intra_create_variable_infos): Properly make restrict constraints
283         from parameters.
284
285 2010-04-28  Richard Guenther  <rguenther@suse.de>
286
287         PR c++/43880
288         * tree-inline.c (copy_bind_expr): Also copy bind expr vars
289         value-exprs.
290
291 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
292             Jan Hubicka <hubicka@ucw.cz>
293
294         * doc/invoke.texi (-Wsuggest-attribute=const,
295         -Wsuggest-attribute=pure): Document.
296         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
297         (function_always_visible_to_compiler_p,
298         suggest_attribute, warn_function_pure, warn_function_const):
299         New functions.
300         (check_call): Improve debug info.
301         (analyze_function): Do not check availability.
302         (add_new_function): Check availability.
303         (propagate): Output warnings.
304         (skip_function_for_local_pure_const): New function.
305         (local_pure_const): Use it; output warnings.
306         * common.opt (Wsuggest-attribute=const,
307         Wsuggest-attribute=pure): New.
308
309 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
310
311         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
312         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
313         or DW_CFA_def_cfa_offset{,_sf}.
314
315 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
316
317         * tree.h: Fix truncated long macros.
318
319 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
320
321         * collect2.c (TARGET_64BIT): Redefine to target's default.
322         * tlink.c: Likewise.
323         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
324         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
325         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
326         for underscoring __USER_LABEL_PREFIX__.
327         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
328         (SUB_LINK_ENTRY32): New.
329         (SUB_LINK_ENTRY64): New.
330         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
331         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
332         (SUB_LINK_ENTRY64): New.
333         (SUB_LINK_ENTRY): New.
334         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
335         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
336         x64 target is choosen.
337         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
338         * configure: Regenerated.
339         * configure.ac (leading-mingw64-underscores): Option added.
340
341 2010-04-27  Jan Hubicka  <jh@suse.cz>
342
343         * doc/invoke.texi (-fipa-profile): Document.
344         * opts.c (decode_options): Enable ipa-profile at -O1.
345         * timevar.def (TV_IPA_PROFILE): Define.
346         * common.opt (fipa-profile): Add.
347         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
348         flag for clones.
349         (cgraph_propagate_frequency): Handle only local ones.
350         * tree-pass.h (pass_ipa_profile): Declare.
351         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
352         (pass_ipa_profile): Use TV_IPA_PROFILE.
353         * ipa.c (ipa_profile): New function.
354         (gate_ipa_profile): Likewise.
355         (pass_ipa_profile): New global variable.
356         * passes.c (pass_ipa_profile): New.
357
358 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
359
360         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
361
362 2010-04-27  Martin Jambor  <mjambor@suse.cz>
363
364         PR middle-end/43812
365         * ipa.c (dissolve_same_comdat_group_list): New function.
366         (function_and_variable_visibility): Call
367         dissolve_same_comdat_group_list when comdat group contains external or
368         newly local nodes.
369         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
370         lists are circular and that they contain only DECL_ONE_ONLY nodes.
371
372 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
373
374         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
375         (const_hash_1) <VECTOR_CST>: New case.
376         (compare_constant) <VECTOR_CST>: Likewise.
377         <ADDR_EXPR>: Deal with LABEL_REFs.
378         (copy_constant) <VECTOR_CST>: New case.
379
380 2010-04-27  Jan Hubicka  <jh@suse.cz>
381
382         * cgraph.c (cgraph_propagate_frequency): New function.
383         * cgraph.h (cgraph_propagate_frequency): Declare.
384         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
385         cgraph_propagate_frequency.
386
387 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
388
389         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
390
391 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
392
393         PR target/40657
394         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
395         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
396         here to determine which regs to push and how much stack to reserve.
397
398 2010-04-27  Jie Zhang  <jie@codesourcery.com>
399
400         * doc/gimple.texi (gimple_statement_with_ops): Remove
401         addresses_taken field.
402         (gimple_statement_with_memory_ops): Likewise.
403
404 2010-04-27  Jan Hubicka  <jh@suse.cz>
405
406         * tree-inline.c (eni_inlining_weights): Remove.
407         (estimate_num_insns): Special case more builtins.
408
409 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
410
411         PR c/32207
412         * c-typeck.c (build_binary_op): Move forward check for comparison
413         pointer with null pointer constant and adjust the diagnostic message.
414
415 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
416
417         PR lto/42776
418         * configure.ac (gcc_cv_as_section_has_align): Set if installed
419         binutils supports extended .section directive needed by LTO, or
420         warn if older binutils found.
421         (LTO_BINARY_READER): New AC_SUBST'd variable.
422         (LTO_USE_LIBELF): Likewise.
423         * gcc/config.gcc (lto_binary_reader): New target-specific configure
424         variable.
425         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
426         (LTO_USE_LIBELF): Likewise.
427         * configure: Regenerate.
428
429         * collect2.c (is_elf): Rename from this ...
430         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
431          object files in addition to ELF-formatted ones.
432         (scan_prog_file): Caller updated.  Also allow for LTO info marker
433         symbol to be prefixed or not by an extra underscore.
434
435         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
436         * config/i386/winnt.c: Also #include lto-streamer.h
437         (i386_pe_asm_named_section): Specify 1-byte section alignment for
438         LTO named sections.
439         (i386_pe_asm_output_aligned_decl_common): Add comment.
440         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
441
442 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
443
444         PR target/43889
445         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
446         Add missing earlyclobber for second alternative.
447
448 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
449
450         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
451         bits for artificial defs at the top of the block.
452         * fwprop.c (single_def_use_enter_block): Don't call it.
453
454 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
455
456         PR 43715
457         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
458         instead of "$gcc_cv_objdump -T".
459         Use "-undefined dynamic_lookup" on darwin.
460         * gcc/configure: Regenerate.
461
462 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
463
464         PR c/43893
465         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
466
467 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
468
469         * c-parser.c (struct c_token): Move location field up.
470         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
471         (struct c_declspecs): Convert typespec_word, storage_class, and
472         default_int_p into bitfields.
473         (struct c_declarator): Move loc field up.
474
475 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
476
477         * cfgloop.h (struct loop): Move can_be_parallel field up.
478         * ipa-prop.h (struct ip_node_params): Move bitfields up.
479         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
480         down.
481         (struct iv_cand): Convert pos field into a bitfield.
482         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
483         field up.
484         (struct _stmt_vec_info): Shuffle fields for better packing.
485
486 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
487
488         * varasm.c (IN_NAMED_SECTION): Remove guard.
489         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
490         (IN_NAMED_SECTION_P): ...this.
491         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
492         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
493
494 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
495
496         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
497         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
498         of shadowing it.  Fix comments.
499
500 2010-04-26  Jan Hubicka  <jh@suse.cz>
501
502         * cgraph.c (cgraph_create_node): Set node frequency to normal.
503         (cgraph_clone_node): Copy function frequency.
504         * cgraph.h (node_frequency): New enum
505         (struct cgraph_node): Add.
506         * final.c (rest_of_clean_state): Update.
507         * lto-cgraph.c (lto_output_node): Output node frequency.
508         (input_overwrite_node): Input node frequency.
509         * tre-ssa-loop-ivopts (computation_cost): Update.
510         * lto-streamer-out.c (output_function): Do not output function
511         frequency.
512         * predict.c (maybe_hot_frequency_p): Update and handle functions
513         executed once.
514         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
515         attribute lookup.
516         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
517         (compute_function_frequency): Set noreturn functions to be executed
518         once.
519         (choose_function_section): Update.
520         * lto-streamer-in.c (input_function): Do not input function frequency.
521         * function.c (allocate_struct_function): Do not initialize function
522         frequency.
523         * function.h (function_frequency): Remove.
524         (struct function): Remove function frequency.
525         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
526         (try_update): Update.
527         * tree-inline.c (initialize_cfun): Do not update function frequency.
528         * passes.c (pass_init_dump_file): Update.
529         * i386.c (ix86_compute_frame_layout): Update.
530         (ix86_pad_returns): Update.
531
532 2010-04-26  Jie Zhang  <jie@codesourcery.com>
533
534         PR tree-optimization/43833
535         * tree-vrp.c (range_int_cst_p): New.
536         (range_int_cst_singleton_p): New.
537         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
538         when both operands are constants.  Use range_int_cst_p in
539         BIT_IOR_EXPR case.
540
541 2010-04-26  Jan Hubicka  <jh@suse.cz>
542
543         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
544
545 2010-04-26  Richard Guenther  <rguenther@suse.de>
546
547         PR lto/43080
548         * gimple.c (gimple_decl_printable_name): Deal gracefully
549         with a NULL DECL_NAME.
550
551 2010-04-26  Richard Guenther  <rguenther@suse.de>
552
553         PR lto/42425
554         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
555         if emitting debug information and it is either a function
556         or a namespace decl.
557
558 2010-04-26  Ira Rosen  <irar@il.ibm.com>
559
560         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
561         determine if the statement is vectorizable, and a macro to access it.
562         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
563         Skip statements that can't be vectorized. If the analysis fails,
564         mark the statement as unvectorizable if vectorizing basic block.
565         (vect_compute_data_refs_alignment): Likewise.
566         (vect_verify_datarefs_alignment): Skip statements marked as
567         unvectorizable. Add print.
568         (vect_analyze_group_access): Skip statements that can't be
569         vectorized. If the analysis fails, mark the statement as
570         unvectorizable if vectorizing basic block.
571         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
572         * tree-vect-stmts.c (vectorizable_store): Fix the number of
573         generated stmts for SLP.
574         (new_stmt_vec_info): Initialize the new field.
575         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
576         statements marked as unvectorizable.
577
578 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
579
580         * c-common.c (flag_isoc1x): New.
581         (flag_isoc99): Update comment.
582         * c-common.h (flag_isoc1x): New.
583         (flag_isoc99): Update comment.
584         * c-cppbuiltin.c (builtin_define_float_constants): Also define
585         __<type>_DECIMAL_DIG__.
586         * c-opts.c (set_std_c1x): New.
587         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
588         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
589         * c.opt (-std=c1x, -std=gnu1x): New options.
590         * doc/cpp.texi: Mention -std=c1x.
591         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
592         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
593         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
594         * doc/standards.texi: Mention C1X.
595         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
596         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
597         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
598         Define for C1X.
599
600 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
601
602         * config/i386/gmon-sol2.c (_mcleanup): Change format string
603         placeholder from 0x%x to %#x.
604         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
605         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
606         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
607         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
608         * config/i386/i386.c (ix86_target_string): Ditto.
609         (output_pic_addr_const): Ditto.
610         (print_operand): Ditto.
611
612 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
613
614         * combine.c (find_split_point): Add third argument.  Use it
615         to find nested multiply-accumulate instructions.  Adjust calls.
616         (try_combine): Adjust call to find_split_point.
617
618 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
619
620         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
621
622 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
623
624         PR tree-optimization/41442
625         * fold-const.c (merge_truthop_with_opposite_arm): New function.
626         (fold_binary_loc): Call it.
627
628 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
629
630         * toplev.c (general_init): Set default for fdiagnostics-show-option.
631         * opts.c (common_handle_option): Allow disabling it.
632         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
633
634 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
635
636         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
637         between modes if both types are integral.
638
639 2010-04-23  Richard Guenther  <rguenther@suse.de>
640
641         PR tree-optimization/43572
642         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
643
644 2010-04-23  Richard Guenther  <rguenther@suse.de>
645
646         PR lto/43455
647         * tree-inline.c (tree_can_inline_p): Also check compatibility
648         of return types.
649
650 2010-04-23  Martin Jambor  <mjambor@suse.cz>
651
652         PR tree-optimization/43846
653         * tree-sra.c (struct access): New flag grp_assignment_read.
654         (build_accesses_from_assign): Set grp_assignment_read.
655         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
656         (enum mark_read_status): New type.
657         (analyze_access_subtree): Propagate grp_assignment_read, create
658         accesses also if both direct_read and root->grp_assignment_read.
659
660 2010-04-23  Martin Jambor  <mjambor@suse.cz>
661
662         PR middle-end/43835
663         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
664         function does not have type attributes.
665
666 2010-04-23  Richard Guenther  <rguenther@suse.de>
667
668         PR lto/42653
669         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
670         of FUNCTION_DECLs.
671
672 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
673
674         * sese.h (create_if_region_on_edge): Remove.
675
676         * sese.c (create_if_region_on_edge): Make static.
677
678         * tree-inline.c: Do not include ggc.h.
679
680         * expr.c: Do not include ggc.h.
681
682         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
683         dependencies.
684
685 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
686
687         PR target/43744
688         * config/sh/sh.c (find_barrier): Don't emit a constant pool
689         in the middle of insns for casesi_worker_2.
690
691 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
692
693         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
694
695 2010-04-22  Ira Rosen  <irar@il.ibm.com>
696
697         PR tree-optimization/43842
698         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
699         loop unrolling in update of exit phis. Fix comment.
700         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
701         least two reduction statements in the loop before starting SLP
702         analysis.
703
704 2010-04-22  Nick Clifton  <nickc@redhat.com>
705
706         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
707
708 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
709
710         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
711         to simplify a + ~a.
712
713 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
714
715         * tree-parloops.c (loop_parallel_p): New argument
716         parloop_obstack.  Pass it down.
717         (parallelize_loops): New variable parloop_obstack.  Initialize it,
718         pass it down, free it.
719
720         * tree-loop-linear.c (linear_transform_loops): Pass down
721         lambda_obstack.
722
723         * tree-data-ref.h (lambda_compute_access_matrices): New argument
724         of type struct obstack *.
725
726         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
727         scratch_obstack.  Initialize it, pass down, free it.
728
729         * lambda.h (lambda_loop_new): Remove.
730         (lambda_matrix_new, lambda_matrix_inverse)
731         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
732         argument of type struct obstack *.
733
734         * lambda-trans.c (lambda_trans_matrix_new): New argument
735         lambda_obstack.  Pass it down, use obstack allocation for ret.
736         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
737         it down.
738
739         * lambda-mat.c (lambda_matrix_get_column)
740         (lambda_matrix_project_to_null): Remove.
741         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
742         allocation for mat.
743         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
744         lambda_obstack.
745
746         * lambda-code.c (lambda_loop_new): New function.
747         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
748         (lambda_compute_auxillary_space, lambda_compute_target_space)
749         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
750         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
751         (build_access_matrix): New argument lambda_obstack.  Use obstack
752         allocation for am.
753         (lambda_compute_step_signs, lambda_compute_access_matrices): New
754         argument lambda_obstack.  Pass it down.
755
756 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
757
758         * optabs.h (expand_widening_mult): Declare.
759
760 2010-04-22  Richard Guenther  <rguenther@suse.de>
761
762         PR tree-optimization/43845
763         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
764         lookup the CALL_EXPR function and arguments.
765
766 2010-04-22  Nick Clifton  <nickc@redhat.com>
767
768         * config/stormy16/stormy16.c
769         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
770         * config/stormy16/stormy16.h: Tidy up formatting.
771         (DONT_USE_BUILTIN_SETJMP): Remove definition.
772         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
773         (ineqbranchsi): Delete pattern.
774         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
775         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
776         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
777         stormy16-lib2-ucmpsi2.c.
778
779 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
780
781         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
782         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
783         extra set merge_set_noclobber, and use it to relax the final test
784         slightly.
785         * df.h (df_simulate_find_noclobber_defs): Declare.
786         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
787         conditional defs.
788         (df_simulate_find_noclobber_defs): New function.
789
790 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
791
792         * config/i386/i386.md: Use {} around multi-line preparation statements.
793
794 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
795
796         * c-tree.h (push_init_level, pop_init_level, set_init_index)
797         (process_init_element): New argument of type struct obstack *.
798
799         * c-typeck.c (push_init_level, pop_init_level, set_designator)
800         (set_init_index, set_init_label, set_nonincremental_init)
801         (set_nonincremental_init_from_string, find_init_member)
802         (output_init_element, output_pending_init_elements)
803         (process_init_element): New argument braced_init_obstack.  Pass it
804         down.
805         (push_range_stack, add_pending_init): New argument
806         braced_init_obstack.  Use obstack allocation.
807
808         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
809         braced_init_obstack.  Pass it down.
810         (c_parser_braced_init): New variables ret, braced_init_obstack.
811         Initialize obstack, pass it down and finally free it.
812
813 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
814
815         PR middle-end/29274
816         * tree-pass.h (pass_optimize_widening_mul): Declare.
817         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
818         gate_optimize_widening_mul): New static functions.
819         (pass_optimize_widening_mul): New.
820         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
821         <case MULT_EXPR>: Remove support for widening multiplies.
822         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
823         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
824         simplify_gen_unary rather than directly building extensions.
825         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
826         WIDEN_MULT_EXPR.
827         * expmed.c (expand_widening_mult): New function.
828         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
829
830 2010-04-21  Jan Hubicka  <jh@suse.cz>
831
832         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
833         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
834         * lto-wpa-fixup.c: Remove.
835         * Makefile.in (lto-wpa-fixup.o): Remove.
836         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
837         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
838         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
839
840 2010-04-21  Jan Hubicka  <jh@suse.cz>
841
842         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
843         add write_optimization_summary, read_optimization_summary.
844         (ipa_write_summaries_of_cgraph_node_set): Remove.
845         (ipa_write_optimization_summaries): Declare.
846         (ipa_read_optimization_summaries): Declare.
847         * ipa-cp.c (pass_ipa_cp): Update.
848         * ipa-reference.c (pass_ipa_reference): Update.
849         * ipa-pure-const.c (pass_ipa_pure_const): Update.
850         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
851         Update.
852         * ipa-inline.c (pass_ipa_inline): Update.
853         * ipa.c (pass_ipa_whole_program): Update.
854         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
855         * passes.c (ipa_write_summaries_1): Do not test wpa.
856         (ipa_write_optimization_summaries_1): New.
857         (ipa_write_optimization_summaries): New.
858         (ipa_read_summaries): Do not test ltrans.
859         (ipa_read_optimization_summaries_1): New.
860         (ipa_read_optimization_summaries): New.
861
862 2010-04-21  Jan Hubicka  <jh@suse.cz>
863
864         * lto-cgraph.c (lto_output_node): Do not output comdat groups
865         for boundary nodes.
866         (output_cgraph): Do not arrange comdat groups for boundary nodes.
867
868 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
869
870         PR debug/40040
871         * dwarf2out.c (add_name_and_src_coords_attributes): Add
872         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
873
874 2010-04-21  Jan Hubicka  <jh@suse.cz>
875
876         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
877
878 2010-04-21  Jan Hubicka  <jh@suse.cz>
879
880         * varpool.c (decide_is_variable_needed): Variable is always needed
881         during ltrans.
882
883 2010-04-21  Jan Hubicka  <jh@suse.cz>
884
885         * opts.c (decode_options): Enable pure-const pass for whopr.
886
887 2010-04-21  Jan Hubicka  <jh@suse.cz>
888
889         * cgraph.c (dump_cgraph_node): Dump also assembler name.
890         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
891         at WPA dumping.
892         (cgraph_decide_inlining): Do not expect callee to be removed in all
893         cases.
894
895 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
896
897         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
898
899 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
900
901         * config/i386/i386.md (x86_shrd): Add athlon_decode and
902         amdfam10_decode attributes.
903
904 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
905
906         PR middle-end/43570
907         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
908         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
909         (lower_copyprivate_clauses): Use private var in outer
910         context instead of original var.  Make sure the types
911         are correct for VLAs.
912
913 2010-04-21  Richard Guenther  <rguenther@suse.de>
914
915         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
916         to non-pointer objects.
917
918 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
919
920         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
921         last chain entry if it starts with the still current label.
922         (add_location_or_const_value_attribute): Check that
923         loc_list->first->next is NULL instead of comparing ->first with ->last.
924         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
925         to add_var_loc_to_decl.
926
927         * dwarf2out.c (output_call_frame_info): For dw_cie_version
928         >= 4 add also address size and segment size fields into CIE header.
929
930         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
931         long as address size is the same as sizeof (void *) and
932         segment size is 0.
933         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
934         address size or segment size is unexpected, return DW_EH_PE_omit.
935         (classify_object_over_fdes): If get_cie_encoding returned
936         DW_EH_PE_omit, return -1.
937         (init_object): If classify_object_over_fdes returned -1,
938         pretend there were no FDEs at all.
939
940 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
941
942         * config/i386/i386.md (bswap<mode>2): Macroize expander from
943         bswap{si,di}2 using SWI48 mode iterator.
944         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
945         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
946         set modrm attribute of bswap insn to 0 and remove length attribute.
947         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
948         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
949         set mode attribute to <MODE> and remove length attribute.
950
951 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
952
953         PR rtl-optimization/43520
954         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
955         zero available registers.
956
957 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
958
959         * builtins.c (fold_builtin_cproj): Fold more cases.
960
961 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
962
963         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
964         (fold_builtin_1): Fold builtin cproj.
965         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
966         Use ATTR_CONST_NOTHROW_LIST.
967
968 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
969
970         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
971         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
972         ffsi2_no_cmove for !TARGET_CMOVE.
973         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
974         (ffssi2): Remove expander.
975         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
976         mode iterator.
977         (ctz<mode>2): Ditto from ctz{si,di}2.
978         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
979         mode iterator.
980         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
981         mode iterator.
982
983 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
984
985         * dwarf2out.c (AT_linkage_name): Define.
986         (clone_as_declaration): Handle DW_AT_linkage_name.
987         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
988         of DW_AT_MIPS_linkage_name.
989         (move_linkage_attr): Likewise.
990         (dwarf2out_finish): Likewise.
991
992 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
993
994         PR middle-end/41952
995         * fold-const.c (fold_comparison): New folding rule.
996
997 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
998
999         * double-int.h (double_int_setbit): Declare.
1000         * double-int.c (double_int_setbit): New function.
1001         * rtl.h (immed_double_int_const): Declare.
1002         * emit-rtl.c (immed_double_int_const): New function.
1003         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1004         and immed_double_int_const functions.
1005         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1006         expand_copysign_bit):  (Ditto.).
1007         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1008         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1009         * dojump.c (prefer_and_bit_test): (Ditto.).
1010         * expr.c (convert_modes, reduce_to_bit_field_precision,
1011         const_vector_from_tree): (Ditto.).
1012         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1013
1014 2010-04-20  Jan Hubicka  <jh@suse.cz>
1015
1016         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1017         (dump_cgraph_node): Dump new flags.
1018         * cgraph.h (struct cgraph_node): Add flags
1019         reachable_from_other_partition and in_other_partition.
1020         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
1021         other partition can not be removed.
1022         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
1023         the other partition must be output; silence sanity checking on
1024         leaking functions bodies from other paritition.
1025         * lto-cgraph.c (reachable_from_other_partition_p): New function.
1026         (lto_output_node): Output new flags; do not sanity check that inline
1027         clones are output; drop lto_forced_extern_inline_p code; do not mock
1028         visibility flags at partition boundaries.
1029         (add_node_to): New function.
1030         (output_cgraph): Use it to sort functions so masters appear before
1031         clones.
1032         (input_overwrite_node): Input new flags.
1033         * passes.c (ipa_write_summaries): Do not call
1034         lto_new_extern_inline_states.
1035         * lto-section-out.c (forced_extern_inline,
1036         lto_new_extern_inline_states lto_delete_extern_inline_states,
1037         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
1038         * lto-streamer.h (lto_new_extern_inline_states,
1039         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
1040         lto_forced_extern_inline_p): Kill.
1041
1042 2010-04-20  Richard Guenther  <rguenther@suse.de>
1043
1044         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
1045         from vars that can have pointers.
1046         (process_constraint): Dump useless constraints.
1047
1048 2010-04-20  Richard Guenther  <rguenther@suse.de>
1049
1050         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
1051         (dump_sa_points_to_info): Remove asserts.
1052         (init_base_vars): nothing_id isn't an escape point nor does it
1053         have pointers.
1054
1055 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1056
1057         * tree.h (TYPE_REF_IS_RVALUE): Define.
1058         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
1059         should_move_die_to_comdat, prune_unused_types_walk): Handle
1060         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
1061         (modified_type_die, gen_reference_type_die): Emit
1062         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
1063         if TYPE_REF_IS_RVALUE and -gdwarf-4.
1064
1065 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1066
1067         PR target/43635
1068         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
1069         calls for -fpic -m31 if they have been sibcall optimized.
1070
1071 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
1072
1073         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
1074         ar.lc fixed and call-used.
1075
1076         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
1077
1078 2010-04-19  Jan Hubicka  <jh@suse.cz>
1079
1080         * opts.c (decode_options): Disable whpr incompatible passes.
1081         * lto/lto.c (lto_1_to_1_map): Skip clones.
1082         (read_cgraph_and_symbols): Do not mark everything as needed.
1083         (do_whole_program_analysis): Do map only after optimizing;
1084         set proper cgraph_state; use passmanager.
1085
1086 2010-04-19  DJ Delorie  <dj@redhat.com>
1087
1088         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
1089         POINTER_PLUS_EXPR and fix them.
1090
1091 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1092
1093         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1094         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1095         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1096         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1097         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1098         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1099         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1100         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1101         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1102         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1103         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1104
1105 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1106
1107         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1108         (check_cond_move_block): Likewise.
1109         (cond_move_process_if_block): Likewise.
1110         (noce_find_if_block): Improve formatting.
1111         (find_if_header): Pass 0 to memset and tweak conditions.
1112         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1113
1114 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1115
1116         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1117         for -gdwarf-4.
1118
1119         PR middle-end/43337
1120         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1121         with non-local decl doesn't need chain.
1122
1123 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1124
1125         * ira-color.c (allocno_reload_assign): Avoid accumulating
1126         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1127
1128 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1129
1130         * gimple.h (create_tmp_reg): Declare.
1131         * gimplify.c (create_tmp_reg): New function.
1132         (gimplify_return_expr): Use create_tmp_reg.
1133         (gimplify_omp_atomic): Likewise.
1134         (gimple_regimplify_operands): Likewise.
1135         * tree-dfa.c (make_rename_temp): Likewise.
1136         * tree-predcom.c (predcom_tmp_var): Likewise.
1137         (reassociate_to_the_same_stmt): Likewise.
1138         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
1139         (get_replaced_param_substitute): Likewise.
1140         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1141         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1142         * tree-ssa-pre.c (get_representative_for): Likewise.
1143         (create_expression_by_pieces): Likewise.
1144         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
1145         (create_tailcall_accumulator): Likewise.
1146
1147 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1148
1149         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
1150         new_stmt.
1151         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
1152
1153 2010-04-19  Richard Guenther  <rguenther@suse.de>
1154
1155         PR tree-optimization/43796
1156         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
1157         from SCEV in the lattice.
1158         (vrp_visit_phi_node): Dump change.
1159
1160 2010-04-19  Richard Guenther  <rguenther@suse.de>
1161
1162         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
1163         * configure: Re-generated.
1164
1165 2010-04-19  Richard Guenther  <rguenther@suse.de>
1166
1167         PR tree-optimization/43783
1168         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
1169         constant ARRAY_REF operands two and three if possible.
1170
1171 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
1172
1173         PR target/43766
1174         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
1175
1176 2010-04-19  Jie Zhang  <jie@codesourcery.com>
1177
1178         PR target/43662
1179         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
1180
1181 2010-04-19  Ira Rosen  <irar@il.ibm.com>
1182
1183         PR tree-optimization/37027
1184         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
1185         and macro to access it.
1186         (vectorizable_reduction): Add argument.
1187         (vect_get_slp_defs): Likewise.
1188         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
1189         statements for possible use in SLP.
1190         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
1191         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
1192         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
1193         add new argument.
1194         (vectorizable_reduction): Likewise.
1195         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
1196         vect_get_slp_defs.
1197         (vectorizable_type_demotion, vectorizable_type_promotion,
1198         vectorizable_store): Likewise.
1199         (vect_analyze_stmt): Update call to vectorizable_reduction.
1200         (vect_transform_stmt): Likewise.
1201         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
1202         (vect_build_slp_tree): Fix indentation. Check that there are no loads
1203         from different interleaving chains in same node.
1204         (vect_slp_rearrange_stmts): New function.
1205         (vect_supported_load_permutation_p): Allow load permutations for
1206         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
1207         inside SLP nodes if necessary.
1208         (vect_analyze_slp_instance): Handle reductions.
1209         (vect_analyze_slp): Try to build SLP instances originating from groups
1210         of reductions.
1211         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
1212         (vect_get_constant_vectors): Create initial vectors for reductions
1213         according to reduction code. Add new argument.
1214         (vect_get_slp_defs): Add new argument, pass it to
1215         vect_get_constant_vectors.
1216         (vect_schedule_slp_instance): Remove SLP tree root statements.
1217
1218 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1219
1220         * tree.h (ENUM_IS_SCOPED): Define.
1221         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
1222         for ENUM_IS_SCOPED enums.
1223
1224 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1225
1226         * fold-const.c (fold_comparison): Use ssizetype.
1227         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1228         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
1229         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
1230         * tree-object-size.c (compute_object_sizes): Use size_type_node.
1231
1232         * tree.h (initialize_sizetypes): Remove parameter.
1233         (build_common_tree_nodes): Remove second parameter.
1234         * stor-layout.c (initialize_sizetypes): Remove parameter.
1235         Always create an unsigned type.
1236         (set_sizetype): Assert that the passed type is unsigned and simplify.
1237         * tree.c (build_common_tree_nodes): Remove second parameter.
1238         Adjust call to initialize_sizetypes.
1239         * c-decl.c (c_init_decl_processing): Remove second argument in call to
1240         build_common_tree_nodes.
1241
1242 2010-04-18  Matthias Klose  <doko@ubuntu.com>
1243
1244         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
1245
1246 2010-04-18  Ira Rosen  <irar@il.ibm.com>
1247
1248         PR tree-optimization/43771
1249         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
1250         load permutation doesn't have gaps.
1251
1252 2010-04-18  Jan Hubicka  <jh@suse.cz>
1253
1254         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
1255         (sse_prologue_save_insn expander): Use new pattern.
1256         (sse_prologue_save_insn1): New pattern and splitter.
1257         (sse_prologue_save_insn): Update to deal also with 64bit aligned
1258         blocks.
1259         * i386.c (setup_incoming_varargs_64): Do not compute jump
1260         destination here.
1261         (ix86_gimplify_va_arg): Update alignment needed.
1262         (ix86_local_alignment): Do not align all local arrays to 128bit.
1263
1264 2010-04-17  Jan Hubicka  <jh@suse.cz>
1265
1266         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
1267
1268 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1269
1270         * arm.md (negdi2): Remove redundant code to force values into a
1271         register.
1272
1273 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1274
1275         * arm/bpabi.S: Add EABI alignment attributes to objects.
1276         * arm/bpabi-v6m.S: Likewise.
1277         * arm/crti.asm: Likewise.
1278         * arm/crtn.asm: Likewise.
1279         * arm/lib1funcs.asm: Likewise.
1280         * arm/libunwind.S: Likewise.
1281
1282 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1283
1284         * arm-protos.h (tune_params): New structure.
1285         * arm.c (current_tune): New variable.
1286         (arm_constant_limit): Delete.
1287         (struct processors): Add pointer to the tune parameters.
1288         (arm_slowmul_tune): New tuning option.
1289         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
1290         (all_cores): Adjust to pick up the tuning model.
1291         (arm_constant_limit): New function.
1292         (arm_override_options): Select the appropriate tuning model.  Delete
1293         initialization of arm_const_limit.
1294         (arm_split_constant): Use the new constant-limit model.
1295         (arm_rtx_costs): Pick up the current tuning model.
1296         * arm.md (is_strongarm, is_xscale): Delete.
1297         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
1298         for Xscale variant architectures.
1299         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
1300
1301 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1302
1303         * config/arm/arm.c (arm_gen_constant): Remove unused variable
1304         can_shift.
1305         (arm_rtx_costs_1): Remove unused variable extra_cost.
1306         (arm_unwind_emit_set): Use variable offset.
1307         (thumb1_output_casesi): Remove unused variable flags.
1308
1309 2010-04-16  Jeff Law  <law@redhat.com>
1310
1311         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
1312         needing assignment rather than doing a two-phase assignment.  Remove
1313         unused variable 'm'.
1314
1315 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1316
1317         PR bootstrap/43767
1318         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
1319
1320 2010-04-16  Doug Kwan  <dougkwan@google.com>
1321
1322         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
1323         (next_operand_entry_id): New static variable.
1324         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
1325         (add_to_ops_vec): Assigned unique ID to operand entry.
1326         (struct oecount_s): New field ID.
1327         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
1328         (undistribute_ops_list): Assign unique IDs to oecounts.
1329         (init_reassoc): reset next_operand_entry_id.
1330
1331 2010-04-16  Doug Kwan  <dougkwan@google.com>
1332
1333         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
1334         missing left parenthesis.
1335
1336 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
1337
1338         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
1339         *btdi_rex64 using SWI48 mode iterator.
1340         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
1341         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
1342         *jcc_btdi_mask_rex64.
1343
1344 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
1345
1346         * double-int.h (tree_to_double_int): Convert to macro.
1347         * double-int.c (tree_to_double_int): Remove.
1348
1349 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1350
1351         PR debug/43762
1352         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
1353         with want_address 2 and in case a single element list might be
1354         possible, call it again with want_address 0.
1355
1356 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1357
1358         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
1359         case 'W' print operands for HI mode.
1360         * config/h8300/h8300.h (Y0, Y2) : New constraints.
1361         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
1362         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
1363         * config/h8300/predicate.md (bit_register_indirect_operand): New.
1364
1365         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
1366
1367         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
1368         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
1369         #xx:3 and #xx:4 mode.
1370
1371         * config/h8300/h8300.md (inverted load with HImode dest): Add
1372         support for H8300SX.
1373
1374         * config/h8300/predicate.md (bit_operand): Allow immediate values that
1375         satisfy 'U' constraint.
1376
1377 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1378
1379         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
1380         * configure: Regenerate.
1381         * config.in: Regenerate.
1382         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
1383         works.
1384
1385 2010-04-16  Richard Guenther  <rguenther@suse.de>
1386
1387         * tree.h (struct tree_decl_minimal): Move pt_uid ...
1388         (struct tree_decl_common): ... here.
1389         (DECL_PT_UID): Adjust.
1390         (SET_DECL_PT_UID): Likewise.
1391         (DECL_PT_UID_SET_P): Likewise.
1392
1393 2010-04-16  Richard Guenther  <rguenther@suse.de>
1394
1395         PR tree-optimization/43572
1396         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
1397         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
1398         * tree-flow.h (is_call_clobbered): Remove.
1399         * tree-flow-inline.h (is_call_clobbered): Likewise.
1400         * tree-dfa.c (dump_variable): Do not dump call clobber state.
1401         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
1402         (execute_return_slot_opt): Adjust.
1403         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
1404         check for call clobbered vars here.
1405         (find_tail_calls): Move tailcall verification to the
1406         proper place.
1407
1408 2010-04-16  Diego Novillo  <dnovillo@google.com>
1409
1410         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
1411
1412 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1413
1414         PR target/40603
1415         * config/arm/arm.md (cbranchqi4): New pattern.
1416         * config/arm/predicates.md (const0_operand,
1417         cbranchqi4_comparison_operator): New predicates.
1418
1419 2010-04-16  Richard Guenther  <rguenther@suse.de>
1420
1421         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
1422         (dump_gimple_stmt): Likewise.
1423
1424 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1425
1426         * recog.h (struct recog_data): New field is_operator.
1427         (struct insn_operand_data): New field is_operator.
1428         * recog.c (extract_insn): Set recog_data.is_operator.
1429         * genoutput.c (output_operand_data): Emit code to set the
1430         is_operator field.
1431         * reload.c (find_reloads): Use it rather than testing for an
1432         empty constraint string.
1433
1434         PR target/41514
1435         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
1436         If the previous insn is a cbranchsi4_insn with the same arguments,
1437         omit the compare instruction.
1438
1439         * config/arm/arm.md (addsi3_cbranch): If destination is a high
1440         register, inputs must be low registers and we need a low register
1441         scratch.  Handle alternative 2 like alternative 3.
1442
1443 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1444
1445         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
1446         don't call get_addr on both.  If one expression is a VALUE and
1447         the other a REG, check VALUE's locs if the REG isn't among them.
1448
1449 2010-04-16  Christian Bruel  <christian.bruel@st.com>
1450
1451         * config/sh/sh.h (sh_frame_pointer_required): New function.
1452         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
1453         (flag_omit_frame_pointer) Set.
1454         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
1455         (rounded_frame_size): Adjust size with outgoing_args_size.
1456         (sh_set_return_address): Must return from stack pointer.
1457         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
1458         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1459         (ACCUMULATE_OUTGOING_ARGS): Define.
1460         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
1461         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
1462
1463 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1464
1465         PR target/43471
1466         * config/sh/sh.c (sh_legitimize_reload_address): Use
1467         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
1468         Remove a unneeded check for offset_base.
1469
1470 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1471
1472         * configure: Regenerated.
1473
1474 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1475
1476         * config/s390/s390.c (s390_call_save_register_used): Switch back
1477         to HARD_REGNO_NREGS.
1478
1479 2010-04-15  Richard Guenther  <rguenther@suse.de>
1480
1481         * alias.c (alias_set_subset_of): Handle alias-set zero
1482         child properly.
1483
1484 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
1485             Julian Brown  <julian@codesourcery.com>
1486
1487         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
1488         alternatives according to use of high and low regs.
1489         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1490         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
1491         optimizing for size on Thumb-2.
1492
1493 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
1494
1495         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
1496
1497 2010-04-15  Richard Guenther  <rguenther@suse.de>
1498
1499         * tree-ssa-structalias.c (struct variable_info): Add
1500         is_fn_info flag.
1501         (new_var_info): Initialize it.
1502         (dump_constraints): Support printing last added constraints.
1503         (debug_constraints): Adjust.
1504         (dump_constraint_graph): Likewise.
1505         (make_heapvar_for): Check for NULL cfun.
1506         (get_function_part_constraint): New function.
1507         (get_fi_for_callee): Likewise.
1508         (find_func_aliases): Properly implement IPA PTA constraints.
1509         (process_ipa_clobber): New function.
1510         (find_func_clobbers): Likewise.
1511         (insert_into_field_list_sorted): Remove.
1512         (create_function_info_for): Properly allocate vars for IPA mode.
1513         Do not use insert_into_field_list_sorted.
1514         (create_variable_info_for): Properly generate constraints for
1515         global vars in IPA mode.
1516         (dump_solution_for_var): Always dump the solution.
1517         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
1518         (find_what_var_points_to): Adjust.
1519         (pt_solution_set): Change.
1520         (pt_solution_ior_into): New function.
1521         (pt_solution_empty_p): Export.
1522         (pt_solution_includes_global): Adjust.
1523         (pt_solution_includes_1): Likewise.
1524         (pt_solutions_intersect_1): Likewise.
1525         (dump_sa_points_to_info): Check some invariants.
1526         (solve_constraints): Move constraint dumping ...
1527         (compute_points_to_sets): ... here.
1528         (ipa_pta_execute): ... and here.
1529         (compute_may_aliases): Do not re-compute points-to info
1530         locally if IPA info is available.
1531         (ipa_escaped_pt): New global var.
1532         (ipa_pta_execute): Properly implement IPA PTA.
1533         * tree-into-ssa.c (dump_decl_set): Support dumping
1534         decls not in referenced-vars.
1535         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
1536         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
1537         (dump_points_to_solution): Likewise.
1538         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
1539         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
1540         (remap_gimple_stmt): Reset call clobber/use information if necessary.
1541         (copy_decl_to_var): Copy DECL_PT_UID.
1542         (copy_result_decl_to_var): Likewise.
1543         * tree.c (make_node_stat): Initialize DECL_PT_UID.
1544         (copy_node_stat): Copy it.
1545         * tree.h (DECL_PT_UID): New macro.
1546         (SET_DECL_PT_UID): Likewise.
1547         (DECL_PT_UID_SET_P): Likewise.
1548         (struct tree_decl_minimal): Add pt_uid member.
1549         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
1550         (pt_solution_empty_p): Declare.
1551         (pt_solution_set): Adjust.
1552         (ipa_escaped_pt): Declare.
1553         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1554         * gimple-pretty-print.c (pp_points_to_solution): New function.
1555         (dump_gimple_call): Dump call clobber/use information.
1556         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
1557         * tree-pass.h (TDF_ALIAS): New dump option.
1558         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
1559         * doc/invoke.texi (-fipa-pta): Update documentation.
1560
1561 2010-04-15  Richard Guenther  <rguenther@suse.de>
1562
1563         * Makefile.in (OBJS-common): Add gimple-fold.o.
1564         (gimple-fold.o): New rule.
1565         * tree.h (maybe_fold_offset_to_reference,
1566         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
1567         prototypes ...
1568         * gimple.h: ... here.
1569         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
1570         may_propagate_address_into_dereference): Move prototypes ...
1571         * gimple.h: ... here.
1572         * tree-ssa-ccp.c (get_symbol_constant_value,
1573         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
1574         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
1575         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
1576         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
1577         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
1578         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
1579         gimplify_and_update_call_from_tree): Move ...
1580         * gimple-fold.c: ... here.  New file.
1581         (ccp_fold_builtin): Rename to ...
1582         (gimple_fold_builtin): ... this.
1583         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
1584
1585 2010-04-15  Richard Guenther  <rguenther@suse.de>
1586
1587         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
1588         fit_double_type, force_fit_type_double, add_double_with_sign,
1589         neg_double, mul_double_with_sign, lshift_double, rshift_double,
1590         lrotate_double, rrotate_double, div_and_round_double): Move ...
1591         * double-int.c: ... here.
1592         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
1593         add_double, neg_double, mul_double_with_sign, mul_double,
1594         lshift_double, rshift_double, lrotate_double, rrotate_double,
1595         div_and_round_double): Move prototypes ...
1596         * double-int.h: ... here.
1597
1598 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
1599
1600         PR target/43742
1601         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
1602         matching constraints to ensure inputs match the output.
1603
1604 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1605
1606         PR target/43742
1607         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
1608         in an input-only operand.
1609
1610 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
1611
1612         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
1613         (double_int_not, double_int_lshift, double_int_rshift): Declare.
1614         (double_int_negative_p): Convert to static inline function.
1615         * double-int.c (double_int_lshift, double_int_lshift): New functions.
1616         (double_int_negative_p): Remove.
1617         * tree.h (lshift_double, rshift_double):
1618         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
1619         * fold-const.c (fold_convert_const_int_from_real,
1620         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
1621         (lshift_double): Change type of arith argument to bool.
1622         (rshift_double): Change type of arith argument to bool. Correct
1623         comment.
1624         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1625
1626 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
1627
1628         PR target/21803
1629         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
1630         at the start and end of the then/else blocks, and omit them from the
1631         conversion.
1632         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
1633         argument; all callers changed.  Pass zero to old_insns_match_p instead.
1634         (flow_find_head_matching_sequence): New function.
1635         (old_insns_match_p): Check REG_EH_REGION notes for calls.
1636         * basic-block.h (flow_find_cross_jump,
1637         flow_find_head_matching_sequence): Declare functions.
1638
1639 2010-04-14  Jason Merrill  <jason@redhat.com>
1640
1641         PR c++/36625
1642         * c-common.c (attribute_takes_identifier_p): New fn.
1643         * c-common.h: Declare it.
1644
1645 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1646
1647         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
1648         splitter condition.
1649         (*udivmod<mode>4): Ditto.
1650
1651 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1652
1653         * config/i386/i386.md (maxmin_int): Rename code attribute from
1654         maxminiprefix and update all users.
1655         (maxmin_float): Ditto from maxminfprefix.
1656         (logic): Ditto from logicprefix.
1657         (absneg_mnemonic): Ditto from absnegprefix.
1658         * config/i386/mmx.md: Update all users of maxminiprefix,
1659         maxminfprefix and logicprefix for rename.
1660         * config/i386/sse.md: Ditto.
1661         * config/i386/sync.md (sync_<code><mode>): Update for
1662         logicprefix rename.
1663
1664 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1665
1666         PR 42966
1667         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
1668         warnings converted to errors.
1669
1670 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1671
1672         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
1673         used insn_type variable.
1674         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
1675         to avoid set-but-not-used warning.
1676
1677 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1678
1679         * df-core.c (df_ref_debug): Change format string placeholder
1680         from 0x%x to %#x.
1681         * dwarf2asm.c (dw2_asm_output_data_raw,
1682         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
1683         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
1684         * dwarf2out.c (output_cfi, output_cfi_directive,
1685         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
1686         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
1687         Ditto.
1688         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
1689         * print-rtl.c (print_rtx): Ditto.
1690
1691 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1692
1693         PR middle-end/42694
1694         * builtins.c (expand_builtin_pow_root): New function to expand pow
1695         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
1696         series of sqrt and cbrt calls under -ffast-math.
1697         (expand_builtin_pow): Call it.
1698
1699 2010-04-14  Michael Matz  <matz@suse.de>
1700
1701         PR tree-optimization/42963
1702         * tree-cfg.c (touched_switch_bbs): New static variable.
1703         (group_case_labels_stmt): New function broken out from ...
1704         (group_case_labels): ... here, use the above.
1705         (start_recording_case_labels): Allocate touched_switch_bbs.
1706         (end_recording_case_labels): Deallocate it, call
1707         group_case_labels_stmt.
1708         (gimple_redirect_edge_and_branch): Remember index of affected BB.
1709
1710 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1711
1712         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
1713         from insn template.
1714
1715 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1716
1717         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
1718
1719 2010-04-13  Jan Hubicka  <jh@suse.cz>
1720
1721         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
1722         of optimized out static functions.
1723         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
1724         cost computation.  Also sanity check for overflows.
1725         (update_caller_keys): Update cgraph_edge_badness call; properly
1726         update fibheap and sanity check that it is up to date.
1727         (add_new_edges_to_heap): Update cgraph_edge_badness.
1728         (cgraph_decide_inlining_of_small_function): Likewise;
1729         add sanity checking that badness in heap is up to date;
1730         improve dumping of reason; Update badness of calls to the
1731         offline copy of function currently inlined; dump badness
1732         of functions not inlined because of unit growth limits.
1733
1734 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1735
1736         PR middle-end/32628
1737         * c-common.c (pointer_int_sum): Disregard overflow that occured only
1738         because of sign-extension change when converting to sizetype here...
1739         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
1740
1741         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
1742         the folding to constants.  Remove redundant final conversion.
1743         (fold_binary) <associate>: Do not associate if the re-association of
1744         constants alone overflows.
1745         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
1746         to the end of the list.
1747         (multiple_of_p) <COND_EXPR>: New case.
1748
1749 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1750
1751         * opt-functions.awk (opt_sanitized_name): New.
1752         (opt_enum): New.
1753         * optc-gen.awk: Use it
1754         * opth-gen.awk: Use it.
1755
1756 2010-04-13  Martin Jambor  <mjambor@suse.cz>
1757
1758         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
1759         (sra_modify_assign): Delete stmts loading dead data even if racc has no
1760         children.  Call replace_uses_with_default_def_ssa_name to handle
1761         SSA_NAES on lhs.
1762
1763 2010-04-13  Michael Matz  <matz@suse.de>
1764
1765         PR middle-end/43730
1766         * builtins.c (expand_builtin_interclass_mathfn): Also create
1767         a register if the predicate doesn't match.
1768
1769 2010-04-13  Diego Novillo  <dnovillo@google.com>
1770
1771         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
1772         * c-pch.c: Include timevar.h.
1773         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
1774         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
1775         * ggc-common.c: Include timevar.h.
1776         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
1777         * timevar.def (TV_PCH_SAVE): Define.
1778         (TV_PCH_CPP_SAVE): Define.
1779         (TV_PCH_PTR_REALLOC): Define.
1780         (TV_PCH_PTR_SORT): Define.
1781         (TV_PCH_RESTORE): Define.
1782         (TV_PCH_CPP_RESTORE): Define.
1783
1784 2010-04-13  Michael Matz  <matz@suse.de>
1785
1786         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
1787         into MINUS_EXPRs.
1788         (can_reassociate_p): New function.
1789         (break_up_subtract_bb, reassociate_bb): Use it.
1790
1791 2010-04-13  Richard Guenther  <rguenther@suse.de>
1792
1793         PR bootstrap/43737
1794         * builtins.c (c_readstr): Fix assert.
1795
1796 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
1797
1798         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
1799         when generating cltd insn.
1800
1801         (*ashl<mode>3_1): Remove special handling for register operand 2.
1802         (*ashlsi3_1_zext): Ditto.
1803         (*ashlhi3_1): Ditto.
1804         (*ashlhi3_1_lea): Ditto.
1805         (*ashlqi3_1): Ditto.
1806         (*ashlqi3_1_lea): Ditto.
1807         (*<shiftrt_insn><mode>3_1): Ditto.
1808         (*<shiftrt_insn>si3_1_zext): Ditto.
1809         (*<shiftrt_insn>qi3_1_slp): Ditto.
1810         (*<rotate_insn><mode>3_1): Ditto.
1811         (*<rotate_insn>si3_1_zext): Ditto.
1812         (*<rotate_insn>qi3_1_slp): Ditto.
1813
1814 2010-04-13  Richard Guenther  <rguenther@suse.de>
1815
1816         * tree-ssa-structalias.c (callused_id): Remove.
1817         (call_stmt_vars): New.
1818         (get_call_vi): Likewise.
1819         (lookup_call_use_vi): Likewise.
1820         (lookup_call_clobber_vi): Likewise.
1821         (get_call_use_vi): Likewise.
1822         (get_call_clobber_vi): Likewise.
1823         (make_transitive_closure_constraints): Likewise.
1824         (handle_const_call): Adjust to do per-call call-used handling.
1825         (handle_pure_call): Likewise.
1826         (find_what_var_points_to): Remove general callused handling.
1827         (init_base_vars): Likewise.
1828         (init_alias_vars): Initialize call_stmt_vars.
1829         (compute_points_to_sets): Process call-used and call-clobbered
1830         vars for call statements.
1831         (delete_points_to_sets): Free call_stmt_vars.
1832
1833 2010-04-13  Richard Guenther  <rguenther@suse.de>
1834
1835         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1836         Only add RW dependence for dependence distance zero.
1837         Adjust maximal vectorization factor according to dependences.
1838         Move alignment handling ...
1839         (vect_find_same_alignment_drs): ... here.  New function.
1840         (vect_analyze_data_ref_dependences): Adjust.
1841         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
1842         (vect_analyze_data_refs): Adjust minimal vectorization factor
1843         according to data references.
1844         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
1845         dependences before determining the vectorization factor.
1846         Analyze alignment after determining the vectorization factor.
1847         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
1848         dependences before alignment.
1849         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
1850         Adjust prototype.
1851         (vect_analyze_data_refs): Likewise.
1852         (MAX_VECTORIZATION_FACTOR): New define.
1853
1854 2010-04-13  Duncan Sands  <baldrick@free.fr>
1855
1856         * except.h (lang_eh_type_covers): Remove.
1857         * except.c (lang_eh_type_covers): Likewise.
1858
1859 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1860             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1861
1862         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
1863         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
1864         UNITS_PER_LONG where it is ABI relevant.
1865         (s390_return_addr_rtx): Likewise.
1866         (s390_back_chain_rtx): Likewise.
1867         (s390_frame_area): Likewise.
1868         (s390_frame_info): Likewise.
1869         (s390_initial_elimination_offset): Likewise.
1870         (save_gprs): Likewise.
1871         (s390_emit_prologue): Likewise.
1872         (s390_emit_epilogue): Likewise.
1873         (s390_function_arg_advance): Likewise.
1874         (s390_function_arg): Likewise.
1875         (s390_va_start): Likewise.
1876         (s390_gimplify_va_arg): Likewise.
1877         (s390_function_profiler): Likewise.
1878         (s390_optimize_prologue): Likewise.
1879         (s390_rtx_costs): Likewise.
1880         (s390_secondary_reload): Likewise.
1881         (s390_promote_function_mode): Likewise.
1882         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
1883         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
1884         registers available.
1885         (s390_unwind_word_mode): New function.
1886         (s390_function_value): Split 64 bit values into register pair if
1887         used as return value.
1888         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
1889         function call parameters.  Handle parallels.
1890         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
1891         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
1892         (DWARF_CIE_DATA_ALIGNMENT): New macro.
1893         (s390_expand_setmem): Remove unused variable src_addr.
1894         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
1895         deal with 64 bit registers.
1896         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
1897         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
1898         (UNITS_PER_LONG): New macro.
1899         * libjava/include/s390-signal.h: Define extended ucontext
1900         structure containing the upper halfs of the 64 bit registers.
1901
1902 2010-04-13  Simon Baldwin  <simonb@google.com>
1903
1904         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
1905
1906 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1907
1908         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
1909         rvalue on the RHS if the LHS is of a non-renamable type.
1910         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
1911
1912 2010-04-13  Matthias Klose  <doko@ubuntu.com>
1913
1914         * gcc.c (cc1_options): Handle -iplugindir before processing
1915         the cc1 spec. Only add -iplugindir once.
1916         (cpp_unique_options): Add -iplugindir option if -fplugin* options
1917         found.
1918         * common.opt (iplugindir): Remove `Separate' property, initialize.
1919         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
1920         option.
1921         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
1922         (distclean): Remove plugin dir.
1923         * doc/invoke.texi: Document -iplugindir.
1924
1925 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
1926
1927         * doc/plugins.texi (Loading Plugins): Document short
1928         -fplugin=foo option.
1929         (Plugin API): Mention default_plugin_dir_name function.
1930
1931         * gcc.c (find_file_spec_function): Add new declaration.
1932         (static_spec_func): Use it for "find-file".
1933         (find_file_spec_function): Add new function.
1934         (cc1_options): Add -iplugindir option if -fplugin* options found.
1935
1936         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
1937
1938         * plugin.c (add_new_plugin): Updated comment, and handle short
1939         plugin name.
1940         (default_plugin_dir_name): Added new function.
1941
1942         * common.opt (iplugindir): New option to set the plugin directory.
1943
1944 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
1945
1946         * config/i386/i386.md (any_rotate): New code iterator.
1947         (rotate_insn): New code attribute.
1948         (rotate): Ditto.
1949         (SWIM124): New mode iterator.
1950         (<rotate_insn>ti3): New expander.
1951         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
1952         any_rotate code iterator.
1953         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
1954         using any_rotate code iterator and SWIM124 mode iterator.
1955         (ix86_rotlti3): New insn_and_split pattern.
1956         (ix86_rotrti3): Ditto.
1957         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
1958         ix86_rotl{di,ti}3 patterns.
1959         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
1960         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
1961         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
1962         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
1963         code iterator and SWI mode iterator.
1964         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
1965         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
1966         code iterator.
1967         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
1968         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
1969         (bswap rotatert splitter): Add splitter.
1970         (bswap splitter): Macroize splitter using any_rotate code iterator.
1971         Add insn predicate to split only for TARGET_USE_XCHGB or when
1972         optimizing function for size.
1973
1974 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1975
1976         * config/pa/pa.c (emit_move_sequence): Remove use of
1977         deleted variable flag_argument_noalias.
1978
1979 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1980
1981         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
1982         configurations.
1983         Add to unsupported targets list.
1984         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
1985         sparc*-sun-solaris2.[567]* from target lists.
1986         * configure: Regenerate.
1987         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
1988         removal.
1989         Remove Solaris 7 patch references.
1990         (Specific, sparc-sun-solaris2.7): Removed.
1991         (sparc-sun-solaris2*): Update Solaris 7 example.
1992         (sparc64-*-solaris2*): Likewise.
1993
1994 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1995
1996         * config.build (alpha*-dec-osf4*): Remove.
1997         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
1998         of obsolete configurations.
1999         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2000         support.
2001         * config/alpha/t-osf4: Renamed to ...
2002         * config/alpha/t-osf5: ... this.
2003         * config/alpha/osf.h: Renamed to ...
2004         * config/alpha/osf5.h: ... this.
2005         Merged old osf5.h contents.
2006         Update comments.
2007         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2008         (EXTRA_SPECS): Removed.
2009         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2010         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2011         Document that.
2012
2013 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2014
2015         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2016
2017 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2018
2019         PR/43702
2020         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
2021         __thiscall convention.
2022
2023 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2024
2025         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
2026         orig_base.
2027         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
2028
2029 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2030
2031         * function.c (assign_parms_initialize_all): Add unused attribute
2032         to fntype.
2033
2034 2010-04-12  Richard Guenther  <rguenther@suse.de>
2035
2036         * gsstruct.def (GSS_CALL): New.
2037         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
2038         * gimple.h: Include tree-ssa-alias.h.
2039         (struct gimple_statement_call): New.
2040         (union gimple_statement_struct_d): Add gimple_call member.
2041         (gimple_call_reset_alias_info): Declare.
2042         (gimple_call_use_set): New function.
2043         (gimple_call_clobber_set): Likewise.
2044         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
2045         * gimple.c (gimple_call_reset_alias_info): New function.
2046         (gimple_build_call_1): Call it.
2047         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2048         * tree-inline.c (remap_gimple_stmt): Likewise.
2049         (expand_call_inline): Remove callused handling.
2050         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
2051         * tree-dfa.c (dump_variable): Likewise.
2052         * tree-parloops.c (parallelize_loops): Likewise.
2053         * tree-ssa.c (init_tree_ssa): Likewise.
2054         (delete_tree_ssa): Likewise.
2055         * tree-flow-inline.h (is_call_used): Remove.
2056         * tree-flow.h (struct gimple_df): Remove callused member.
2057         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
2058         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
2059         (ref_maybe_used_by_call_p_1): Simplify.
2060         (call_may_clobber_ref_p_1): Likewise.
2061         * tree-ssa-structalias.c (compute_points_to_sets): Set
2062         the call stmt used and clobbered sets.
2063         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
2064         (find_tail_calls): Verify the tail call.
2065
2066 2010-04-12  Richard Guenther  <rguenther@suse.de>
2067
2068         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
2069         single-iteration always-inline inlining.
2070         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
2071         (cgraph_decide_inlining): Do not handle always-inline specially.
2072         (try_inline): Remove always-inline cycle detection special case.
2073         Do not recurse on always-inlines.
2074         (cgraph_early_inlining): Do not iterate if not optimizing.
2075         (cgraph_gate_early_inlining): remove.
2076         (pass_early_inline): Run unconditionally.
2077         (gate_cgraph_decide_inlining): New function.
2078         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
2079         not inlining or optimizing.
2080         (cgraph_decide_inlining_of_small_functions): Also consider
2081         always-inline functions.
2082         (cgraph_default_inline_p): Return true for nodes which should
2083         disregard inline limits.
2084         (estimate_function_body_sizes): Assume zero size and time for
2085         nodes which are marked as disregarding inline limits.
2086         (cgraph_decide_recursive_inlining): Do not perform recursive
2087         inlining on always-inline nodes.
2088
2089 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2090
2091         PR bootstrap/43699
2092         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2093         for exprs satisfying handled_component_p.
2094
2095 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2096
2097         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2098         non-constant aggregate elements.
2099
2100         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2101         is a real initialization.
2102
2103 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2104
2105         PR c/36774
2106         * c-decl.c (start_function): Move forward check for nested function.
2107
2108 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2109
2110         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2111         * config/sh/sh.c: Include reload.h.
2112         (sh_legitimize_reload_address): New.
2113         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2114         sh_legitimize_reload_address.
2115
2116 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2117
2118         * config/sh/sh.md (*movqi_pop): New insn pattern.
2119         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2120
2121 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2122
2123         * config/i386/i386.md (any_shiftrt): New code iterator.
2124         (shiftrt_insn): New code attribute.
2125         (shiftrt): Ditto.
2126         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2127         using any_shiftrt code iterator.
2128         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2129         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2130         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2131         pattern from corresponding peephole2 patterns.
2132         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2133         using any_shiftrt code iterator.
2134         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
2135         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
2136         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
2137         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
2138         *{ashr,lshr}<mode>3_cmp_zext.
2139         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
2140
2141 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
2144         scratch register.
2145         (*lshr<mode>3_cconly): Ditto.
2146
2147 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2148
2149         * config/i386/i386.md (lshr<mode>3): Macroize expander from
2150         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2151         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2152         pattern from *lshr{di,ti}3_1 and corresponding splitters using
2153         DWI mode iterator.
2154         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2155         from corresponding peephole2 patterns.
2156         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
2157         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
2158         and *lshrdi3_1_rex64 using SWI mode iterator.
2159         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
2160         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
2161         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
2162         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
2163         and *lshrdi3_cmp_rex64 using SWI mode iterator.
2164         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
2165         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
2166         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
2167         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
2168         SWI mode iterator.
2169
2170 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
2171
2172         * config/i386/i386.md (ashr<mode>3): Macroize expander from
2173         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2174         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2175         pattern from *ashr{di,ti}3_1 and corresponding splitters using
2176         DWI mode iterator.
2177         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2178         from corresponding peephole2 patterns.
2179         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
2180         (ashrsi3_cvt): Rename from ashrsi3_31.
2181         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
2182         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
2183         and x86_64_shift_adj_3 using SWI48 mode iterator.
2184         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
2185         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
2186         and *ashrdi3_1_rex64 using SWI mode iterator.
2187         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
2188         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
2189         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
2190         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
2191         and *ashrdi3_cmp_rex64 using SWI mode iterator.
2192         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
2193         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
2194         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
2195         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
2196         SWI mode iterator.
2197         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
2198         * config/i386/i386.c (ix86_split_ashr): Update for renamed
2199         x86_shift<mode>_adj_3 expanders.
2200
2201 2010-04-10  Wei Guozhi  <carrot@google.com>
2202
2203         PR target/42601
2204         * config/arm/arm.c (arm_pic_static_addr): New function.
2205         (legitimize_pic_address): Call arm_pic_static_addr when it detects
2206         a static symbol.
2207         (arm_output_addr_const_extra): Output expression for new pattern.
2208         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
2209
2210 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
2211
2212         * ira-costs.c (record_reg_classes): Ignore alternatives that are
2213         not enabled.
2214
2215         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
2216         * web.c: Include "insn-config.h" and "recog.h".
2217         (union_match_dups): New function.
2218         (web_main): Call it.
2219         (union_defs): Don't try to recognize match_dups.
2220
2221         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
2222         if doing so would replace the entire pattern.
2223
2224 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2225
2226         PR target/43707
2227         PR target/43709
2228         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
2229         and splitter pattern.  Change splitter operand 1 predicate to
2230         nonmemory_operand.
2231
2232 2010-04-09  Martin Jambor  <mjambor@suse.cz>
2233
2234         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
2235         lattices are addresses of CONST_DECLs with the same initial value.
2236         (ipcp_print_all_lattices): Print values of CONST_DECLs.
2237         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2238
2239 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
2240             Bernd Schmidt  <bernds@codesourcery.com>
2241
2242         * loop-invariant.c (replace_uses): New static function.
2243         (move_invariant_reg): Use it to ensure we can replace the uses.
2244
2245 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2246
2247         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
2248         function template.
2249         (picochip_override_options): Enable section anchors only above -O1.
2250         (picochip_reorg): Fixed a couple of build warnings.
2251
2252 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2253
2254         * configure.ac (plugin -rdynamic test): Log result.
2255         * configure: Regenerate.
2256         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
2257         (RDYNAMIC_SPEC): Define.
2258         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
2259
2260 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2261
2262         * configure.ac: Determine Sun ld version numbers.
2263         (comdat_group): Restrict GNU ld version checks to gld.
2264         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
2265         (enable_comdat): Support --enable-comdat.
2266         * configure: Regenerate.
2267         * doc/install.texi (Configuration): Document --enable-comdat.
2268
2269 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2270
2271         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
2272         * config/sol2-gld.h: ... here.
2273         * config.gcc (sparc*-*-solaris2*): Reflect this.
2274         (i[34567]86-*-solaris2*): Use it.
2275
2276 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
2277
2278         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
2279         setup_clocks_p.
2280         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
2281
2282 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2283
2284         PR 42965
2285         * diagnostic.c (diagnostic_initialize): Initialize
2286         some_warnings_are_errors.
2287         (diagnostic_finish): New.
2288         (diagnostic_action_after_output): Call it before exiting.
2289         (diagnostic_report_diagnostic): Do not print message here. Set
2290         some_warnings_are_errors.
2291         * diagnostic.h (diagnostic_context): Delete
2292         issue_warnings_are_errors_message. Add some_warnings_are_errors.
2293         (diagnostic_finish): Declare.
2294         * toplev.c (toplev_main): Call it before exit.
2295
2296 2010-04-09  Jason Merrill  <jason@redhat.com>
2297
2298         PR c++/42623
2299         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
2300         for incomplete type.
2301
2302         PR c++/41788
2303         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
2304         based on a warning flag.
2305
2306 2010-04-09  Richard Guenther  <rguenther@suse.de>
2307
2308         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
2309
2310 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2311
2312         PR bootstrap/43684
2313         * varasm.c (default_assemble_visibility): Wrap vars that are
2314         set, but unused, by targets without GAS.
2315         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
2316         Remove set, but unused, vars.
2317         (rs6000_legitimize_tls_address): Likewise.
2318         (altivec_expand_dst_builtin): Likewise.
2319         * config/darwin.c (machopic_classify_symbol): Likewise.
2320         (machopic_indirection_name): Likewise.
2321
2322 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2323
2324         * config/i386/i386.md (DWI): New mode iterator.
2325         (S): New mode attribute.
2326         (shift_operand): Ditto.
2327         (shift_immediate_operand): Ditto.
2328         (ashl_input_operand): Ditto.
2329         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
2330         using SDWIM mode iterator.
2331         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2332         pattern from *ashl{di,ti}3_1 and corresponding splitters using
2333         DWI mode iterator.
2334         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
2335         from corresponding peephole2 patterns.
2336         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
2337         and x86_64_shift_adj_1 using SWI48 mode iterator.
2338         (x86_shift<mode>_adj_2): Ditto.
2339         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
2340         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
2341         using SWI48 mode iterator.
2342         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
2343         *ashldi3_cmp_rex64 using SWI mode iterator.
2344         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
2345         *ashldi3_cconly_rex64 using SWI mode iterator.
2346         * config/i386/i386.c (ix86_split_ashl): Update for renamed
2347         x86_shift<mode>_adj_{1,2}.
2348         (ix86_split_ashr): Ditto.
2349         (ix86_split_lshr): Ditto.
2350
2351 2010-04-09  Richard Guenther  <rguenther@suse.de>
2352
2353         * target.h (builtin_conversion): Pass in input and output types.
2354         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
2355         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
2356         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
2357         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
2358
2359         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
2360         Handle AVX modes.
2361         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
2362
2363 2010-04-09  Richard Guenther  <rguenther@suse.de>
2364
2365         PR target/43152
2366         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
2367
2368 2010-04-09  Richard Guenther  <rguenther@suse.de>
2369
2370         * tree-vectorizer.h (struct _stmt_vec_info): Document
2371         that vectype is the type of the LHS.
2372         (supportable_widening_operation, supportable_narrowing_operation):
2373         Get both input and output vector types as arguments.
2374         (vect_is_simple_use_1): Declare.
2375         (get_same_sized_vectype): Likewise.
2376         * tree-vect-loop.c (vect_determine_vectorization_factor):
2377         Set STMT_VINFO_VECTYPE to the vector type of the def.
2378         (vectorizable_reduction): Adjust.
2379         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
2380         Adjust.  Specify the output vector type.
2381         (vect_pattern_recog_1): Adjust.
2382         * tree-vect-stmts.c (get_same_sized_vectype): New function.
2383         (vectorizable_call): Adjust.
2384         (vectorizable_conversion): Likewise.
2385         (vectorizable_operation): Likewise.
2386         (vectorizable_type_demotion): Likewise.
2387         (vectorizable_type_promotion): Likewise.
2388         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
2389         the def.
2390         (vect_is_simple_use_1): New function.
2391         (supportable_widening_operation): Get both input and output
2392         vector types.
2393         (supportable_narrowing_operation): Likewise.
2394         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
2395
2396 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
2397
2398         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
2399         __thiscall and _thiscall as predefined macros.
2400         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
2401         thiscall attribute handling.
2402         (ix86_comp_type_attributes): Likewise.
2403         (ix86_function_regparm): Likewise.
2404         (ix86_return_pops_args): Likewise.
2405         (init_cumulative_args): Likewise.
2406         (find_drap_reg): Likewise.
2407         (ix86_static_chain): Likewise.
2408         (x86_this_parameter): Likewise.
2409         (x86_output_mi_thunk): Likewise.
2410         (ix86_attribute_table): Add description for thiscall attribute.
2411         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
2412         * doc/extend.texi: Add documentation for thiscall.
2413
2414 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2415
2416         PR c++/28584
2417         * c.opt (Wint-to-pointer-cast): Available in C++.
2418         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
2419
2420 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2421
2422         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
2423         * calls.c (expand_call): Pass the function type to aggregate_value_p.
2424         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
2425         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
2426         function type instead.  Reorder and simplify checks.
2427
2428         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
2429
2430 2010-04-08  Jing Yu  <jingyu@google.com>
2431             Zdenek Dvorak  <ook@ucw.cz>
2432
2433         PR tree-optimization/42720
2434         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
2435         loop unswitch conditions here from ...
2436         (tree_unswitch_single_loop): ... here.
2437
2438 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2439
2440         * tree-if-conv.c: Fix comments and simplify logic.
2441
2442 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2443
2444         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
2445         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
2446         (main_tree_if_conversion): Update call to tree_if_conversion.
2447
2448 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2449
2450         PR 42485
2451         * doc/invoke.texi (-b,-V): Delete.
2452         * doc/tm.texi: Do not mention -b.
2453         * gcc.c (display_help): Delete -b and -V.
2454         (process_command): Delete -b and -V.
2455         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
2456
2457 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
2458             Wolfgang Gellerich  <gellerich@de.ibm.com>
2459
2460         Implement target hook for loop unrolling
2461         * target.h (loop_unroll_adjust): Add a new target hook function.
2462         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
2463         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
2464         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
2465         (s390_loop_unroll_adjust): Implement the new target hook for s390.
2466         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
2467         target hook.
2468         (decide_unroll_stupid): Likewise.
2469
2470 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2471
2472         PR target/43643
2473         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
2474
2475 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2476
2477         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
2478         (Specific, *-*-solaris2*): Likewise.
2479         Don't prefer Sun as over GNU as.
2480
2481 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
2482
2483         * config/s390/s390.c (override_options): Adjust the z10
2484           defaults for max-unroll-times, max-completely-peeled-insns
2485           and max-completely-peel-times.
2486
2487 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2488
2489         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
2490         instructions for z10.
2491         (s390_expand_setmem): Likewise.
2492         (s390_expand_cmpmem): Likewise.
2493
2494 2010-04-08  Richard Guenther  <rguenther@suse.de>
2495
2496         PR tree-optimization/43679
2497         * tree-ssa-pre.c (eliminate): Only propagate copies.
2498
2499 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2500
2501         PR bootstrap/43681
2502         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
2503         set but not used variable warning.
2504
2505 2010-04-08  Wei Guozhi  <carrot@google.com>
2506
2507         PR target/41653
2508         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
2509         (arm_size_rtx_costs): Call the new function when optimized for size.
2510
2511 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2512
2513         PR debug/43670
2514         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
2515         op0 is not a MEM, just return NULL instead of assertion
2516         failure.
2517         (discover_nonconstant_array_refs): Don't walk debug stmts.
2518
2519 2010-04-08  Doug Kwan  <dougkwan@google.com>
2520
2521         * configure.ac: Recognize gold and do not use its version number
2522         to test ld features.
2523         * configure: Regenerate.
2524
2525 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
2526
2527         PR middle-end/40815
2528         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
2529         (negate_value): Move code to push elements to broken_up_substracts ...
2530         (eliminate_plus_minus_pair): ... here.  Push operands that have no
2531         negative pair to plus_negates.
2532         (repropagate_negates, init_reassoc, fini_reassoc): Update.
2533
2534 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2535
2536         * doc/install.texi (Configuration): Move description of
2537         --enable-lto, --with-libelf*, --enable-gold from Java section to
2538         general section.
2539
2540         * doc/generic.texi (Working with declarations)
2541         (Function Properties, C and C++ Trees): Fix typos.
2542         * doc/sourcebuild.texi (Top Level): Likewise.
2543
2544 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2545
2546         PR c/18624
2547         * tree.h (DECL_READ_P): Define.
2548         (struct tree_decl_common): Add decl_read_flag.
2549         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
2550         a set but not used warning.
2551         (merge_decls): Merge DECL_READ_P flag.
2552         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
2553         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
2554         * c-common.c (handle_used_attribute, handle_unused_attribute):
2555         Likewise.
2556         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
2557         New prototypes.
2558         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
2559         New functions.
2560         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
2561         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
2562         c_parser_binary_expression, c_parser_cast_expression,
2563         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
2564         Call default_function_array_read_conversion instead of
2565         default_function_array_conversion where needed.
2566         (c_parser_unary_expression, c_parser_conditional_expression,
2567         c_parser_postfix_expression_after_primary, c_parser_initelt):
2568         Likewise.  Call mark_exp_read where needed.
2569         (c_parser_statement_after_labels, c_parser_asm_operands,
2570         c_parser_typeof_specifier, c_parser_sizeof_expression,
2571         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
2572         where needed.
2573         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
2574         New.
2575         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
2576         (warn_unused_but_set_parameter): Default to warn_unused
2577         && extra_warnings.
2578         * doc/invoke.texi: Document -Wunused-but-set-variable and
2579         -Wunused-but-set-parameter.
2580
2581         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
2582         used count variable.
2583         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
2584         when operandN variables aren't used in the body of the expander
2585         or splitter.
2586         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
2587         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
2588         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
2589         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
2590         FOR_EACH_IMM_USE_ON_STMT): Likewise.
2591         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
2592         * tree.c (PROCESS_ARG): Likewise.
2593
2594 2010-04-07  Simon Baldwin  <simonb@google.com>
2595
2596         * diagnostic.h (diagnostic_override_option_index): New macro to
2597         set a diagnostic's option_index.
2598         * c-tree.h (c_cpp_error): Add warning reason argument.
2599         * opts.c (_warning_as_error_callback): New.
2600         (register_warning_as_error_callback): Store callback for
2601         warnings enabled via enable_warning_as_error.
2602         (enable_warning_as_error): Call callback, minor code tidy.
2603         * opts.h (register_warning_as_error_callback): Declare.
2604         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
2605         response to -Werror=.
2606         (c_common_init_options): Register warning_as_error_callback in opts.c.
2607         * common.opt: Add -Wno-cpp option.
2608         * c-common.c (struct reason_option_codes_t): Map cpp warning
2609         reason codes to gcc option indexes.
2610         * (c_option_controlling_cpp_error): New function, lookup the gcc
2611         option index for a cpp warning reason code.
2612         * (c_cpp_error): Add warning reason argument, call
2613         c_option_controlling_cpp_error for diagnostic_override_option_index.
2614         * doc/invoke.texi: Document -Wno-cpp.
2615
2616 2010-04-07  Richard Guenther  <rguenther@suse.de>
2617
2618         * ipa-reference.c (mark_load): Use get_base_address.
2619         (mark_store): Likewise.
2620
2621         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
2622         inserting GIMPLE_NOPs into the IL.
2623         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2624         Explicitly strip handled components and indirect references.
2625
2626         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
2627         folding address expressions.
2628         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
2629         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
2630         operand_equal_p to compare decls.
2631         (ptr_deref_may_alias_decl_p): Likewise.
2632         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
2633         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
2634         Handle reversed comparison ops.
2635         * tree-sra.c (asm_visit_addr): Use get_base_address.
2636         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2637         * ipa-reference.c (mark_address): Use get_base_address.
2638
2639 2010-04-07  Richard Guenther  <rguenther@suse.de>
2640
2641         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
2642         Propagate constants everywhere.
2643
2644 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2645
2646         PR debug/43516
2647         * tree.c (MAX_INT_CACHED_PREC): Define.
2648         (nonstandard_integer_type_cache): New array.
2649         (build_nonstandard_integer_type): Cache results for precision
2650         <= MAX_INT_CACHED_PREC.
2651
2652 2010-04-07  Richard Guenther  <rguenther@suse.de>
2653
2654         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
2655         -fargument-noalias-global, -fargument-noalias-anything): Remove.
2656         * common.opt: Likewise.
2657         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
2658         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
2659         (nonoverlapping_memrefs_p): Likewise.
2660         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2661         * opts.c (common_handle_option): Handle OPT_fargument_alias,
2662         OPT_fargument_noalias, OPT_fargument_noalias_anything and
2663         OPT_fargument_noalias_global for backward compatibility.
2664
2665 2010-04-07  Richard Guenther  <rguenther@suse.de>
2666
2667         PR tree-optimization/43270
2668         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
2669         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
2670         * tree-ssa-pre.c (phi_translate_1): Adjust.
2671         (fully_constant_expression): Split out vn_reference handling to ...
2672         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
2673         Fold reads from constant strings.
2674         (vn_reference_lookup): Handle fully constant references.
2675         (vn_reference_lookup_pieces): Likewise.
2676         * Makefile.in (expmed.o-warn): Add -Wno-error.
2677
2678 2010-04-07  Martin Jambor  <mjambor@suse.cz>
2679
2680         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
2681
2682 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2683
2684         PR driver/41594
2685         * gcc.c: Add -static-libstdc++ to list of recognized options.
2686
2687 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2688
2689         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
2690
2691 2010-04-07  Richard Guenther  <rguenther@suse.de>
2692
2693         PR middle-end/42617
2694         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
2695         bases build simple mem attributes to retain points-to information.
2696
2697 2010-04-07  Richard Guenther  <rguenther@suse.de>
2698
2699         PR middle-end/42617
2700         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
2701         preserve points-to related information.
2702
2703 2010-04-07  Richard Guenther  <rguenther@suse.de>
2704
2705         PR middle-end/42617
2706         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
2707         discard plain indirect references.
2708         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
2709         * tree.c (tree_nop_conversion): Likewise.
2710
2711 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
2712
2713         PR debug/43628
2714         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
2715
2716 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
2717
2718         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
2719         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
2720
2721 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2722
2723         * tree-if-conv.c: Fix indentation and comments.
2724
2725 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2726
2727         * tree-if-conv.c: Sort static functions in topological order.
2728
2729 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2730
2731         * tree-if-conv.c: Fix indentation and comments.
2732
2733 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2734
2735         PR middle-end/43519
2736         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
2737         lang_hooks.types.type_for_size instead of
2738         build_nonstandard_integer_type.
2739         When converting an unsigned type to signed, double its precision.
2740         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
2741         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
2742         (graphite_create_new_loop_guard): When ub + 1 wraps around,
2743         use lb <= ub.
2744
2745 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2746
2747         PR middle-end/43519
2748         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
2749         POINTER_PLUS_EXPR for pointer types.
2750
2751 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2752
2753         PR middle-end/43519
2754         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
2755         * graphite-clast-to-gimple.c: Include langhooks.h.
2756         (max_signed_precision_type): New.
2757         (max_precision_type): Takes two types as arguments.
2758         (precision_for_value): New.
2759         (precision_for_interval): New.
2760         (gcc_type_for_interval): New.
2761         (gcc_type_for_value): New.
2762         (gcc_type_for_clast_term): New.
2763         (gcc_type_for_clast_red): New.
2764         (gcc_type_for_clast_bin): New.
2765         (gcc_type_for_clast_expr): Split up into several functions.
2766         (gcc_type_for_clast_eq): Rewritten.
2767         (compute_bounds_for_level): New.
2768         (compute_type_for_level_1): New.
2769         (compute_type_for_level): New.
2770         (gcc_type_for_cloog_iv): Removed.
2771         (gcc_type_for_iv_of_clast_loop): Rewritten.
2772         (graphite_create_new_loop): Compute the lower and upper bound types
2773         with gcc_type_for_clast_expr.
2774         (graphite_create_new_loop_guard): Same.
2775         (find_cloog_iv_in_expr): Removed.
2776         (compute_cloog_iv_types_1): Removed.
2777         (compute_cloog_iv_types): Removed.
2778         (gloog): Do not call compute_cloog_iv_types.
2779         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
2780         GBB_CLOOG_IV_TYPES.
2781         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
2782         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
2783         (GBB_CLOOG_IV_TYPES): Removed.
2784
2785 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2786
2787         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
2788         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
2789         (detect_commutative_reduction): Same.
2790
2791 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2792
2793         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
2794         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
2795         argument.
2796         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
2797         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
2798         (rewrite_commutative_reductions_out_of_ssa): Same.
2799         * passes.c (execute_function_todo): Call verify_ssa for every pass
2800         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
2801         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
2802         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
2803         with an extra argument.
2804         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
2805         verify_ssa only when the extra argument is true.
2806         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
2807         with an extra argument.
2808         (tree_transform_and_unroll_loop): Same.
2809
2810 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2811
2812         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
2813         for all the passes of the LNO having LOOP_CLOSED_SSA.
2814         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
2815         * tree-loop-distribution.c (pass_loop_distribution): Same.
2816         * tree-pass.h (TODO_verify_loops): Removed.
2817         * tree-ssa-loop.c (pass_tree_loop_init): Same.
2818         (pass_lim): Same.
2819         (pass_tree_unswitch): Same.
2820         (pass_predcom): Same.
2821         (pass_vectorize): Same.
2822         (pass_linear_transform): Same.
2823         (pass_graphite_transforms): Same.
2824         (pass_iv_canon): Same.
2825         (pass_complete_unroll): Same.
2826         (pass_complete_unrolli): Same.
2827         (pass_parallelize_loops): Same.
2828         (pass_loop_prefetch): Same.
2829         (pass_iv_optimize): Same.
2830
2831 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
2832
2833         PR middle-end/32824
2834         * passes.c (init_optimization_passes): Move pass_lim before
2835         pass_copy_prop and pass_dce_loop.
2836
2837 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2838
2839         PR target/43667
2840         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
2841         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
2842         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
2843         MULTI_* defines for 4 argument vpermil2p* builtins.
2844
2845 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2846
2847         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
2848         * config/i386/i386.c (x86_maybe_negate_const_int): New.
2849         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
2850         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
2851         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
2852         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
2853         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
2854         Use x86_maybe_negate_const_int to output insn mnemonic.
2855         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
2856         check from instruction predicate.  Update comments.
2857         * config/i386/sync.md (sync_add<mode>): Use
2858         x86_maybe_negate_const_int to output insn mnemonic.
2859
2860 2010-04-06  Jan Hubicka  <jh@suse.cz>
2861
2862         PR tree-optimization/42906
2863         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
2864         IGNORE_SELF argument.  Set visited_control_parents for fully
2865         processed BBs.
2866         (find_obviously_necessary_stmts): Update call of
2867         mark_control_dependent_edges_necessary.
2868         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
2869
2870 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2871
2872         * config/i386/i386.md: Remove comment about 'e' and 'E'
2873         operand modifier.
2874
2875 2010-04-06  Richard Guenther  <rguenther@suse.de>
2876
2877         PR tree-optimization/43627
2878         * tree-vrp.c (extract_range_from_unary_expr): Widenings
2879         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
2880         not varying.
2881
2882 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2883
2884         * BASE-VER: Change to 4.6.0.
2885
2886         PR target/43638
2887         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
2888         handling.
2889
2890 2010-04-06  Richard Guenther  <rguenther@suse.de>
2891
2892         PR middle-end/43661
2893         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
2894
2895 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2896
2897         * doc/invoke.texi (Optimize Options): Document that LTO
2898         won't remove object access purely due to incompatible
2899         declarations.
2900
2901 2010-04-04  Matthias Klose  <doko@ubuntu.com>
2902
2903         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
2904         Initialize variable.
2905
2906 2010-04-03  Richard Guenther  <rguenther@suse.de>
2907
2908         PR middle-end/42509
2909         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
2910         require a non-NULL MEM_OFFSET.
2911
2912 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
2913
2914         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
2915         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
2916         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
2917         config/alpha/predicates.md, config/arm/arm.md,
2918         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
2919         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
2920         config/darwin9.h, config/darwin.c, config/darwin.h,
2921         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
2922         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
2923         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
2924         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
2925         config/mips/mips.md, config/mn10300/mn10300.c,
2926         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
2927         config/rs6000/aix.h, config/rs6000/dfp.md,
2928         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
2929         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
2930         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
2931         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
2932         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
2933         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
2934         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
2935         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
2936         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
2937         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
2938         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
2939         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
2940         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
2941         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
2942         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
2943         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
2944         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
2945         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
2946         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
2947         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
2948         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
2949         opt-functions.awk, opth-gen.awk, params.def, passes.c,
2950         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
2951         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
2952         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
2953         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
2954         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
2955         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
2956         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
2957         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
2958         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
2959         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2960         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
2961         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
2962         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
2963         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
2964
2965 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2966
2967         PR other/43620
2968         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
2969         * aclocal.m4: Regenerate.
2970
2971 2010-04-02  Richard Guenther  <rguenther@suse.de>
2972
2973         PR tree-optimization/43629
2974         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
2975         if we have seen a constant value.
2976
2977 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
2978
2979         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
2980
2981 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
2982
2983         PR target/43469
2984         * arm.c (legitimize_tls_address): Adjust call to
2985         gen_tls_load_dot_plus_four.
2986         (arm_note_pic_base): New function.
2987         (arm_cannot_copy_insn_p): Use it.
2988         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
2989         constraint.
2990
2991 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2992
2993         PR bootstrap/43531
2994
2995         Revert:
2996         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2997
2998         * Makefile.in ($(out_object_file)): Depend on
2999         gt-$(basename $(notdir $(out_file))).h.
3000
3001 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3002
3003         * config.gcc (lm32-*-rtems*): Add t-lm32.
3004
3005 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3006
3007         * config.gcc: Add lm32-*-rtems*.
3008         * config/lm32/rtems.h: New file.
3009
3010 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3011
3012         PR target/42609
3013         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3014
3015 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3016
3017         * dwarf2out.c (output_compilation_unit_header): For
3018         -gdwarf-4 use version 4 instead of version 3.
3019         (output_line_info): For version 4 and above emit additional
3020         maximum ops per insn header field.
3021         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
3022
3023         * dwarf2out.c (is_c_family, is_java): Remove.
3024         (lower_bound_default): New function.
3025         (add_bound_info, gen_descr_array_type_die): Use it.
3026
3027 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
3028
3029         PR debug/43325
3030         * dwarf2out.c (gen_variable_die): Allow debug info for variable
3031         re-declaration when it happens in a function.
3032
3033 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
3034
3035         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
3036         (cgraph_remove_function_insertion_hook): Same.
3037         (cgraph_call_function_insertion_hooks): Same.
3038
3039 2010-04-01  Richard Guenther  <rguenther@suse.de>
3040
3041         PR middle-end/43614
3042         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
3043         and TREE_THIS_VOLATILE.
3044         (copy_ref_info): Likewise.
3045         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
3046         * tree.c (build6_stat): Ignore side-effects of all but arg5
3047         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
3048         TARGET_MEM_REF.
3049
3050 2010-04-01  Richard Guenther  <rguenther@suse.de>
3051
3052         PR tree-optimization/43607
3053         * ipa-type-escape.c (check_call): Do not access non-existing
3054         arguments.
3055
3056 2010-04-01  Richard Guenther  <rguenther@suse.de>
3057
3058         PR middle-end/43602
3059         Revert
3060         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3061                     Jack Howarth <howarth@bromo.med.uc.edu>
3062
3063         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3064         variables TLS.
3065
3066 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3067
3068         * doc/install.texi (Prerequisites): Document libelf usability on
3069         IRIX 5/6 and Solaris 2.
3070         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
3071         Update GNU as, GNU ld requirements.
3072         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
3073         Document Sun Studio compiler download.
3074         Update and simplify as, ld recommendations.
3075         (Specific, *-*-solaris2.7): Note obsoletion, removal.
3076
3077 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3078
3079         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
3080         with_tune_32 to pentium4.
3081
3082 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
3083
3084         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
3085
3086 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3087
3088         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
3089         obsoletion, removal.
3090         Update IDO URL.
3091         Document GNU as requirement.
3092         Update configure requirements.
3093         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
3094         Recomment IRIX 6.5.18+.
3095         Document IDF/IDL requirement.
3096         Document GNU as requirement.
3097         Document GNU ld bootstrap failure.
3098         Remove freeware.sgi.com reference.
3099
3100 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3101
3102         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
3103         UNIX V4.0, V5.0 obsoletion, removal.
3104         Remove --with-gc=simple reference.
3105         Update VM requirements during bootstrap.
3106         Remove -oldas bootstrap description.
3107         Update binutils reference.
3108         Remove comparison failure note.
3109
3110 2010-03-31  Richard Guenther  <rguenther@suse.de>
3111             Zdenek Dvorak  <ook@ucw.cz>
3112             Sebastian Pop  <sebastian.pop@amd.com>
3113
3114         PR middle-end/43464
3115         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
3116         with multiple arguments.
3117         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
3118
3119 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3120
3121         * graphite-dependences.c (print_pddr): Call print_pdr with an
3122         extra argument.
3123         * graphite-poly.c (debug_pdr): Add an extra argument for the
3124         verbosity level.
3125         (print_pdr): Same.
3126         (print_pbb_domain): Same.
3127         (print_pbb): Same.
3128         (print_scop_context): Same.
3129         (print_scop): Same.
3130         (print_cloog): Same.
3131         (debug_pbb_domain): Same.
3132         (debug_pbb): Same.
3133         (print_pdrs): Same.
3134         (debug_pdrs): Same.
3135         (debug_scop_context): Same.
3136         (debug_scop): Same.
3137         (debug_cloog): Same.
3138         (print_scop_params): Same.
3139         (debug_scop_params): Same.
3140         (print_iteration_domain): Same.
3141         (print_iteration_domains): Same.
3142         (debug_iteration_domain): Same.
3143         (debug_iteration_domains): Same.
3144         (print_scattering_function): Same.
3145         (print_scattering_functions): Same.
3146         (debug_scattering_function): Same.
3147         (debug_scattering_functions): Same.
3148         * graphite-poly.h (debug_pdr): Update declaration.
3149         (print_pdr): Same.
3150         (print_pbb_domain): Same.
3151         (print_pbb): Same.
3152         (print_scop_context): Same.
3153         (print_scop): Same.
3154         (print_cloog): Same.
3155         (debug_pbb_domain): Same.
3156         (debug_pbb): Same.
3157         (print_pdrs): Same.
3158         (debug_pdrs): Same.
3159         (debug_scop_context): Same.
3160         (debug_scop): Same.
3161         (debug_cloog): Same.
3162         (print_scop_params): Same.
3163         (debug_scop_params): Same.
3164         (print_iteration_domain): Same.
3165         (print_iteration_domains): Same.
3166         (debug_iteration_domain): Same.
3167         (debug_iteration_domains): Same.
3168         (print_scattering_function): Same.
3169         (print_scattering_functions): Same.
3170         (debug_scattering_function): Same.
3171         (debug_scattering_functions): Same.
3172
3173 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3174
3175         * graphite-poly.c (print_scattering_function_1): New.
3176         (print_scattering_function): Call it.
3177         (print_scop_params): Remove spaces at the end of lines.
3178         (print_cloog): New.
3179         (debug_cloog): New.
3180         * graphite-poly.h (print_cloog): Declared.
3181         (debug_cloog): Declared.
3182
3183 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3184
3185         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
3186         in loop->header.
3187         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
3188         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
3189         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
3190         to switch between adding the IV bump in loop->latch or in loop->header.
3191
3192 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3193
3194         * graphite-poly.c (print_scattering_function): Pretty print following
3195         the scoplib format.
3196         (print_pdr): Same.
3197         (print_pbb_domain): Same.
3198         (dump_gbb_cases): Same.
3199         (dump_gbb_conditions): Same.
3200         (print_pdrs): Same.
3201         (print_pbb): Same.
3202         (print_scop_params): Same.
3203         (print_scop_context): Same.
3204         (print_scop): Same.
3205         (print_pbb_body): New.
3206         (lst_indent_to): New.
3207         (print_lst): Start new lines with a #.
3208         * graphite-poly.h (pbb_bb): New.
3209         (pbb_index): Use pbb_bb.
3210         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
3211         disjuncts.
3212         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
3213
3214 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3215
3216         * dwarf2out.c (size_of_die): For -gdwarf-4 use
3217         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
3218         and 0 instead of 1 for dw_val_class_flag.
3219         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
3220         dw_val_class_range_list, dw_val_class_loc_list,
3221         dw_val_class_lineptr and dw_val_class_macptr, use
3222         DW_FORM_flag_present for dw_val_class_flag and
3223         DW_FORM_exprloc for dw_val_class_loc.
3224         (output_die): For -gdwarf-4 print dw_val_class_loc
3225         size as uleb128 instead of 1 or 2 bytes and don't print
3226         anything for dw_val_class_flag.
3227
3228         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
3229         instead of cselib_lookup following by tweaking locs->setting_insn.
3230
3231         PR bootstrap/43596
3232         * cselib.c (cselib_process_insn): Clear cselib_current_insn
3233         even before returning from label, setjmp call or volatile asm
3234         handling.
3235
3236 2010-03-31  Richard Guenther  <rguenther@suse.de>
3237
3238         PR middle-end/43600
3239         * cgraphunit.c (cgraph_output_in_order): Do not allocate
3240         temporary data on stack.
3241
3242 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3243
3244         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
3245         (PUSHSECTION_ASM_OP): Remove.
3246         (POPSECTION_ASM_OP): Remove.
3247         (PUSHSECTION_FORMAT): Remove.
3248         * config/sol2.h (PUSHSECTION_FORMAT): Define.
3249         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
3250         * config/sol2.c (solaris_output_init_fini): Use it.
3251
3252 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3253
3254         PR 43574
3255         * opt-functions.awk (var_type_struct): Use signed char type
3256         for simple variables.
3257
3258 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3259
3260         * config/sol2.c: Include output.h.
3261         (solaris_assemble_visibility): New function.
3262         * config/t-sol2 (sol2.o): Add output.h dependency.
3263         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
3264         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
3265         Redefine.
3266
3267 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3268
3269         PR target/43580
3270         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
3271         V2SImode or XFmode on PRE_DEC.
3272
3273         PR debug/43557
3274         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
3275         BLKmode.
3276
3277 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3278
3279         PR 43562
3280         * reload.h (caller_save_initialized_p): Declare.
3281         * toplev.c (backend_init_target): Don't call
3282         init_caller_save but set caller_save_initialized_p to false.
3283         * caller-save.c (caller_save_initialized_p): Define.
3284         (init_caller_save): Check caller_save_initialized_p.
3285         * ira.c (ira): Call init_caller_save if flag_caller_saves.
3286
3287 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3288
3289         PR target/39048
3290         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
3291         and soft-fp/t-softfp to tmake_file.
3292         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
3293         (LIBGCC2_TF_CEXT): Define.
3294         (TF_SIZE): Define.
3295
3296 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
3297
3298         PR debug/42977
3299         * cselib.c (n_useless_values): Document handling of debug locs.
3300         (n_useless_debug_values, n_debug_values): New variables.
3301         (new_elt_loc_list): Don't add to debug values, keep count.
3302         (promote_debug_loc): New.
3303         (cselib_reset_table): Zero new variables.
3304         (entry_and_rtx_equal_p): Promote debug locs.
3305         (discard_useless_locs): Increment n_useless_debug_values for
3306         debug values.
3307         (remove_useless_values): Adjust n_useless_values and n_debug_values
3308         with n_useless_debug_values.
3309         (add_mem_for_addr): Promote debug locs.
3310         (cselib_lookup_mem): Likewise.
3311         (cselib_lookup_addr): Renamed to...
3312         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
3313         (cselib_log_lookup): ... this.  Turn into...
3314         (cselib_lookup_addr): ... new wrapper.
3315         (cselib_lookup_from_insn): New.
3316         (cselib_invalidate_regno): Increment n_useless_debug_values for
3317         debug values.
3318         (cselib_invalidate_mem): Likewise.
3319         (cselib_process_insn): Take n_deleted and n_debug_values into
3320         account to guard remove_useless_value call.
3321         (cselib_finish): Zero n_useless_debug_values.
3322         * cselib.h (cselib_lookup_from_insn): Declare.
3323         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
3324         (sched_analyze_2): Likewise.
3325
3326 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
3327
3328         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
3329         functions.
3330         (adjust_mems): Replace narrowing SUBREG of expression containing
3331         just PLUS, MINUS, MULT and ASHIFT of registers and constants
3332         with operations in the narrower mode.
3333
3334         PR debug/43593
3335         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
3336         regs_invalidated_by_call instead all call_used_reg_set registers.
3337
3338 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3339
3340         PR middle-end/43430
3341         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
3342         pointer comparisons with types_compatible_p.
3343         * tree-vect-stmts.c (vectorizable_call): Same.
3344         (vectorizable_condition): Same.
3345
3346 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3347
3348         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
3349         stack check if the mask would be zero.
3350
3351 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3352             Jack Howarth <howarth@bromo.med.uc.edu>
3353
3354         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3355         variables TLS.
3356
3357 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
3358
3359         PR other/25232
3360         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
3361         and __unordtf2.
3362         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
3363         Include ___unordxf2 and ___unordtf2.
3364         * config/i386/libgcc-glibc.ver: Do not define inheritance from
3365         GCC_4.4.0 here.
3366
3367 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
3368
3369         * config/lm32/t-lm32: New file.
3370         * config.gcc: Use the above file when targetting lm32.
3371
3372 2010-03-28  Duncan Sands  <baldrick@free.fr>
3373
3374         * Makefile.in (PLUGIN_HEADERS): Add except.h.
3375
3376 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3377
3378         PR middle-end/43431
3379         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3380         Improve vectorization cost model diagnostic.
3381
3382 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3383
3384         PR middle-end/43436
3385         * tree-vect-data-refs.c (vect_analyze_data_refs): When
3386         compute_data_dependences_for_loop returns false, early exit
3387         and output an extra diagnostic for the failed data reference
3388         analysis.
3389
3390 2010-03-29  Richard Guenther  <rguenther@suse.de>
3391
3392         PR tree-optimization/43560
3393         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
3394         (can_sm_ref_p): Treat stores to readonly locations as trapping.
3395
3396 2010-03-29  Jie Zhang  <jie@codesourcery.com>
3397
3398         PR 43564
3399         * toplev.c (process_options): Set optimization_default_node
3400         and optimization_current_node.
3401         * opts.c (decode_options): Don't set optimization_default_node
3402         and optimization_current_node.
3403
3404 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
3405
3406         * config/rtems.h: Abandon -qrtems_debug.
3407
3408 2010-03-28  Jan Hubicka  <jh@suse.cz>
3409
3410         PR tree-optimization/43505
3411         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
3412         map should not be copied.
3413
3414 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3415
3416         PR middle-end/41674
3417         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
3418         cdtors, set DECL_PRESERVE_P.
3419         * ipa.c (cgraph_externally_visible_p): Return true if declaration
3420         should be preseved.
3421
3422 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
3423
3424         PR tree-optimization/43528
3425         * stor-layout.c (place_field): Check that constant fits into
3426         unsigned HWI when skipping calculation of MS bitfield layout.
3427
3428 2010-03-27  Jan Hubicka  <jh@suse.cz>
3429
3430         PR middle-end/43391
3431         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
3432         notice_global_symbol work.
3433
3434 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
3435
3436         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
3437         instead of dwarf2out_decl.
3438         (struct var_loc_node): Remove section_label field.
3439         (dwarf2out_function_decl): New function.
3440         (dwarf2out_var_location): Don't set section_label field.
3441         (dwarf2out_begin_function): Don't empty decl_loc_table here.
3442
3443 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3444
3445         PR tree-optimization/43544
3446         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
3447         First argument for builtin vectorized function hook is now a
3448         tree to be able to distinguish between machine specific and
3449         standard builtins.
3450         * targhooks.c (default_builtin_vectorized_function): Ditto.
3451         * targhooks.h (default_builtin_vectorized_function): Ditto.
3452         * target.h (struct gcc_target): Ditto.
3453         * tree-vect-stmts.c (vectorizable_function): Ditto.
3454         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
3455         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
3456         Ditto.
3457
3458 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
3459
3460         PR c/43381
3461         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
3462         nested binding iff it is a FUNCTION_DECL.
3463         (store_parm_decls_newstyle): Pass nested=true to bind for
3464         FUNCTION_DECLs amongst parameters.
3465
3466 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3467
3468         * var-tracking.c (vt_expand_loc_callback): Don't run
3469         cselib_expand_value_rtx_cb in dummy mode if
3470         cselib_dummy_expand_value_rtx_cb returned false.
3471
3472         * var-tracking.c (emit_note_insn_var_location): For one part
3473         notes with offset 0, don't add EXPR_LIST around the location.
3474         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
3475         add_location_or_const_value_attribute): Adjust for that change.
3476
3477         PR debug/43540
3478         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
3479         into first operand and location into second.
3480         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
3481         dw_cfi_oprnd_loc for DW_CFA_expression.
3482         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
3483         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
3484         assume first argument is regnum and second argument is location.
3485
3486 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3487
3488         PR target/42113
3489         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
3490         of scratch register to DImode.  Split to DImode comparison operator.
3491         Use SImode subreg of scratch register in the multiplication.
3492         (*cmp_sadd_sidi): Ditto.
3493         (*cmp_ssub_si): Ditto.
3494         (*cmp_ssub_sidi): Ditto.
3495
3496 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3497
3498         PR target/43524
3499         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
3500         Remove invalid assert and wrong comment.
3501
3502 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3503
3504         PR debug/43516
3505         * flags.h (final_insns_dump_p): New extern.
3506         * final.c (final_insns_dump_p): New variable.
3507         (rest_of_clean_state): Set it before -fdump-final-insns=
3508         dumping, clear afterwards.
3509         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
3510         MEM_ALIAS_SET on MEMs.
3511
3512 2010-03-26  David S. Miller  <davem@davemloft.net>
3513
3514         * configure.ac: Fix sparc GOTDATA_OP bug check.
3515         * configure: Rebuild.
3516
3517 2010-03-26  Alan Modra  <amodra@gmail.com>
3518
3519         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
3520
3521 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3522
3523         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
3524         TLS_SECTION_ASM_FLAG.
3525
3526 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
3527
3528         PR bootstrap/43511
3529         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
3530         Clear first_function_block_is_cold.
3531
3532         PR c/43385
3533         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
3534         argument if the argument is truth_value_p.
3535
3536 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3537
3538         * config/rs6000/constraints.md: Update copyright year for my changes.
3539
3540         PR target/43484
3541         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
3542         used in reg+reg addressing, swap registers.
3543
3544 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3545
3546         PR debug/43293
3547         * target.h (struct gcc_target): Add code_end hook.
3548         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
3549         if not yet defined.
3550         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
3551         * toplev.c (compile_file): Call targetm.asm_out.code_end
3552         hook before unwind info/debug info output.
3553         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
3554         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
3555         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3556         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
3557         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3558         * config/i386/i386.c (ix86_file_end): Renamed to...
3559         (ix86_code_end): ... this.  Make static.  Don't call
3560         file_end_indicate_exec_stack.  Emit unwind info using
3561         final_start_function/final_end_function.
3562         (darwin_x86_file_end): Remove.
3563         (TARGET_ASM_CODE_END): Define.
3564         * config/i386/i386.h (TARGET_ASM_FILE_END,
3565         NEED_INDICATE_EXEC_STACK): Don't define.
3566         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
3567         (TARGET_ASM_FILE_END): Define to darwin_file_end.
3568         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
3569         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
3570
3571         PR target/43498
3572         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
3573         at the beginning and final_end_function at the end.
3574         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3575
3576 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3577
3578         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
3579         and Sun as TLS syntax.
3580         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
3581         * configure: Regenerate.
3582         * config.in: Regenerate.
3583         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
3584         (default_elf_asm_named_section): Use it.
3585         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
3586         (i386_output_dwarf_dtprel): Likewise.
3587         (output_addr_const_extra): Likewise.
3588         (output_pic_addr_const): Lowercase @GOTTPOFF.
3589         (output_addr_const_extra): Likewise.
3590         (output_pic_addr_const): Lowercase @GOTNTPOFF.
3591         (output_addr_const_extra): Likewise.
3592         (output_pic_addr_const): Lowercase @INDNTPOFF.
3593         (output_addr_const_extra): Likewise.
3594         (output_pic_addr_const): Lowercase @NTPOFF.
3595         (output_addr_const_extra): Likewise.
3596         (output_pic_addr_const): Lowercase @TPOFF.
3597         (output_addr_const_extra): Likewise.
3598         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
3599         (*tls_global_dynamic_64): Likewise.
3600         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
3601         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
3602
3603         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
3604         (ASM_OUTPUT_TLS_COMMON): Use it.
3605         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
3606
3607         PR target/38118
3608         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
3609         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
3610         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
3611         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
3612         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3613         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
3614
3615 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3616
3617         * config/i386/i386.c (override_options): Don't accept
3618         -mtls-dialect=sun any longer.
3619         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
3620         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
3621         (*tls_local_dynamic_base_32_sun): Likewise.
3622         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3623
3624 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3625
3626         PR debug/43508
3627         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
3628         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
3629
3630         PR debug/43479
3631         * ira.c (adjust_cleared_regs): New function.
3632         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
3633
3634         PR debug/19192
3635         PR debug/43479
3636         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
3637         from gimple_block.
3638         * expr.c (expand_expr_real): Restore previous
3639         curr_insn_source_location and curr_insn_block after
3640         expand_expr_real_1 call.
3641         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
3642         instead of expand_expr_real_1.
3643
3644 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
3645
3646         PR rtl-optimization/43413
3647         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
3648         hard regs too.
3649
3650 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
3651
3652         PR target/43348
3653         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
3654         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
3655
3656 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
3657
3658         * config/i386/i386.c (ix86_target_string): Add -mfma.
3659         Fix a typo in comment.
3660
3661 2010-03-22  Mike Stump  <mikestump@comcast.net>
3662
3663         PR target/23071
3664         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
3665         Don't overly align based upon packed packed fields.
3666
3667 2010-03-22  Jason Merrill  <jason@redhat.com>
3668
3669         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
3670         Use () rather than [], and move before the element type.
3671
3672 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3673
3674         * doc/configfiles.texi (Configuration Files): Removed
3675         fixinc/Makefile*, intl/Makefile.*.
3676         * doc/makefile.texi: Fixed markup. Abstract from version
3677         control system used.
3678         (Makefile): Removed obsolete gcc/java/parse.y example.
3679         * doc/sourcebuild.texi: Likewise.
3680         (Top Level): Added config, gnattools, libdecnumber, libgcc,
3681         libgomp, libssp.  Removed fastjar.
3682         (Miscellaneous Docs): Clarify location.
3683         Added COPYING3, COPYING3.LIB.
3684         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3685
3686 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3687
3688         PR target/38085
3689         * config/i386/i386.c (x86_function_profiler)
3690         [!NO_PROFILE_COUNTERS]: Fix typo.
3691         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
3692         instead of callq.
3693
3694 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
3695             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3696
3697         * doc/sourcebuild.texi (Test Directives): Split into six
3698         subsections, with most of the current text in new subsections
3699         Directives, Selectors, and Final Actions.
3700         (Directives): Split list of test directives into multiple
3701         subsubsections.
3702         (Selectors): Describe use and syntax of selectors.
3703         (Effective-Target Keywords): Describe all existing keywords.
3704         (Add Options): Describe features for dg-add-options.
3705         (Require Support): Describe variants of dg-require-support.
3706         (Final Actions): Describe commands to use in dg-final.
3707
3708 2010-03-22  Michael Matz  <matz@suse.de>
3709
3710         PR middle-end/43475
3711         * recog.c (validate_replace_rtx_group): Replace also in
3712         REG_EQUAL and REG_EQUIV notes.
3713
3714 2010-03-22  Richard Guenther  <rguenther@suse.de>
3715
3716         PR tree-optimization/43390
3717         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
3718         sure vector extracts are type correct.
3719
3720 2010-03-22  Richard Guenther  <rguenther@suse.de>
3721
3722         PR middle-end/40106
3723         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
3724         x * sqrt (x) even when optimizing for size if the target
3725         has native support for sqrt.
3726
3727 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
3728
3729         * varasm.c (make_decl_rtl_for_debug): Also clear
3730         flag_mudflap for the duration of make_decl_rtl call.
3731
3732         PR debug/43443
3733         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
3734         locs from preserved VALUEs.
3735
3736 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3737
3738         PR middle-end/42718
3739         * pa.md (movmemsi): Set align to one if zero.
3740         (movmemdi): Likewise.
3741
3742 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
3743
3744         PR target/42321
3745         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
3746         with their corresponding prologue pushes.
3747
3748 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
3749
3750         PR target/43156
3751         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
3752         at the begining or end.
3753         (spu_expand_epilogue): Likewise.
3754
3755 2010-03-20  Richard Guenther  <rguenther@suse.de>
3756
3757         PR rtl-optimization/43438
3758         * combine.c (make_extraction): Properly zero-/sign-extend an
3759         extraction of the low part of a CONST_INT.  Also handle
3760         CONST_DOUBLE.
3761
3762 2010-03-19  Mike Stump  <mikestump@comcast.net>
3763
3764         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
3765         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
3766         (override_options): Use SUBTARGET32_DEFAULT_CPU.
3767
3768 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
3769
3770         PR c/43211
3771         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
3772         an error.
3773
3774 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
3775
3776         PR rtl-optimization/42258
3777         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
3778         use that may match DEF.
3779
3780         PR target/40697
3781         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
3782         the cost of loading the constant rather than assuming
3783         COSTS_N_INSNS (1).
3784         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
3785         outer code is AND, do the same tests as the andsi3 expander and
3786         return COSTS_N_INSNS (1) if and is cheap.
3787
3788         * optabs.c (avoid_expensive_constant): Fix formatting.
3789
3790 2010-03-19  Michael Matz  <matz@suse.de>
3791
3792         PR c++/43116
3793         * attribs.c (decl_attributes): When rebuilding a function pointer
3794         type use the same qualifiers as the original pointer type.
3795
3796 2010-03-19  Martin Jambor  <mjambor@suse.cz>
3797
3798         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
3799         and is_gimple_ip_invariant_address.
3800
3801 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3802
3803         Revert
3804         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3805
3806         * config/arm/arm.c (arm_override_options): Turn off
3807         flag_dwarf2_cfi_asm for AAPCS variants.
3808
3809 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3810
3811         PR target/43399
3812         * config/arm/arm.c (emit_multi_reg_push): Update comments.
3813         Use PRE_MODIFY instead of PRE_DEC.
3814         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
3815         (vfp_emit_fstmd): Likewise.
3816
3817 2010-03-19  Michael Matz  <matz@suse.de>
3818
3819         PR target/43305
3820         * builtins.c (expand_builtin_interclass_mathfn,
3821         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
3822         if that fails.
3823
3824 2010-03-19  Richard Guenther  <rguenther@suse.de>
3825
3826         PR tree-optimization/43415
3827         * tree-ssa-pre.c (phi_translate): Split out worker to ...
3828         (phi_translate_1): ... this.
3829         (phi_translate): Move all caching here.  Cache all NARY
3830         and REFERENCE translations.
3831
3832 2010-03-19  David S. Miller  <davem@davemloft.net>
3833
3834         With help from Eric Botcazou.
3835         * config/sparc/sparc.c: Include dwarf2out.h.
3836         (emit_pic_helper): Delete.
3837         (pic_helper_symbol_name): Delete.
3838         (pic_helper_emitted_p): Delete.
3839         (pic_helper_needed): New.
3840         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
3841         (get_pc_thunk_name): New.
3842         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
3843         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
3844         Set pic_helper_needed to true.  Don't call emit_pic_helper.
3845         (sparc_expand_prologue): Update load_pic_register call.
3846         (sparc_output_mi_thunk): Likewise.
3847         (sparc_file_end): Emit a hidden comdat symbol for the PIC
3848         thunk if possible.  Output CFI information as needed.
3849
3850 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3851             Jack Howarth <howarth@bromo.med.uc.edu>
3852
3853         PR target/36399
3854         * config/i386/i386.h: Fix ABI on darwin x86-32.
3855
3856 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
3857
3858         * tree.h: Declare make_decl_rtl_for_debug.
3859         * varasm.c (make_decl_rtl_for_debug): New.
3860         * dwarf2out.c (rtl_for_decl_location): Call it.
3861         * cfgexpand.c (expand_debug_expr): Call it.
3862
3863 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3864
3865         PR bootstrap/43399
3866         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
3867         mem_mode.
3868
3869         PR bootstrap/43403
3870         * var-tracking.c (vt_init_cfa_base): Do nothing if
3871         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
3872
3873 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
3874
3875         PR debug/42873
3876         * var-tracking.c (canonicalize_vars_star): New.
3877         (dataflow_post_merge_adjust): Use it.
3878
3879 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3880
3881         PR debug/43058
3882         * var-tracking.c (non_suitable_const): New function.
3883         (add_uses): For DEBUG_INSNs with constants, don't record any
3884         value, instead just the constant value itself.
3885         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
3886         is not VAR_LOC_UNKNOWN_P, set var to the constant.
3887         (emit_notes_in_bb): Likewise.
3888         (emit_note_insn_var_location): For onepart variables if
3889         cur_loc is a VOIDmode constant, use DECL_MODE.
3890
3891 2010-03-18  Martin Jambor  <mjambor@suse.cz>
3892
3893         PR middle-end/42450
3894         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
3895         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
3896         all non-clones.  Moved call redirection...
3897         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
3898         (cgraph_materialize_all_clones): Dispose of all
3899         combined_args_to_skip bitmaps.
3900         (verify_cgraph_node): Do not check for edges pointing to wrong
3901         nodes in inline clones.
3902         * tree-inline.c (copy_bb): Call
3903         cgraph_redirect_edge_call_stmt_to_callee.
3904         * ipa.c (cgraph_remove_unreachable_nodes): Call
3905         cgraph_node_remove_callees even when there are used clones.
3906
3907 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
3908
3909         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
3910
3911 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
3912
3913         PR target/43383
3914         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
3915         for 32bit.
3916
3917 2010-03-18  Michael Matz  <matz@suse.de>
3918
3919         PR middle-end/43419
3920         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
3921         into sqrt(x) if we need to preserve signed zeros.
3922
3923 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
3924             Eric Botcazou  <ebotcazou@adacore.com>
3925
3926         PR rtl-optimization/43360
3927         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
3928         note if we don't know its invariant status.
3929
3930 2010-03-18  Michael Matz  <matz@suse.de>
3931
3932         PR tree-optimization/43402
3933         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
3934         PHI chains of ssa names registered for update.
3935
3936 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
3937
3938         PR target/42427
3939         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
3940         non-offsettable and pre_modify update addressing.
3941         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
3942         and "2" alternatives "#".
3943         (*movdd_softfloat32): Make all alternatives "#";
3944         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
3945         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
3946         (*movdf_softfloat32): Make all alternatives "#";
3947         (movdi): Use the new DIFD mode iterator to create a common splitter
3948         for movdi, movdf and movdd patterns.
3949
3950 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
3951
3952         * common.opt (dumpdir): Remove redundant tab.
3953
3954 2010-03-17  Martin Jambor  <mjambor@suse.cz>
3955
3956         PR tree-optimization/43347
3957         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
3958         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
3959
3960 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3961
3962         PR rtl-optimization/42216
3963         * regrename.c (create_new_chain): New function, broken out from...
3964         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
3965         appending a use to an empty chain.
3966         (build_def_use): Remove previous changes that convert OP_INOUT to
3967         OP_OUT operands; instead detect the case where an OP_INOUT operand
3968         uses a previously untracked register and create an empty chain for it.
3969
3970 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3971
3972         * doc/extend.texi (Function Attributes): Rewrite unfinished
3973         sentence in ms_abi documentation.
3974
3975 2010-03-17  Alan Modra  <amodra@gmail.com>
3976
3977         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
3978         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
3979         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
3980         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
3981
3982 2010-03-16  Richard Henderson  <rth@redhat.com>
3983
3984         PR middle-end/43365
3985         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
3986         (lower_try_finally): Save and restore eh_seq around the expansion
3987         of the try-finally.
3988
3989 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
3990
3991         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
3992         statements before splitting block.
3993
3994 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3995
3996         * doc/sourcebuild.texi (Testsuites): Fix markup.
3997         Use pathnames relative to gcc/testsuite.
3998         (Test Directives): Move description of how timeout is determined.
3999         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
4000         (C Tests): Correct gcc.misc-tests directory.
4001         Framework tests now live in gcc.test-framework.
4002
4003 2010-03-16  Richard Guenther  <rguenther@suse.de>
4004
4005         PR middle-end/43379
4006         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
4007         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
4008
4009 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
4010             Alexandre Oliva  <aoliva@redhat.com>
4011
4012         PR tree-optimization/42917
4013         * lambda-code.c (remove_iv): Skip debug statements.
4014         (lambda_loopnest_to_gcc_loopnest): Likewise.
4015         (not_interesting_stmt): Debug statements are not interesting.
4016
4017 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
4018
4019         PR debug/43051
4020         PR debug/43092
4021         * cselib.c (cselib_preserve_constants,
4022         cfa_base_preserved_val): New static variables.
4023         (preserve_only_constants): New function.
4024         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
4025         clear its REG_VALUES.  If cselib_preserve_constants, don't
4026         empty the whole hash table, but preserve there VALUEs with constants,
4027         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
4028         (cselib_preserve_cfa_base_value): New function.
4029         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
4030         (cselib_init): Change argument to int bitfield.  Set
4031         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
4032         is in it.
4033         (cselib_finish): Clear cselib_preserve_constants and
4034         cfa_base_preserved_val.
4035         * cselib.h (enum cselib_record_what): New enum.
4036         (cselib_init): Change argument to int.
4037         (cselib_preserve_cfa_base_value): New prototype.
4038         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
4039         * dse.c (dse_step1): Likewise.
4040         * cfgcleanup.c (thread_jump): Likewise.
4041         * sched-deps.c (sched_analyze): Likewise.
4042         * gcse.c (local_cprop_pass): Likewise.
4043         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
4044         If FN is non-NULL, call the callback always and whenever it returns
4045         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
4046         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
4047         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
4048         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
4049         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
4050         * var-tracking.c: Include recog.h.
4051         (bb_stack_adjust_offset): Remove.
4052         (vt_stack_adjustments): Don't call it, instead just gather the
4053         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
4054         (adjust_stack_reference): Remove.
4055         (compute_cfa_pointer): New function.
4056         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
4057         (struct adjust_mem_data): New type.
4058         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
4059         functions.
4060         (get_address_mode): New function.
4061         (replace_expr_with_values): Use it.
4062         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
4063         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
4064         (adjust_sets): Remove.
4065         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
4066         Use get_address_mode.
4067         (get_adjusted_src): Remove.
4068         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
4069         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
4070         (add_with_sets): Don't call adjust_sets.
4071         (fp_setter, vt_init_cfa_base): New functions.
4072         (vt_initialize): Change return type to bool.  Move most of pool etc.
4073         initialization to the beginning of the function from end.  Pass
4074         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
4075         If !frame_pointer_needed, call vt_stack_adjustment before mos
4076         vector is filled, call vt_init_cfa_base if argp/framep has been
4077         eliminated to sp.  If frame_pointer_needed and argp/framep has
4078         been eliminated to hard frame pointer, set
4079         hard_frame_pointer_adjustment and call vt_init_cfa_base after
4080         encountering fp setter in the prologue.  For MO_ADJUST, call
4081         log_op_type before pusing the op into mos vector, not afterwards.
4082         Call adjust_insn before cselib_process_insn/add_with_sets,
4083         call cancel_changes (0) afterwards.
4084         (variable_tracking_main_1): Adjust for vt_initialize calling
4085         vt_stack_adjustments and returning whether it succeeded or not.
4086
4087 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
4088
4089         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
4090         debug statements.
4091
4092 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
4093
4094         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
4095         has been set.
4096         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
4097         drap_reg has not been set.
4098
4099 2010-03-15  Michael Matz  <matz@suse.de>
4100
4101         PR middle-end/43300
4102         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
4103         use it to expand block copies.
4104         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4105         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
4106         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
4107
4108 2010-03-15  Richard Guenther  <rguenther@suse.de>
4109
4110         PR tree-optimization/43367
4111         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
4112         elimination check.
4113
4114 2010-03-15  Richard Guenther  <rguenther@suse.de>
4115
4116         PR tree-optimization/43317
4117         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
4118
4119 2010-03-15  Martin Jambor  <mjambor@suse.cz>
4120
4121         PR tree-optimization/43141
4122         * tree-sra.c (create_abstract_origin): New function.
4123         (modify_function): Call create_abstract_origin.
4124
4125 2010-03-15  Chris Demetriou  <cgd@google.com>
4126
4127         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
4128         wasn't copied.
4129
4130 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4131
4132         PR middle-end/43354
4133         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
4134         call insert_out_of_ssa_copy for default definitions.
4135
4136 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4137
4138         * graphite-clast-to-gimple.c (my_long_long): Defined.
4139         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
4140         * graphite-sese-to-poly.c (my_long_long): Defined.
4141         (scop_ivs_can_be_represented): Use it.
4142
4143 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4144
4145         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
4146         graphite-max-bbs-per-function, and loop-block-tile-size.
4147         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
4148         with "maximum".
4149         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
4150
4151 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4152
4153         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
4154         forward declaration.
4155         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
4156         (add_upper_bounds_from_estimated_nit): New.
4157         (build_loop_iteration_domains): Use it.
4158
4159 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4160
4161         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
4162
4163 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4164
4165         PR middle-end/43306
4166         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
4167         should be an INTEGER_CST.  Also handle CASE_CONVERT.
4168
4169 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4170
4171         * graphite.c (graphite_initialize): To bound the number of bbs per
4172         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4173         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
4174         * doc/invoke.texi: Document it.
4175
4176 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4177
4178         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
4179         * graphite-sese-to-poly.h (build_poly_scop): Same.
4180
4181 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4182
4183         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
4184         the number of parameters in the scop.  Use as an upper bound
4185         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
4186         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
4187         * doc/invoke.texi: Document it.
4188
4189 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
4190
4191         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
4192         * doc/c-tree.texi: Remove.
4193         * doc/generic.texi: Merge c-tree.texi here.
4194         * doc/gccint.texi (Trees): Remove menu entry.
4195         (c-tree.texi): Remove @include.
4196         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
4197         * doc/languages.texi (Reading RTL): Ditto.
4198
4199 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
4200
4201         PR target/42869
4202         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
4203
4204 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4205
4206         PR middle-end/42431
4207         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
4208         code added to work around reload clobbering CONST insns.
4209
4210 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
4211
4212         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
4213         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
4214         (cselib_preserve_only_values): Remove retain argument, don't
4215         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
4216         * cselib.h (cselib_preserve_only_values): Remove retain argument.
4217         * var-tracking.c (micro_operation): Move insn field before union.
4218         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
4219         (struct variable_tracking_info_def): Remove n_mos field, change
4220         mos into a vector of micro_operations.
4221         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
4222         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
4223         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
4224         changing into a vector.
4225         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
4226         come before all other uops generated by add_stores.
4227         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
4228         argument removal.
4229         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
4230         a vector.  Run just one pass over the bbs instead of separate counting
4231         and computation phase.
4232         (vt_finalize): Free VTI (bb)->mos vector instead of array.
4233
4234         PR debug/43329
4235         * tree-inline.c (remap_decls): Put old_var rather than origin_var
4236         into *nonlocalized_list vector.
4237         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
4238         even if origin is non-NULL.
4239         (gen_variable_die): Likewise.
4240         (process_scope_var): Don't change origin.
4241         (gen_decl_die): Likewise.
4242         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
4243         before adding new edges instead of after it, fix moving over
4244         debug stmts.
4245
4246 2010-03-11  David S. Miller  <davem@davemloft.net>
4247
4248         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
4249         of four.
4250         * configure: Rebuild.
4251
4252 2010-03-11  Martin Jambor  <mjambor@suse.cz>
4253
4254         PR tree-optimization/43257
4255         * tree.c (assign_assembler_name_if_neeeded): New function.
4256         (free_lang_data_in_cgraph): Assembler name assignment moved to the
4257         above new function.
4258         * tree.h (assign_assembler_name_if_neeeded): Declare.
4259         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
4260         the function if needed.
4261
4262 2010-03-11  Chris Demetriou  <cgd@google.com>
4263
4264         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
4265         include/stdint-gcc.h, and include/stdint.h world-readable.
4266
4267 2010-03-11  Richard Guenther  <rguenther@suse.de>
4268
4269         PR tree-optimization/43255
4270         * tree-vrp.c (process_assert_insertions_for): Do not insert
4271         asserts for trivial conditions.
4272
4273 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4274
4275         PR tree-optimization/43280
4276         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
4277         generation.  Move calculation of size out of the if branch.
4278         (find_bswap): Modify compare number generation.
4279
4280 2010-03-11  Richard Guenther  <rguenther@suse.de>
4281
4282         PR lto/43200
4283         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
4284         (input_gimple_stmt): Fixup handled component types during
4285         operand read.  Also fix up decls in ADDR_EXPRs.
4286
4287 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
4288
4289         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
4290         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
4291
4292 2010-03-10  Jan Hubicka  <jh@suse.cz>
4293
4294         PR c/43288
4295         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
4296         * varasm.c (get_variable_section): Don't do that here...
4297         (make_decl_rtl): ... and here.
4298         (do_assemble_alias): Produce decl RTL.
4299         (assemble_alias): Likewise.
4300
4301 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
4302
4303         PR debug/43290
4304         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
4305         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
4306         of fde->vdrap_reg.
4307         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
4308         (based_loc_descr): Only express drap or vdrap regno based expressions
4309         using DW_OP_fbreg when not optimizing.
4310         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
4311         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
4312         REG_CFA_SET_VDRAP note.
4313
4314 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
4315
4316         PR tree-optimization/43236
4317         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
4318         error in calculation of base address in reverse iteration case.
4319         (generate_builtin): Take number of latch executions if the statement
4320         is in the latch.
4321
4322 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
4323
4324         PR middle-end/42859
4325         * tree-eh.c: Include pointer-set.h.
4326         (lower_eh_dispatch): Filter out duplicate case labels and
4327         remove the unneeded edge when the label is unused.  Return
4328         true when some edges are removed.
4329         (execute_lower_eh_dispatch): When any lowering resulted in
4330         removing an edge, also delete unreachable blocks.
4331
4332 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
4333
4334         PR bootstrap/43287
4335         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4336         UNSPEC_MACHOPIC_OFFSET.
4337
4338 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
4339
4340         PR target/43294
4341         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
4342         (m68k_delegitimize_address): New function.
4343
4344 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
4345
4346         PR debug/43299
4347         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
4348
4349         PR debug/43299
4350         * var-tracking.c (adjust_sets): New function.
4351         (count_with_sets, add_with_sets): Use it.
4352         (get_adjusted_src): New inline function.
4353         (add_stores): Use it.
4354
4355         PR debug/43304
4356         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
4357         call cselib_dummy_expand_value_rtx_cb instead of
4358         cselib_expand_value_rtx_cb.
4359
4360         PR debug/43293
4361         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
4362         * config/i386/i386.c: Include debug.h and dwarf2out.h.
4363         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
4364         and .cfi_endproc around the pic thunks.
4365         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
4366         all queued unwind info register saves are saved before the call.
4367         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
4368         considered as sp-=4 for unwind info and the pop as sp+=4 which
4369         also clobbers dest, but doesn't actually restore it.
4370
4371         PR debug/43290
4372         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
4373         RTX_FRAME_RELATED_P.
4374
4375 2010-03-09  Jie Zhang  <jie@codesourcery.com>
4376
4377         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
4378         whitespaces in output template.
4379
4380 2010-03-09  Jie Zhang  <jie@codesourcery.com>
4381
4382         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
4383         out array boundary.
4384
4385 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
4386
4387         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
4388         builtins.exp in a separate job.
4389
4390 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4391
4392         * graphite-sese-to-poly.c (add_param_constraints): Use
4393         lower_bound_in_type and upper_bound_in_type.
4394
4395 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4396
4397         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
4398         instead of unsigned_type_node.
4399
4400 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4401             Reza Yazdani  <reza.yazdani@amd.com>
4402
4403         PR middle-end/43065
4404         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
4405         on pointer type parameters.
4406
4407 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
4408
4409         PR middle-end/42644
4410         PR middle-end/42130
4411         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
4412         handle conversions from pointer to integers.
4413         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
4414         induction variable, to be able to work with code generated by CLooG.
4415         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
4416         (build_poly_scop): Bail out if we cannot codegen a loop.
4417
4418 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
4419
4420         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
4421         code generation with gloog_error.
4422
4423 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4424
4425         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
4426         Call fold_convert on all the returned values.
4427         (expand_scalar_variables_expr): Pass to
4428         expand_scalar_variables_ssa_name the type of the resulting expression.
4429
4430 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4431
4432         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
4433         ppl_min_for_le_pointset.
4434         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
4435         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
4436
4437 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4438
4439         * graphite-dependences.c (map_into_dep_poly): Removed.
4440         (dependence_polyhedron_1): Use combine_context_id_scat.
4441
4442 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4443
4444         * graphite-poly.h (struct poly_scattering): Add layout documentation.
4445         (struct poly_bb): Same.
4446         (combine_context_id_scat): New.
4447
4448 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4449
4450         PR middle-end/42326
4451         * sese.c (name_defined_in_loop_p): Return false for default
4452         definitions.
4453
4454 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4455
4456         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
4457         and clean up the logic.
4458
4459 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4460
4461         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
4462         early return.
4463
4464 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
4465
4466         * var-tracking.c (remove_cselib_value_chains): Define only for
4467         ENABLE_CHECKING.
4468         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
4469         delete_slot_part, emit_notes_for_differences_1): Don't call
4470         remove_cselib_value_chains here.
4471         (set_slot_part, emit_notes_for_differences_2): Don't call
4472         add_cselib_value_chains here.
4473         (preserved_values): New vector.
4474         (preserve_value): New function.
4475         (add_uses, add_stores, vt_add_function_parameters): Use it
4476         instead of cselib_preserve_value.
4477         (changed_values_stack): New vector.
4478         (check_changed_vars_0): New function.
4479         (check_changed_vars_1, check_changed_vars_2): Use it.
4480         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
4481         changed_values_stack VALUEs.
4482         (vt_emit_notes): For all preserved_values call
4483         add_cselib_value_chains.  If ENABLE_CHECKING call
4484         remove_cselib_value_chains before verifying value_chains is empty.
4485         Initialize and free changed_values_stack.
4486         (vt_initialize): Initialize preserved_values.
4487         (vt_finalize): Free preserved_values.
4488
4489 2010-03-08  Richard Guenther  <rguenther@suse.de>
4490
4491         PR tree-optimization/43269
4492         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
4493         region detection.
4494
4495 2010-03-08  Martin Jambor  <mjambor@suse.cz>
4496
4497         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
4498         (ipa_is_param_called): Removed.
4499         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
4500         (ipa_print_node_params): Do not print the called flag.
4501         (ipa_write_node_info): Do not stream the called flag.
4502         (ipa_read_node_info): Likewise.
4503
4504 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
4505
4506         PR debug/43176
4507         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
4508         * cselib.c (struct expand_value_data): Add dummy field.
4509         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
4510         dummy to false.
4511         (cselib_dummy_expand_value_rtx_cb): New function.
4512         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
4513         any rtl.
4514         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
4515         * var-tracking.c: Include pointer-set.h.
4516         (variable): Change n_var_parts to char from int.  Add
4517         cur_loc_changed and in_changed_variables fields.
4518         (variable_canonicalize): Remove.
4519         (shared_var_p): New inline function.
4520         (unshare_variable): Maintain cur_loc_changed and
4521         in_changed_variables fields.  If var was in changed_variables,
4522         replace it there with new_var.  Just copy cur_loc instead of
4523         resetting it to something else.
4524         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
4525         (dataflow_set_union): Don't call variable_canonicalize.
4526         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
4527         of their DEBUG_EXPR_TREE_DECLs.
4528         (canonicalize_loc_order_check): Verify that cur_loc is NULL
4529         and in_changed_variables and cur_loc_changed is false.
4530         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
4531         and cur_loc_changed.  Don't update cur_loc here.
4532         (variable_merge_over_src): Don't call variable_canonicalize.
4533         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
4534         removing loc that is equal to cur_loc, clear cur_loc,
4535         set cur_loc_changed and ensure variable_was_changed is called.
4536         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
4537         compare pointers in cur_loc check, if it is equal to loc,
4538         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
4539         (variable_different_p): Remove compare_current_location argument,
4540         don't compare cur_loc.
4541         (dataflow_set_different_1): Adjust variable_different_p caller.
4542         (variable_was_changed): If dv had some var in changed_variables
4543         already, reset in_changed_variables flag for it and propagate
4544         cur_loc_changed over to the new variable.  On empty var
4545         always set cur_loc_changed.  Set in_changed_variables on whatever
4546         var is added to changed_variables.
4547         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
4548         Use shared_var_p.  When removing loc that is equal to cur_loc,
4549         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
4550         end, don't set it to something else, just call variable_was_changed.
4551         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
4552         loc being removed, clear cur_loc and set cur_loc_changed.
4553         Set cur_loc_changed if all locations have been removed.
4554         (struct expand_loc_callback_data): New type.
4555         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
4556         allocated.  Always create SUBREGs if simplify_subreg failed.
4557         Prefer to use cur_loc, when that fails and still in
4558         changed_variables (and seen first time) recompute it.  Set
4559         cur_loc_changed of variables which had to change cur_loc and
4560         compute elcd->cur_loc_changed if any of the subexpressions used
4561         had to change cur_loc.
4562         (vt_expand_loc): Adjust to pass arguments in
4563         expand_loc_callback_data structure.
4564         (vt_expand_loc_dummy): New function.
4565         (emitted_notes): New variable.
4566         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
4567         that weren't used for any other decl in current
4568         emit_notes_for_changes call call vt_expand_loc_dummy to update
4569         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
4570         first loc_chain location if NULL before.  Always use just
4571         cur_loc instead of first loc_chain location.  When cur_loc_changed
4572         is false, when not --enable-checking=rtl just don't emit any note.
4573         When rtl checking, compute the note and assert it is the same
4574         as previous note.  Clear cur_loc_changed and in_changed_variables
4575         at the end before removing from changed_variables.
4576         (check_changed_vars_3): New function.
4577         (emit_notes_for_changes): Traverse changed_vars to call
4578         check_changed_vars_3 on each changed var.
4579         (emit_notes_for_differences_1): Clear cur_loc_changed and
4580         in_changed_variables.  Recompute cur_loc of new_var.
4581         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
4582         (vt_emit_notes): Initialize and destroy emitted_notes.
4583
4584 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
4585
4586         PR rtl-optimization/42220
4587         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
4588         Use verify_reg_tracked to determine if we should use OP_OUT rather
4589         than OP_INOUT.
4590         (build_def_use): If we see an in-out operand for a register that we
4591         know nothing about, treat is an output if possible, fail the block if
4592         not.
4593
4594 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
4595
4596         PR debug/42897
4597         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
4598         permanently.
4599
4600 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
4601
4602         PR debug/42897
4603         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
4604         uses of relevant DEFs that are dead outside the loop too.
4605
4606 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
4607
4608         * var-tracking.c (dataflow_set_merge): Swap src and src2.
4609         Reverted:
4610         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
4611         PR debug/41371
4612         * var-tracking.c (values_to_unmark): New variable.
4613         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
4614         values_to_unmark vector.  Moved body to...
4615         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
4616         instead queue it into values_to_unmark vector.
4617         (vt_find_locations): Free values_to_unmark vector.
4618
4619 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
4620
4621         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
4622         (site.exp): Export them when plugins are enabled.
4623
4624 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
4625
4626         PR middle-end/42326
4627         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
4628         that contain scevs.
4629         (chrec_fold_multiply): Same.
4630
4631 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4632
4633         PR c/43248
4634         * c-decl.c (build_compound_literal): Return early if init is
4635         an error_mark_node.
4636
4637 2010-03-04  Martin Jambor  <mjambor@suse.cz>
4638
4639         PR tree-optimization/43164
4640         PR tree-optimization/43191
4641         * tree-sra.c (type_consists_of_records_p): Reject records with
4642         zero-size bit-fields at the end.
4643
4644 2010-03-04  Mike Stump  <mikestump@comcast.net>
4645
4646         * Makefile.in (TAGS): Remove *.y.
4647
4648 2010-03-04  Richard Guenther  <rguenther@suse.de>
4649
4650         PR tree-optimization/40761
4651         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
4652         in reverse order.
4653         (my_rev_post_order_compute): New function.
4654         (init_pre): Call it.
4655
4656 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
4657
4658         PR middle-end/43209
4659         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
4660         decrease the cost of an IV candidate when the cost is infinite.
4661
4662 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4663
4664         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
4665         Use '3DNow!' for the extension of that name, ensure normal space
4666         after the string.
4667         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
4668
4669 2010-03-03  Jeff Law  <law@redhat.com>
4670
4671         * PR middle-end/32693
4672         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
4673         than gen_rtx_SUBREG.
4674         (extract_bit_field_1): Likewise.
4675
4676 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
4677
4678         * doc/sourcebuild.texi (Test directives): Document that arguments
4679         include-opts and exclude-opts are now optional for dg-skip-if,
4680         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
4681
4682 2010-03-03  Jason Merrill  <jason@redhat.com>
4683
4684         PR c++/12909
4685         * cgraph.h (varpool_node): Add extra_name field.
4686         * varpool.c (varpool_extra_name_alias): New.
4687         (varpool_assemble_decl): Emit extra name aliases.
4688         (varpool_mark_needed_node): Look past an extra name alias.
4689         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
4690         * lto-streamer-in.c (lto_input_tree): Read it.
4691         * lto-streamer-out.c (output_unreferenced_globals): Write it.
4692
4693 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
4694
4695         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
4696         (sparc*-*-solaris2*): ...this.
4697
4698 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
4699
4700         PR debug/43229
4701         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
4702         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
4703         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
4704         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
4705
4706         PR debug/43237
4707         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
4708         fallthrough to default handling, just with want_address 0 instead of 2.
4709         For single element lists, add_AT_loc directly, otherwise create an
4710         artificial variable DIE and stick location list to it.
4711
4712         PR debug/43177
4713         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
4714         (VAL_EXPR_HAS_REVERSE): Define.
4715         (reverse_op): New function.
4716         (add_stores): For reversible operations add an extra MO_VAL_USE.
4717
4718 2010-03-02  Jason Merrill  <jason@redhat.com>
4719
4720         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
4721
4722 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
4723
4724         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
4725         (sparc64-*-linux*): Likewise.
4726         (sparc64-*-solaris2*): Include assembler files before linker ones.
4727         (sparc-*-solaris2*): Simplify and reorder to match previous case.
4728         * config/sparc/gas.h: Delete.
4729         * config/sparc/sol2-64.h: Add copyright notice.
4730         * config/sparc/sol2-gas-bi.h: Likewise.
4731         * config/sparc/sol2-gld.h: Likewise.
4732         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
4733         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
4734         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
4735         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
4736         (sparc_elf_asm_named_section): Rename into...
4737         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
4738
4739 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
4740
4741         * config/alpha/alpha.c (override_options): Fix -mtune error message.
4742
4743 2010-03-02  Jeff Law  <law@redhat.com>
4744
4745         PR middle-end/42431
4746         * reload1.c (rtx_p, substitute_stack): Declare.
4747         (substitute): Record addresses of changed rtxs.
4748         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
4749         Restore the original rtx when complete.
4750         (reload): Free subsitute_stack when complete.
4751
4752 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
4753
4754         * doc/gccint.texi (menu): Add Testsuites as a chapter.
4755         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
4756         new chapter.
4757         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
4758         LTO Testing, gcov Testing, profopt Testing, compat Testing,
4759         Torture Tests): Change from subsection to section.
4760
4761 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
4762             Steven Bosscher  <steven@gcc.gnu.org>
4763
4764         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
4765         instead of bb.
4766
4767 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
4768
4769         PR middle-end/42640
4770         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
4771         the assignment from the new induction variable to the assignment
4772         of the value from the original loop PHI function.
4773
4774 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
4775             Daniel Jacobowitz  <dan@codesourcery.com>
4776
4777         * doc/sourcebuild.texi (Test directives): Clarify options to
4778         dg-skip-if.
4779
4780 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4781
4782         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
4783         Disable cfi directives unless GCC and gas agree on using read-only
4784         .eh_frame sections for 64-bit.
4785         * configure: Regenerate.
4786
4787 2010-03-01  Richard Guenther  <rguenther@suse.de>
4788
4789         PR tree-optimization/43220
4790         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
4791         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
4792
4793 2010-03-01  Richard Guenther  <rguenther@suse.de>
4794             Martin Jambor  <mjambor@suse.cz>
4795
4796         PR middle-end/41250
4797         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
4798         gimplified parameters.
4799
4800 2010-03-01  Christian Bruel  <christian.bruel@st.com>
4801
4802         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
4803
4804 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
4805
4806         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
4807
4808 2010-03-01  Richard Guenther  <rguenther@suse.de>
4809
4810         PR middle-end/43213
4811         * expr.c (expand_assignment): Use the alias-oracle to tell
4812         if the rhs aliases the result decl.
4813
4814 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4815
4816         PR pch/14940
4817         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
4818         to sol_gt_pch_get_address.
4819         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
4820         64-bit, SPARC and x86.
4821         (sol_gt_pch_get_address): New function.
4822
4823 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
4824
4825         * toplev.h (inform_n, error_n): Declare.
4826         * diagnostic.c (inform_n, error_n): New function.
4827
4828 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
4829
4830         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
4831         has no rtl yet when processing local_decls, queue it and recheck
4832         if deferred stack allocation hasn't assigned it rtl.
4833
4834 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4835
4836         * config/sh/sh.c (unspec_bbr_uid): New.
4837         (gen_block_redirect): Use it instead of INSN_UID.
4838         (gen_far_branch): Likewise.
4839
4840 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4841
4842         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
4843         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
4844
4845 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4846
4847         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
4848         (Warning Options): -Wno-conversion-null is valid for
4849         Objective-C++ as well.
4850         * doc/tm.texi (Named Address Spaces): Likewise.
4851         * doc/plugins.texi (Plugins): Replace TABs with spaces.
4852         * doc/tree-ssa.texi (Tree SSA): Likewise.
4853
4854 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4855
4856         PR bootstrap/43202
4857         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
4858         by default.  Don't set the default arch for
4859         i[34567]86-*-darwin*|x86_64-*-darwin*.
4860
4861 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4862
4863         PR bootstrap/43202
4864         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
4865         default.  Set the default 32bit/64bit archs with $with_arch
4866         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
4867
4868 2010-02-27  Richard Guenther  <rguenther@suse.de>
4869
4870         PR tree-optimization/43186
4871         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
4872         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
4873         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
4874         unroller iterations.
4875
4876 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4877
4878         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
4879         required and i[34567]86-*-* targets don't support 64bit ISA.
4880
4881 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
4882
4883         PR ada/43096
4884         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
4885         the same alias set.
4886
4887 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
4888
4889         * config.gcc: Set the default arch at least to Prescott for
4890         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
4891         if SSE math is enabled.
4892
4893 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4894
4895         * diagnostic.c (diagnostic_initialize): Update.
4896         (diagnostic_report_diagnostic): Test inhibit_notes_p for
4897         informative notes.
4898         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
4899         (diagnostic_inhibit_notes): New.
4900         * toplev.c (process_options): inhibit notes with -fcompare-debug.
4901
4902 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4903
4904         PR c/20631
4905         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
4906         * doc/standards.texi: Likewise.
4907         * doc/extend.texi: Likewise.
4908         * doc/trouble.texi: Likewise.
4909         * doc/cppopts.texi: Likewise.
4910         * doc/install.texi: Likewise.
4911         * c.opt (std=c90,std=gnu90): New options.
4912         * c-opts.c (c_common_handle_option): Handle them.
4913
4914 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4915
4916         PR c/24577
4917         * c-decl.c (undeclared_variable): Use an informative note.
4918
4919 2010-02-26  Richard Guenther  <rguenther@suse.de>
4920
4921         PR tree-optimization/43186
4922         * gimple.h (gimple_fold): Remove.
4923         * gimple.c (gimple_fold): Remove.  Inline into single user ...
4924         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
4925         Try harder for conditions.
4926
4927 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
4928
4929         PR debug/43190
4930         * function.c (used_types_insert): Don't skip through named pointer
4931         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
4932         and it is different from the main variant's type.
4933
4934 2010-02-26  Nick Clifton  <nickc@redhat.com>
4935
4936         * config/rx/rx.md (sminsi3): Remove bogus alternative.
4937
4938 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
4939
4940         * config.gcc: Support --with-fpmath=sse for x86.
4941
4942         * config/i386/ssemath.h: New.
4943
4944         * doc/install.texi (--with-fpmath=sse): Documented.
4945
4946 2010-02-26  Richard Guenther  <rguenther@suse.de>
4947
4948         PR tree-optimization/43188
4949         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
4950         vector types of over-aligned element type.
4951
4952 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
4953
4954         PR target/43175
4955         * config/i386/i386.c (expand_vec_perm_blend): Use correct
4956         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
4957
4958 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
4959
4960         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
4961
4962 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
4963
4964         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
4965         * var-tracking.c: Include diagnostic.h.
4966         (debug_dv): New function.
4967         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
4968
4969         PR debug/43160
4970         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
4971         (add_value_chain, add_value_chains, remove_value_chain,
4972         remove_value_chains): Handle DEBUG_EXPRs.
4973         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
4974
4975         PR debug/43161
4976         * regcprop.c (struct queued_debug_insn_change): New type.
4977         (struct value_data_entry): Add debug_insn_changes field.
4978         (struct value_data): Add n_debug_insn_changes field.
4979         (debug_insn_changes_pool): New variable.
4980         (free_debug_insn_changes, apply_debug_insn_changes,
4981         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
4982         (kill_value_one_regno): Call free_debug_insn_changes if needed.
4983         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
4984         fields.
4985         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
4986         changes for them.
4987         (copyprop_hardreg_forward_1): Don't call apply_change_group for
4988         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
4989         changes, call cprop_find_used_regs via note_stores.
4990         (copyprop_hardreg_forward): When copying vd from predecessor
4991         which has any queued DEBUG_INSN changes, make sure the pointers are
4992         cleared.  At the end call df_analyze and then if there are any
4993         DEBUG_INSN changes queued at the end of some basic block for still
4994         live registers, apply them.
4995         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
4996
4997 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
4998
4999         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
5000         (arm*-*-*): Ditto.
5001
5002 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
5003
5004         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
5005         targets.  Set the default with_cpu/with_arch from arch/cpu.
5006         Allow x86-64 and native for with_cpu/with_arch.
5007
5008 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
5009
5010         * ebitmap.c: Change calls to verify_popcount with calls to
5011         sbitmap_verify_popcount.
5012         (ebitmap_clear_bit): Fixed map->cacheindex test and
5013         map>cache update when bit clearing results in an empty
5014         element.
5015
5016 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
5017
5018         PR target/43154
5019         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
5020         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
5021         and support both V2DF and V2DI modes.
5022         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
5023         support both V2DF and V2DI modes.
5024         (general): Delete trailing whitespace from a few patterns.
5025
5026         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5027         V2DF/V2DI interleave high/low builtins.
5028
5029         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
5030         new VSX builtins.
5031
5032         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
5033         interleave high/low functions.
5034
5035 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
5036
5037         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
5038         #pragma extern_prefix.
5039
5040 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
5041
5042         PR debug/43166
5043         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
5044         BLKmode, assert op0 is a MEM and just adjust its mode.
5045
5046         PR debug/43165
5047         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
5048         if bitpos isn't multiple of mode's bitsize.
5049
5050 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5051
5052         * c.opt (-ftemplate-depth=): New.
5053         (-ftemplate-depth-): Deprecate.
5054         * optc-gen.awk: Handle -ftemplate-depth=.
5055         * opth-gen.awk: Likewise.
5056         * c-opts.c (c_common_handle_option): Likewise.
5057         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
5058
5059 2010-02-24  Jason Merrill  <jason@redhat.com>
5060
5061         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
5062
5063 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5064
5065         * cfg.c (alloc_aux_for_block): Remove inline.
5066         (alloc_aux_for_edge): Likewise.
5067
5068 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5069
5070         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
5071
5072 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5073
5074         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
5075         * config/i386/sol2-gas.h: New file.
5076         * config.gcc (i[34567]86-*-solaris2*): Use it.
5077
5078 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5079
5080         PR c/43128
5081         * c-typeck.c (ep_convert_and_check): New.
5082         (build_conditional_expr): Use it.
5083         (build_binary_op): Likewise.
5084
5085 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
5086
5087         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
5088
5089         PR debug/43150
5090         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
5091         bounds even for -O+.
5092         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
5093         expr needs to have DECL_NAME set.
5094
5095 2010-02-24  Nick Clifton  <nickc@redhat.com>
5096
5097         * config/mep/mep.c: Include gimple.h.
5098         (mep_function_uses_sp): Delete unused function.
5099         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
5100         parameters.  Use unsigned integers to count args.  Return a
5101         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
5102
5103 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
5104
5105         PR target/43107
5106         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
5107         greater or equal to nelt instead of 2 * nelt.
5108         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
5109         with nelt - 1.
5110
5111 2010-02-23  Jason Merrill  <jason@redhat.com>
5112
5113         PR debug/42800
5114         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
5115         in cfun->local_decls even if they have register types.
5116
5117         PR c++/42837
5118         * stor-layout.c (place_field): Don't warn about unnecessary
5119         DECL_PACKED if the type is packed.
5120
5121 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
5122
5123         PR target/43139
5124         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
5125         GOTOFF relocs, even when the base reg isn't pic pointer.
5126
5127 2010-02-23  Michael Matz  <matz@suse.de>
5128
5129         PR debug/43077
5130         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
5131         (expand_gimple_basic_block): Generate and use debug temps if there
5132         are debug uses left after the last real use of TERed ssa names.
5133         Unlink debug immediate uses when they are expanded.
5134
5135 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5136
5137         PR 43123
5138         * config/i386/i386.c (override_options): Reorganise to provide
5139         better error messages.
5140
5141 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5142
5143         PR middle-end/43083
5144         * graphite-scop-detection.c (create_single_exit_edge): Move
5145         the call to find_single_exit_edge to....
5146         (create_sese_edges): ...here.  Don't handle multiple edges
5147         exiting the function.
5148         (build_graphite_scops): Don't handle multiple edges
5149         exiting the function.
5150
5151 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5152
5153         PR middle-end/43097
5154         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
5155         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
5156
5157 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5158
5159         PR middle-end/43026
5160         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
5161
5162 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5163
5164         PR c++/43126
5165         * c-typeck.c (convert_arguments): Print declaration location.
5166         * c-common.c (validate_nargs): Rename as
5167         builtin_function_validate_nargs.
5168         (check_builtin_function_arguments): Update.
5169
5170 2010-02-22  Richard Guenther  <rguenther@suse.de>
5171
5172         PR lto/43045
5173         * tree-inline.c (declare_return_variable): Use the type of
5174         the call stmt lhs if available.
5175
5176 2010-02-22  Duncan Sands  <baldrick@free.fr>
5177
5178         * passes.c (register_pass): Always consider all pass lists when
5179         ref_pass_instance_number is zero.
5180
5181 2010-02-22  Richard Guenther  <rguenther@suse.de>
5182
5183         PR tree-optimization/42749
5184         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
5185         parameter.  Do arithmetic in the original type.
5186         (update_accumulator_with_ops): Likewise.
5187         (adjust_accumulator_values): Adjust.
5188
5189 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5190
5191         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
5192         (QI to BLKmode splitter): New splitter.
5193
5194 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
5195
5196         * config/i386/i386.c (initial_ix86_tune_features): Turn on
5197         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
5198
5199 2010-02-22  Richard Guenther  <rguenther@suse.de>
5200
5201         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
5202
5203 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
5204
5205         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
5206         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
5207         ($(T)crti.o, $(T)crtn.o): Remove rules.
5208
5209 2010-02-21  Tobias Burnus  <burnus@net-b.de>
5210
5211         PR fortran/35259
5212         * doc/invoke.texi (-fassociative-math): Document that this
5213         option is automatically enabled for Fortran.
5214
5215 2010-02-20  David S. Miller  <davem@davemloft.net>
5216
5217         * configure.ac: Test if linker and assembler properly support
5218         GOTDATA_OP relocations.
5219         * configure: Rebuild.
5220         * config.in: Likewise.
5221         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
5222         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
5223         (movsi_high_pic): Likewise.
5224         (movdi_lo_sum_pic): Likewise.
5225         (movdi_high_pic): Likewise.
5226         (movsi_pic_gotdata_op): New pattern.
5227         (movdi_pic_gotdata_op): Likewise.
5228         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
5229         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
5230
5231 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
5232
5233         PR target/43067
5234         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
5235         attribute to ssemul.
5236         (xop_mulv2div2di3_high): Ditto.
5237
5238 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5239
5240         PR c++/35669
5241         * c.opt (Wconversion-null): New option.
5242         * doc/invoke.texi (Wconversion-null): Document.
5243
5244 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5245
5246         * common.opt (Wlarger-than-): Add Undocumented.
5247
5248 2010-02-19  Mike Stump  <mikestump@comcast.net>
5249
5250         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
5251
5252 2010-02-19  Jason Merrill  <jason@redhat.com>
5253
5254         PR target/40332
5255         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
5256         * configure: Likewise.
5257
5258 2010-02-20  Alan Modra  <amodra@gmail.com>
5259
5260         PR middle-end/42344
5261         * cgraph.h (cgraph_make_decl_local): Declare.
5262         * cgraph.c (cgraph_make_decl_local): New function.
5263         (cgraph_make_node_local): Use it.
5264         * cgraphunit.c (cgraph_function_versioning): Likewise.
5265         * ipa.c (function_and_variable_visibility): Likewise.
5266
5267 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5268
5269         PR bootstrap/43121
5270         * except.c (sjlj_emit_function_enter): Don't call
5271         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
5272         directly.
5273         * rtl.h (add_reg_br_prob_note): Remove prototype.
5274
5275 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5276
5277         PR 41779
5278         * c-common.c (conversion_warning): Remove widening conversions
5279         before checking the conversion of integers to reals.
5280
5281 2010-02-19  Mike Stump  <mikestump@comcast.net>
5282
5283         PR middle-end/43125
5284         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
5285
5286         PR objc/43061
5287         * cgraphunit.c (process_function_and_variable_attributes): Check
5288         DECL_PRESERVE_P instead of looking up attribute "used".
5289         * ipa-pure-const.c (check_decl): Likewise.
5290         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
5291         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
5292         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
5293         instead of attribute "used".
5294         * config/sol2-c.c (solaris_pragma_init): Likewise.
5295         (solaris_pragma_fini): Likewise.
5296
5297 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5298
5299         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
5300         Use XCNEW instead of xcalloc.
5301         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
5302         XNEW instead of xmalloc.
5303         (get_fields): Use XNEWVEC instead of xmalloc.
5304
5305         PR debug/43084
5306         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
5307         populate vars array.
5308         (create_new_general_access): For debug stmts just reset value.
5309         (get_stmt_accesses): For accesses within debug stmts just record them
5310         using add_access_to_acc_sites instead of preventing the peeling or
5311         counting them as accesses.
5312
5313         PR middle-end/42233
5314         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
5315
5316 2010-02-19  Richard Guenther  <rguenther@suse.de>
5317
5318         PR tree-optimization/42916
5319         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
5320         instructions.
5321
5322 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
5323
5324         * configure.ac: Replace all uses of changequote in macro arguments
5325         with proper quoting.
5326
5327 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5328
5329         PR middle-end/42233
5330         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
5331
5332 2010-02-19  Richard Guenther  <rguenther@suse.de>
5333
5334         PR tree-optimization/42944
5335         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
5336         test for aliasing with errno.
5337
5338 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5339
5340         PR middle-end/42233
5341         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
5342         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
5343         * dojump.c: Include output.h.
5344         (inv): New inline function.
5345         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
5346         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
5347         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
5348         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
5349         argument, pass it down to other calls.
5350         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
5351         add REG_BR_PROB note to the conditional jump.
5352         * cfgexpand.c (add_reg_br_prob_note): Removed.
5353         (expand_gimple_cond): Don't call it, add the probability
5354         as last argument to jumpif_1/jumpifnot_1.
5355         * Makefile.in (dojump.o): Depend on output.h.
5356         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
5357         callers.
5358         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
5359         * stmt.c (do_jump_if_equal): Likewise.
5360         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
5361         * loop-unswitch.c (compare_and_jump_seq): Likewise.
5362         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
5363         Likewise.
5364         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
5365         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
5366         jumpifnot_1 callers.
5367         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
5368         callers.
5369         (store_expr): Adjust jumpifnot caller.
5370         (store_constructor): Adjust jumpif caller.
5371
5372         PR middle-end/42233
5373         * gimplify.c (gimple_boolify): For __builtin_expect call
5374         gimple_boolify also on its first argument.
5375
5376 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
5377
5378         * configure.ac (gnu-unique-object): Wrap regexps using [] in
5379         changequote block.
5380         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
5381         * configure: Regenerated.
5382
5383 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5384
5385         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
5386         lang_hooks.types_compatible_p instead of comptypes.
5387
5388 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
5389
5390         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
5391         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
5392         if __prefer_thumb__ is defined.
5393
5394 2010-02-18  Martin Jambor  <mjambor@suse.cz>
5395
5396         PR tree-optimization/43066
5397         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
5398         array with zero-sized element type.
5399
5400 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
5401
5402         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
5403         rtx, allocate struct var_loc_node here and return it to the
5404         caller, and only if it is actually needed.
5405         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
5406         move it earlier and return immediately if it returns NULL.
5407
5408 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
5409
5410         * config/sparc/gas.h: New file.  Restore
5411         TARGET_ASM_NAMED_SECTION to its ELF default.
5412         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
5413         check !HAVE_GNU_AS.
5414         * config/sparc/sparc.c (sparc_elf_asm_named_section):
5415         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
5416         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
5417         after sparc/sysv4.h.
5418
5419 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
5420
5421         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
5422
5423 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
5424
5425         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
5426         patterns from predicated pattern.
5427
5428 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
5429
5430         PR target/43103
5431         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
5432         for insn mnemonic suffix.
5433
5434 2010-02-17  Richard Guenther  <rguenther@suse.de>
5435
5436         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
5437         to loop PHI nodes.
5438
5439 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
5440
5441         PR debug/42918
5442         * caller-save.c (save_call_clobbered_regs): If BB ends with
5443         a DEBUG_INSN, move any notes in between last real insn and the last
5444         DEBUG_INSN after the last DEBUG_INSN.
5445
5446 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
5447
5448         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
5449         Fix return type.  Fix argument type.  Explain meaning of return value.
5450
5451 2010-02-16  Richard Guenther  <rguenther@suse.de>
5452
5453         PR tree-optimization/41043
5454         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
5455         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
5456         statements ...
5457         (vrp_visit_phi_node): ... but only for loop PHI nodes.
5458
5459 2010-02-16  Ira Rosen  <irar@il.ibm.com>
5460
5461         PR tree-optimization/43074
5462         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
5463         * tree-vect-loop.c (vect_analyze_loop_operations): Add
5464         vectorizable cycles in hybrid SLP check.
5465         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
5466
5467 2010-02-16  Richard Guenther  <rguenther@suse.de>
5468
5469         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
5470         (true_dependence): If memrefs_conflict_p computes must-alias
5471         trust it.  Move TBAA check after offset-based disambiguation.
5472         (canon_true_dependence): Likewise.
5473
5474 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
5475
5476         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
5477         * doc/invoke.texi: Document it.
5478         * var-tracking.c: Include toplev.h and params.h.
5479         (vt_find_locations): Return bool indicating success.  Compute
5480         hash sizes unconditionally.  Check new parameter, report.
5481         (variable_tracking_main_1): Check vt_find_locations results and
5482         retry.  Renamed from...
5483         (variable_tracking_main): ... this.  New wrapper to preserve
5484         flag_var_tracking_assignments.
5485         * Makefile.in (var-tracking.o): Adjust dependencies.
5486
5487 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
5488             Jakub Jelinek <jakub@redhat.com>
5489
5490         PR target/42854
5491         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
5492         if weak_import attribute is present.
5493         * config/darwin.c (machopic_select_section): Likewise.
5494
5495 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
5496
5497         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
5498         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
5499         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
5500         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
5501
5502         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
5503         types.
5504
5505         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
5506         Fix argument types.
5507
5508         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
5509         Rewrite text to refer to the names.
5510
5511 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
5512
5513         * config/i386/i386-builtin-types.def
5514         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
5515         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
5516         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
5517         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
5518         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
5519         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
5520         IX86_BUILTIN_VPERMIL2PS256.
5521         (MULTI_ARG_4_DF2_DI_I): Defined.
5522         (MULTI_ARG_4_DF2_DI_I1): Defined.
5523         (MULTI_ARG_4_SF2_SI_I): Defined.
5524         (MULTI_ARG_4_SF2_SI_I1): Defined.
5525         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
5526         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
5527         __builtin_ia32_vpermil2ps256.
5528         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
5529         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
5530         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
5531         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
5532         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
5533         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
5534         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
5535         CODE_FOR_xop_vpermil2v8sf3.
5536         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
5537         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
5538         * config/i386/xopintrin.h (_mm_permute2_pd): New.
5539         (_mm256_permute2_pd): New.
5540         (_mm_permute2_ps): New.
5541         (_mm256_permute2_ps): New.
5542
5543 2010-02-15  Nick Clifton  <nickc@redhat.com>
5544
5545         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
5546         boolean parameters.  Use emit_jump_insn when emitting a pop
5547         instruction containing a return insn.
5548         (push): Use 'true' rather than '1' as second parameter to F.
5549         (h8300_expand_prologue): Likewise.
5550         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
5551         (h8300_expand_epilogue): Likewise.
5552
5553 2010-02-15  Richard Guenther  <rguenther@suse.de>
5554
5555         PR middle-end/43068
5556         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
5557         if that is zero.
5558
5559 2010-02-15  Nick Clifton  <nickc@redhat.com>
5560
5561         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
5562         delta.
5563
5564 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
5565
5566         * intl.c (fake_ngettext): New function.
5567         * intl.h (fake_ngettext): Declare.
5568         (ngettext): Define macro.
5569         * collect2.c (notice_translated): New function.
5570         (main): Use notice_translated and ngettext.
5571         * collect2.h (notice_translated): Declare.
5572
5573 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
5574
5575         * reorg.c (delete_computation): Comment fixes.
5576         * caller-save.c (setup_save_areas): Idem.
5577         * sel-sched-dump.c (dump_lv_set): Idem.
5578         * rtl.def: Idem.
5579
5580 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5581
5582         * config/s390/s390.c (s390_sched_init): New function.
5583         (TARGET_SCHED_INIT): Target hook defined.
5584
5585 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
5586             Jack Howarth  <howarth@bromo.med.uc.edu>
5587             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
5588
5589         PR target/42982
5590         Partial revert of unintended change in fix for PR41605.
5591         * config/darwin.h: Fix typo.
5592         * config/darwin9.h: Same.
5593
5594 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
5595
5596         * c-pch.c (pch_init): Clear v.
5597
5598 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5599
5600         PR middle-end/42930
5601         * graphite-scop-detection.c (graphite_can_represent_scev): Call
5602         graphite_can_represent_init for MULT_EXPR.
5603
5604 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5605
5606         PR middle-end/42914
5607         PR middle-end/42530
5608         * graphite-sese-to-poly.c (remove_phi): New.
5609         (translate_scalar_reduction_to_array): Call remove_phi.
5610
5611 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5612
5613         PR middle-end/42771
5614         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
5615         * graphite-clast-to-gimple.h (gloog): Update declaration.
5616         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
5617         * graphite-poly.h (struct poly_bb): Add missing comments.
5618         (struct scop): Add poly_scop_p field.
5619         (POLY_SCOP_P): New.
5620         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
5621         * graphite.c (graphite_transform_loops): Build the polyhedral
5622         representation for each scop before code generation.
5623         * sese.c (rename_variables_in_operand): Removed.
5624         (rename_variables_in_expr): Return the renamed expression.
5625         (rename_sese_parameters): New.
5626         * sese.h (rename_sese_parameters): Declared.
5627
5628 2010-02-11  Richard Guenther  <rguenther@suse.de>
5629
5630         PR tree-optimization/42998
5631         * tree-ssa-pre.c (create_expression_by_pieces): Treat
5632         POINTER_PLUS_EXPR properly.
5633
5634 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5635             Changpeng Fang  <changpeng.fang@amd.com>
5636
5637         PR middle-end/40886
5638         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
5639         the cost of an IV candidate when the IV is used in a test against zero.
5640
5641         * gcc.dg/tree-ssa/ivopts-3.c: New.
5642
5643 2010-02-11  Richard Guenther  <rguenther@suse.de>
5644
5645         PR lto/41664
5646         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
5647         pointer-vs-decl case by swapping refs.  Handle some cases
5648         of pointer-vs-decl disambiguations more conservatively.
5649         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
5650         to false after expanding.
5651
5652 2010-02-11  Richard Guenther  <rguenther@suse.de>
5653
5654         PR driver/43021
5655         * gcc.c (process_command): Handle LTO file@offset case more
5656         appropriately.
5657
5658 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
5659
5660         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
5661         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
5662         of DEBUG_INSNs.
5663         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
5664
5665         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
5666         if MEM's mode size isn't DWARF2_ADDR_SIZE.
5667         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
5668         Optimize eq/ne comparisons when both arguments are known to be
5669         zero-extended.
5670         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
5671         Don't mask operands unnecessarily if they are known to be already
5672         zero-extended.
5673
5674 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
5675
5676         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
5677         instead of loop.
5678
5679 2010-02-10  Richard Guenther  <rguenther@suse.de>
5680
5681         PR tree-optimization/43017
5682         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
5683         for wrapping signed arithmetic.
5684
5685 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
5686
5687         PR debug/43010
5688         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
5689         if no debug info should be emitted for it.
5690
5691 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5692
5693         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
5694         note when flag_exceptions is set.
5695
5696 2010-02-10  Duncan Sands  <baldrick@free.fr>
5697
5698         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
5699
5700 2010-02-10  Richard Guenther  <rguenther@suse.de>
5701
5702         PR c/43007
5703         * tree.c (get_unwidened): Handle constants.
5704         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
5705
5706 2010-02-10  Martin Jambor  <mjambor@suse.cz>
5707
5708         PR lto/42985
5709         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
5710         check for variable argument counts independently.
5711
5712 2010-02-10  Christian Bruel  <christian.bruel@st.com>
5713
5714         PR target/42841
5715         * config/sh/sh.c (find_barrier): Increase length for non delayed
5716         conditional branches.
5717
5718 2010-02-10  Christian Bruel  <christian.bruel@st.com>
5719
5720         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
5721
5722 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
5723
5724         * builtins.c (set_builtin_user_assembler_name): Also handle
5725         ffs if int is smaller than word.
5726
5727 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
5728
5729         PR middle-end/42973
5730         * ira-conflicts.c (get_dup): Remove.
5731         (process_reg_shuffles): Add new parameter.  Use it as an
5732         additional guard for copy generation.
5733         (add_insn_allocno_copies): Rewrite.
5734
5735 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
5736
5737         * common.opt (fsched2-use-traces): Preserved for backward
5738         compatibility.
5739         * doc/invoke.texi: Remove the documentation about option
5740         -fsched2-use-traces.
5741         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
5742         flag_sched2_use_traces.
5743         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
5744         the backward compatibility flag section.
5745
5746 2010-02-09  Richard Guenther  <rguenther@suse.de>
5747
5748         PR tree-optimization/43008
5749         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
5750         make HEAP variables initialized from global memory if they
5751         are not known builtin functions.
5752         (find_func_aliases): Adjust.
5753
5754 2010-02-09  Richard Guenther  <rguenther@suse.de>
5755
5756         PR tree-optimization/43000
5757         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
5758         arithmetic manually.
5759
5760 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
5761
5762         PR tree-optimization/42931
5763         * tree-loop-linear.c (try_interchange_loops): Don't call
5764         double_int_mul if estimated_loop_iterations failed.
5765
5766 2010-02-08  Martin Jambor  <mjambor@suse.cz>
5767
5768         PR middle-end/42898
5769         * tree-sra.c (build_accesses_from_assign): Do not mark in
5770         should_scalarize_away_bitmap if stmt has volatile ops.
5771         (sra_modify_assign): Do not process assigns piecemeal if if stmt
5772         has volatile ops.
5773
5774 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
5775
5776         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
5777
5778 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
5779
5780         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
5781         before the pattern.
5782
5783 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
5784
5785         PR middle-end/42946
5786         * df-core.c (df_finish_pass): Change type of saved_flags to int.
5787
5788 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
5789
5790         PR middle-end/42988
5791         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
5792         to unknown_dependence.
5793         (graphite_legal_transform_dr): Handle the unknown_dependence.
5794         (graphite_carried_dependence_level_k): Same.
5795
5796 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
5797
5798         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
5799
5800 2010-02-07  Richard Guenther  <rguenther@suse.de>
5801
5802         PR middle-end/42991
5803         * expr.c (get_inner_reference): Always initialize *pbitsize.
5804
5805 2010-02-07  Richard Guenther  <rguenther@suse.de>
5806
5807         PR middle-end/42956
5808         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
5809         new ARRAY_REFs on variable size element or minimal index arrays.
5810         Complete.
5811         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
5812         gimple_fold_indirect_ref.
5813
5814 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
5815
5816         PR target/42957
5817         * arm.c (arm_override_options): Just return if the user has specified
5818         an invalid fpu name.
5819
5820 2010-02-03  Jason Merrill  <jason@redhat.com>
5821
5822         PR c++/42870
5823         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
5824         i386_pe_maybe_record_exported_symbol.
5825
5826 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
5827
5828         PR target/42924
5829         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5830         (pa_delegitimize_address): New function.
5831
5832 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
5833
5834         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
5835         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
5836
5837 2010-02-05  Richard Guenther  <rguenther@suse.de>
5838
5839         PR lto/42762
5840         * lto-streamer-in.c (get_resolution): Deal with references
5841         to undefined functions.
5842
5843 2010-02-05  Richard Guenther  <rguenther@suse.de>
5844
5845         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
5846         (fold_const_aggregate_ref): Likewise.
5847         (ccp_fold_stmt): Substitute loads.
5848         (maybe_fold_reference): Verify types before substituting.
5849         Unshare properly.
5850         (fold_gimple_assign): Unshare properly.
5851         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
5852
5853 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
5854
5855         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
5856         for rs6000_gen_cell_microcode.
5857
5858 2010-02-04  Richard Guenther  <rguenther@suse.de>
5859
5860         PR rtl-optimization/42952
5861         * dse.c (const_or_frame_p): Remove MEM handling.
5862
5863 2010-02-04  Nick Clifton  <nickc@redhat.com>
5864
5865         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
5866         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
5867         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
5868         (mn10300_asm_output_mi_thunk): New function.
5869         (mn10300_can_output_mu_thunk): New function.
5870         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
5871         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
5872         (FUNCTION_ARG): Delete incorrect comment.
5873
5874 2010-02-03  Jason Merrill  <jason@redhat.com>
5875
5876         PR c++/40138
5877         * fold-const.c (operand_equal_p): Handle erroneous types.
5878
5879 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5880
5881         * config/h8300/h8300.md (can_delay): Fix attibute condition.
5882
5883 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
5884
5885         PR rtl-optimization/42941
5886         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
5887         of xmalloc.
5888
5889 2010-02-03  Jason Merrill  <jason@redhat.com>
5890
5891         PR c++/35652
5892         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
5893
5894 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
5895
5896         PR debug/42896
5897         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
5898         (cselib_reset_table): Renamed from...
5899         (cselib_reset_table_with_next_value): ... this.
5900         (cselib_get_next_uid): Renamed from...
5901         (cselib_get_next_unknown_value): ... this.
5902         * cselib.c (next_uid): Renamed from...
5903         (next_unknown_value): ... this.
5904         (cselib_clear_table): Adjust.
5905         (cselib_reset_table): Adjust.  Renamed from...
5906         (cselib_reset_table_with_next_value): ... this.
5907         (cselib_get_next_uid): Adjust.  Renamed from...
5908         (cselib_get_next_unknown_value): ... this.
5909         (get_value_hash): Use hash.
5910         (cselib_hash_rtx): Likewise.
5911         (new_cselib_val): Adjust.  Set and dump uid.
5912         (cselib_lookup_mem): Pass next_uid as hash.
5913         (cselib_subst_to_values): Likewise.
5914         (cselib_log_lookup): Dump uid.
5915         (cselib_lookup): Pass next_uid as hash.  Adjust.
5916         (cselib_process_insn): Adjust.
5917         (cselib_init): Initialize next_uid.
5918         (cselib_finish): Adjust.
5919         (dump_cselib_table): Likewise.
5920         * dse.c (canon_address): Dump value uid.
5921         * print-rtl.c (print_rtx): Print value uid.
5922         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
5923         (dvuid): New type.
5924         (dv_uid): New function, sort of renamed from...
5925         (dv_htab_hash): ... this, reimplemented in terms of it and...
5926         (dv_uid2hash): ... this.  New.
5927         (variable_htab_eq): Drop excess assertions.
5928         (tie_break_pointers): Removed.
5929         (canon_value_cmp): Compare uids.
5930         (variable_post_merge_New_vals): Print uids.
5931         (vt_add_function_parameters): Adjust.
5932         (vt_initialize): Reset table.  Adjust.
5933
5934 2010-02-03  Richard Guenther  <rguenther@suse.de>
5935
5936         PR tree-optimization/42944
5937         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
5938         (call_may_clobber_ref_p_1): Likewise.  Properly handle
5939         malloc and calloc clobbering errno.
5940
5941 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
5942
5943         * doc/invoke.texi: Fix name of sched1 dump.
5944
5945         * opts.c (decode_options): Set flag_tree_switch_conversion
5946         only conditionally on optimize >= 2.
5947
5948         * gcse.c: Assorted comment fixes in pass description.
5949
5950 2010-02-03  Anthony Green  <green@moxielogic.com>
5951
5952         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
5953         nop padding in order to maintain alignment of storage location of
5954         target function address.
5955         (moxie_trampoline_init): Store target function address at newly
5956         aligned location.
5957         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
5958         to 32.
5959         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
5960
5961 2010-02-03  Richard Guenther  <rguenther@suse.de>
5962
5963         PR middle-end/42927
5964         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
5965
5966 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5967
5968         * config.gcc: Reenable check for obsolete targets.
5969         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
5970         mips-sgi-irix6.[0-4]*.
5971
5972 2010-02-02  Nick Clifton  <nickc@redhat.com>
5973
5974         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
5975         constant size of 4 as being the same as 0.
5976         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
5977         can take values in the range 0..4.
5978
5979 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
5980
5981         PR java/41991
5982         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
5983         as _darwin10_Unwind_FindEnclosingFunction().
5984         * libgcc-libsystem.ver: New.
5985
5986 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
5987
5988         PR target/41399
5989         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
5990         implicitly set registers.
5991
5992 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
5993
5994         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
5995         (arm_override_options): Allow automatic selection of the thread
5996         pointer register if thumb2.
5997         (legitimize_pic_address): Improve code sequences for Thumb2.
5998         (arm_call_tls_get_addr): Likewise.
5999         (legitimize_tls_address): Likewise.
6000         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
6001         (pic_load_addr_32bit): ... this.  New named pattern.
6002         * thumb2.md (pic_load_addr_thumb2): Delete.
6003         (pic_load_dot_plus_four): Delete.
6004         (tls_load_dot_plus_four): New named pattern.
6005
6006 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6007
6008         PR libgomp/29986
6009         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
6010         Document fix for TLS bug.
6011
6012 2010-01-31  Richard Guenther  <rguenther@suse.de>
6013
6014         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
6015         conservatively correct.
6016
6017 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6018
6019         PR target/42850
6020         Revert:
6021         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6022
6023         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
6024
6025 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6026
6027         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
6028
6029 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
6030
6031         * config.gcc: Adjust order of makefile fragments for mingw targets.
6032
6033 2010-01-31  Richard Guenther  <rguenther@suse.de>
6034
6035         PR middle-end/42898
6036         * gimplify.c (gimplify_init_constructor): For volatile LHS
6037         initialize a temporary.
6038
6039 2010-01-31  Matthias Klose  <doko@ubuntu.com>
6040
6041         * configure.ac: Fix __stack_chk_fail check for cross builds configured
6042         --with-headers
6043         * configure: Regenerate.
6044
6045 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
6046
6047         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
6048         the same alias set and their sizes different constantness.
6049         (aliasing_component_refs_p): Revert 2009-10-24 change.
6050
6051 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6052
6053         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
6054         unused.
6055
6056 2010-01-29  Richard Guenther  <rguenther@suse.de>
6057
6058         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
6059         Assert we successfully updated the call.
6060
6061 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
6062
6063         PR rtl-optimization/42889
6064         * df.h (df_set_bb_dirty_nonlr): New prototype.
6065         * df-core.c (df_set_bb_dirty_nonlr): New function.
6066         * df-scan.c (df_insn_rescan): Call it instead of
6067         df_set_bb_dirty for DEBUG_INSNs.
6068
6069 2010-01-29  Richard Guenther  <rguenther@suse.de>
6070
6071         PR middle-end/37448
6072         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
6073         quadratic behavior in most cases.
6074
6075 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
6076
6077         PR target/42891
6078         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
6079         in the call to gen_x86_movsicc_0_m1.
6080
6081 2010-01-28  Richard Guenther  <rguenther@suse.de>
6082
6083         PR tree-optimization/42871
6084         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
6085
6086 2010-01-28  Richard Guenther  <rguenther@suse.de>
6087
6088         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
6089         into call arguments.
6090
6091 2010-01-28  Richard Guenther  <rguenther@suse.de>
6092
6093         PR middle-end/42883
6094         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
6095         the forwarder if the destination is an EH landing pad.
6096
6097 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
6098
6099         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
6100         block list passed to gimple_duplicate_sese_tail.
6101         (parallelize_loops): Avoid parallelization when the function
6102         has_nonlocal_label.
6103         Avoid parallelization when the preheader is IRREDUCIBLE.
6104         Try to optimize when estimated_loop_iterations_int is unresolved.
6105         Add the loop's location to the dump file.
6106         * tree-cfg.c (add_phi_args_after_redirect): Remove.
6107         (gimple_duplicate_sese_tail): Remove the check for the latch.
6108         Redirect nexits to the exit block.
6109         Remove handling of the incoming edges to the latch.
6110         Redirect the backedge from the copied latch to the exit bb.
6111
6112 2010-01-28  Michael Matz  <matz@suse.de>
6113
6114         PR target/42881
6115         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
6116         Wrap force_reg into a sequence, emit it before user.
6117
6118 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
6119
6120         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
6121         (arm_rev): New.
6122         (arm_legacy_rev): Likewise.
6123         (thumb_legacy_rev): Likewise.
6124
6125 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
6126
6127         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
6128         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
6129         on MEM's address failed, try avoid_constant_pool_reference and
6130         recurse if it returned something different.
6131         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
6132         address, try avoid_constant_pool_reference and recurse if it
6133         returned something different.
6134         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
6135         address and avoid_constant_pool_reference returned something
6136         different, don't set have_address.
6137
6138 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
6139
6140         PR debug/42861
6141         * var-tracking.c (val_store): Add modified argument, obey it.
6142         Adjust callers.
6143         (count_uses): Move down logging of main.
6144         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
6145         don't need resolution.
6146         (emit_notes_in_bb): Likewise.
6147
6148 2010-01-27  Richard Guenther  <rguenther@suse.de>
6149
6150         PR middle-end/42878
6151         * tree-inline.c (remap_decl): Delay remapping of SSA name
6152         default definitions until we need them.
6153
6154 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
6155
6156         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6157         (rs6000_delegitimize_address): New function.
6158
6159         * config/s390/s390.c (s390_delegitimize_address): Call
6160         delegitimize_mem_from_attrs.
6161
6162         PR middle-end/42874
6163         * tree-inline.c (cannot_copy_type_1): Removed.
6164         (copy_forbidden): Don't forbid copying of functions containing
6165         records/unions with variable length fields.
6166
6167 2010-01-27  Christian Bruel  <christian.bruel@st.com>
6168
6169         Revert:
6170         PR target/42841
6171         * config/sh/sh.c (find_barrier): Increase length for non delayed
6172         conditional branches.
6173
6174 2010-01-27  Matthias Klose  <doko@ubuntu.com>
6175
6176         * configure.ac (gnu-unique-object): Fix ldd version check.
6177         * configure: Regenerate.
6178
6179 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6180
6181         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
6182         HAVE_GNU_AS value.
6183         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
6184         Test for HAVE_GNU_AS value.
6185
6186 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6187
6188         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
6189         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
6190         INT64_TYPE): Define.
6191         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
6192         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6193         INT_LEAST64_TYPE): Define.
6194         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
6195         UINT_LEAST64_TYPE): Define.
6196         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
6197         INT_FAST64_TYPE): Define.
6198         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6199         UINT_FAST64_TYPE): Define.
6200         (INTMAX_TYPE, UINTMAX_TYPE): Define.
6201         (INTPTR_TYPE, UINTPTR_TYPE): Define.
6202         (SIG_ATOMIC_TYPE): Define.
6203
6204 2010-01-26  Richard Guenther  <rguenther@suse.de>
6205
6206         * df-scan.c (df_scan_set_bb_info): Remove assert.
6207         (df_insn_rescan_debug_internal): Merge asserts.
6208         (df_install_ref): Likewise.
6209         (df_mark_reg): Use bitmap_set_range.
6210         (df_hard_reg_used_p): Remove assert.
6211         (df_hard_reg_used_count): Likewise.
6212
6213 2010-01-26  Richard Guenther  <rguenther@suse.de>
6214
6215         PR rtl-optimization/42685
6216         * web.c (web_main): Ignore DEBUG_INSNs.
6217
6218 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
6219
6220         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
6221
6222         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
6223         Fix types of fndecl and arglist parameters.
6224
6225 2010-01-26  Richard Guenther  <rguenther@suse.de>
6226
6227         PR middle-end/42806
6228         * tree-eh.c (unsplit_eh): Skip debug insns.
6229
6230 2010-01-26  Richard Guenther  <rguenther@suse.de>
6231
6232         PR tree-optimization/42250
6233         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
6234
6235 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
6236
6237         PR fortran/42866
6238         * omp-low.c (expand_omp_sections): Only use single_pred if
6239         l2_bb is single_pred_p.
6240
6241 2010-01-25  Christian Bruel  <christian.bruel@st.com>
6242
6243         PR target/42841
6244         * config/sh/sh.c (find_barrier): Increase length for non delayed
6245         conditional branches.
6246         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
6247
6248 2010-01-24  David S. Miller  <davem@davemloft.net>
6249
6250         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
6251         define if not using GAS.
6252         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6253         Likewise.  Delete SECTION_MERGE code, which is only applicable
6254         when using GAS.
6255
6256 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
6257
6258         PR c++/42748
6259         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
6260         mangling of va_list in system headers.
6261
6262 2010-01-23  Toon Moene  <toon@moene.org>
6263
6264         * tree-predcom.c (combine_chains): Return NULL, not false.
6265
6266 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
6267
6268         * tree-loop-distribution.c (distribute_loop): Fix declaration and
6269         initialization of variable res to agree with return type.
6270
6271 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
6272
6273         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
6274         * tree-sra.c: Add include of expr.h.
6275
6276 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
6277
6278         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
6279         insert the debug stmt on the single non-EH edge from the stmt.
6280
6281 2010-01-22  Richard Henderson  <rth@redhat.com>
6282
6283         PR tree-opt/42833
6284         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
6285         the RHS until after generate_subtree_copies has insertted its
6286         code before the current statement.
6287
6288 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
6289
6290         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
6291
6292         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
6293
6294 2010-01-21  Martin Jambor  <mjambor@suse.cz>
6295
6296         PR tree-optimization/42585
6297         * tree-sra.c (struct access): New field grp_total_scalarization.
6298         (dump_access): Dump the new field.
6299         (should_scalarize_away_bitmap): New variable.
6300         (cannot_scalarize_away_bitmap): Likewise.
6301         (sra_initialize): Allocate new bitmaps.
6302         (sra_deinitialize): Free new bitmaps.
6303         (create_access_1): New function.
6304         (create_access): Parts moved to create_access_1.
6305         (type_consists_of_records_p): New function.
6306         (completely_scalarize_record): Likewise.
6307         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
6308         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
6309         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
6310         access.
6311         (analyze_all_variable_accesses): Completely scalarize small eligible
6312         records.
6313
6314 2010-01-21  Martin Jambor  <mjambor@suse.cz>
6315
6316         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
6317
6318 2010-01-21  Andrew Haley  <aph@redhat.com>
6319
6320         * gcc.c (process_command): Move lang_specific_driver before
6321         setting cc_libexec_prefix.
6322
6323 2010-01-21  Richard Guenther  <rguenther@suse.de>
6324
6325         PR middle-end/19988
6326         * fold-const.c (negate_expr_p): Pretend only negative
6327         real constants are easily negatable.
6328
6329 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
6330             Jason Merrill  <jason@redhat.com>
6331
6332         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
6333         (TYPE_TRANSPARENT_AGGR): this, for union and record.
6334         * calls.c (initialize argument_information): Handle it.
6335         * c-common.c (handle_transparent_union_attribute): Use new name.
6336         * c-decl.c (finish_struct): Ditto.
6337         * c-typeck.c (type_lists_compatible_p): Ditto.
6338         (convert_for_assignment): Use new name and also handle record.
6339         * function.c (aggregate_value_p): Handle it.
6340         (pass_by_reference): Ditto.
6341         (assign_parm_data_types): Ditto.
6342         * print-tree.c (print_node): Ditto.
6343         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
6344         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
6345         * tree.c (first_field): New fn.
6346
6347 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
6348
6349         PR target/42818
6350         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
6351         even when linking statically, for now.
6352
6353 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
6354
6355         PR debug/42715
6356         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
6357         without a cselib val.
6358         (count_uses): Accept MO_VAL_SET with no val on stores.
6359         (add_stores): Likewise.
6360
6361 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6362
6363         * var-tracking.c (check_value_val): Add a compile time assertion.
6364         (dv_is_decl_p): Simplify.
6365         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
6366         gcc_assert if ENABLE_CHECKING.
6367
6368 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
6369
6370         PR debug/42782
6371         * var-tracking.c: Include tree-flow.h.
6372         (mem_dies_at_call): New.
6373         (dataflow_set_preserve_mem_locs): Use it.
6374         (dataflow_set_remove_mem_locs): Likewise.
6375         (dump_var): Renamed from dump_variable.  Adjust all callers.
6376         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
6377         * Makefile.in (var-tracking.o): Adjust deps.
6378
6379 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
6380
6381         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
6382
6383 2010-01-20  Richard Guenther  <rguenther@suse.de>
6384
6385         PR tree-optimization/42717
6386         * tree-ssa-dce.c (get_live_post_dom): Remove.
6387         (forward_edge_to_pdom): Take an arbitrary edge to copy
6388         degenerate PHI args from.
6389         (remove_dead_stmt): Use the first post-dominator even if it
6390         does not contain live statements as redirection destination.
6391
6392 2010-01-20  Richard Guenther  <rguenther@suse.de>
6393
6394         * tree-inline.c (estimate_num_insns): Handle EH builtins.
6395
6396 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6397
6398         * sel-sched.c (create_speculation_check): Remove set but not used
6399         variable twin.
6400         (try_transformation_cache): Remove set but not used variable ds.
6401         (calculate_privileged_insns): Remove set but not used variables
6402         cur_insn and min_spec_insn.
6403         (find_best_expr): Remove set but not used variable avail_n.
6404         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
6405         variable e.
6406         * cgraphunit.c (assemble_thunk): Remove set but not used variable
6407         false_label.
6408         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
6409         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
6410         new_scop_exit_edge.
6411
6412 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
6413
6414         PR bootstrap/42786
6415         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
6416         cpu types.  Add support for *-sse3 cpu types.
6417         (x86_64-*-*): Ditto.
6418
6419 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6420
6421         PR middle-end/42803
6422         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
6423         argument, call initializer_constant_valid_p_1 instead of
6424         initializer_constant_valid_p, pass CACHE to it, return NULL
6425         immediately if first call returns NULL.
6426         (initializer_constant_valid_p_1): New function.
6427         (initializer_constant_valid_p): Use it.
6428
6429 2010-01-20  Thomas Quinot  <quinot@adacore.com>
6430
6431         * tree.def (PLACEHOLDER_EXPR): Fix comment.
6432
6433 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6434
6435         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
6436         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
6437         (loc_list_from_tree): Don't handle unsigned division.  Handle
6438         signed modulo using DW_OP_{over,over,div,mul,minus}.
6439         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
6440         modulo instead of signed.
6441
6442 2010-01-20  DJ Delorie  <dj@redhat.com>
6443
6444         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
6445         (Fpa): Pass it
6446         (h8300_emit_stack_adjustment): Propogate it.
6447         (push): Pass it.
6448         (h8300_expand_prologue): Likewise.
6449         (h8300_expand_epilogue): Likewise.
6450
6451 2010-01-19  Michael Matz  <matz@suse.de>
6452
6453         PR tree-optimization/41783
6454         * tree-data-ref.c (toplevel): Include flags.h.
6455         (dump_data_dependence_relation):  Also dump the inputs if the
6456         result will be unknown.
6457         (split_constant_offset_1): Look through some conversions.
6458         * tree-predcom.c (determine_roots_comp): Restart a new chain if
6459         the offset from last element is too large.
6460         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
6461         (reassociate_to_the_same_stmt): Handle vector registers.
6462         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
6463         (e.g. conversions).
6464         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
6465         wide_prolog_niters argument, emit widening instructions.
6466         (vect_do_peeling_for_alignment): Adjust caller, use widened
6467         variant of the iteration cound.
6468         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
6469
6470 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6471
6472         PR target/38697
6473         * config/arm/neon-testgen.m (emit_automatics): New parameter
6474         features. Adjust for Fixed_return_reg feature.
6475         (test_intrinsic): Call emit_automatics with new feature.
6476         * config/arm/neon.ml: Update copyright years.
6477         (features): New Fixed_return_reg feature.
6478         (ops): Update feature for Vget_low.
6479
6480 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
6481
6482         PR tree-optimization/42719
6483         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
6484         stmt uses.
6485
6486         PR debug/42728
6487         * fwprop.c (all_uses_available_at): Return false if def_set dest
6488         is a REG that is used in def_insn.
6489
6490 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
6491
6492         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
6493
6494         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
6495         Add argument names.
6496
6497         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
6498
6499         * target.h (struct gcc_target) <secondary_reload>: Change type
6500         of last argument to secondary_reload_info *.
6501
6502 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
6503
6504         PR target/42774
6505         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
6506         memory references with unaligned offsets.  Remove CQImode handling.
6507         (unaligned_memory_operand): Return 1 for memory references with
6508         unaligned offsets.  Remove CQImode handling.
6509
6510 2010-01-18  Richard Guenther  <rguenther@suse.de>
6511
6512         PR middle-end/39954
6513         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
6514         builtin calls.
6515
6516 2010-01-18  Richard Guenther  <rguenther@suse.de>
6517
6518         PR tree-optimization/42781
6519         * tree-ssa-structalias.c (find_what_var_points_to): Skip
6520         restrict processing only if the original variable was artificial.
6521
6522 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
6523
6524         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
6525         find number of popped argument bytes.
6526
6527         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
6528         Fix the text that describes the return value for invalid insns.
6529
6530         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
6531
6532         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
6533         Clarify what 'cost of the -dependence' is.  Fix quoting.
6534
6535         * toplev.c (default_get_pch_validity): Rename argument to "sz".
6536         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
6537
6538 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
6539
6540         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
6541         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
6542
6543 2010-01-17  Richard Guenther  <rguenther@suse.de>
6544
6545         PR middle-end/42248
6546         * function.c (split_complex_args): Take a VEC to modify.
6547         (assign_parms_augmented_arg_list): Build a VEC instead of
6548         a chain of PARM_DECLs.
6549         (assign_parms_unsplit_complex): Take a VEC of arguments.
6550         Do not fixup unmodified parms.
6551         (assign_parms): Deal with the VEC.
6552         (gimplify_parameters): Likewise.
6553
6554 2010-01-17  Richard Guenther  <rguenther@suse.de>
6555
6556         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
6557         node existence check.
6558         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
6559         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
6560         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
6561         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
6562         (gimple_execute_on_growing_pred): Likewise.
6563
6564 2010-01-17  Richard Guenther  <rguenther@suse.de>
6565
6566         PR tree-optimization/42773
6567         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
6568         (compute_antic_aux): Likewise.
6569         (compute_partial_antic_aux): Likewise.
6570
6571 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
6572
6573         PR debug/42767
6574         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
6575         and US_TRUNCATE.
6576
6577 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
6578
6579         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
6580         appearance.
6581
6582         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
6583         Fix markup for strict argument.
6584
6585         (TARGET_SCHED_REORDER2): Fix argument types.
6586
6587         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
6588         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
6589
6590         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
6591         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
6592
6593         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
6594         Add argument name.
6595
6596         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
6597         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
6598         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
6599         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
6600         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
6601
6602         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
6603
6604         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
6605
6606         (TARGET_ASM_RELOC_RW_MASK): Add return type.
6607         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
6608
6609         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
6610
6611         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
6612         Use prototype.
6613
6614         (TARGET_ASM_NAMED_SECTION): Fix argument list.
6615
6616         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
6617         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
6618
6619         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
6620
6621         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
6622
6623         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
6624         referring to it.  Fix language.
6625
6626         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
6627
6628         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
6629
6630         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
6631
6632         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
6633
6634         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
6635         '@var{stream}.  Remove stray 'and'.
6636
6637         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
6638
6639         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
6640
6641         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
6642
6643         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
6644         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
6645
6646         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
6647         Fix description of return value.
6648         Rename argument "sz" to "len."
6649
6650         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
6651         Clarify meaning of 'true' return value.
6652
6653         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
6654
6655         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
6656         rep_mode versus mode_rep.
6657
6658         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
6659
6660         (TARGET_BUILTIN_DECL): Fix name.
6661
6662         (TARGET_COMMUTATIVE_P): Fix type of first argument.
6663
6664         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
6665
6666         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
6667
6668         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
6669
6670         (TARGET_RELAXED_ORDERING): Use @deftypevr.
6671
6672         (TARGET_GET_DRAP_RTX): Note that this is a hook.
6673         Clarify language.
6674
6675         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
6676         Rename argument tm_fn to md_fn.
6677
6678         (TARGET_OPTION_PRINT): Fix argument list.
6679
6680 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
6681
6682         PR target/42664
6683         * config/i386/i386.c (ix86_fixup_binary_operands):
6684         Revert FMA4 fixup of operands.
6685
6686 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6687
6688         PR gcc/42525
6689         * Makefile.in (write_entries_to_file, install-plugin):
6690         Use \012 instead of \n with tr.
6691
6692 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
6693
6694         * configure.ac (HAVE_AS_REF): New C macro.
6695         * configure: Regenerate.
6696         * config.in: Likewise.
6697         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
6698         if HAVE_AS_REF.
6699         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
6700         if HAVE_AS_REF.
6701
6702 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
6703
6704         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
6705
6706         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
6707
6708         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
6709
6710         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
6711
6712         (TARGET_IN_SMALL_DATA_P): Fix argument type.
6713
6714         (TARGET_BINDS_LOCAL_P): Fix argument type.
6715
6716         (TARGET_ASM_FILE_END): Use prototype.
6717
6718         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
6719
6720         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
6721
6722         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
6723
6724         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
6725
6726         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
6727         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
6728
6729         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
6730         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
6731
6732         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
6733         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
6734         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
6735         (TARGET_ADDR_SPACE_CONVERT): Likewise.
6736
6737         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
6738
6739         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
6740
6741         (TARGET_INIT_BUILTINS): Use prototype.
6742
6743         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
6744         Put 'const char *' in braces.  Fix parameter types.
6745         (TARGET_INVALID_CONVERSION): Fix parameter types.
6746         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
6747         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
6748
6749         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
6750         Fix argument type.
6751
6752         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
6753
6754         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
6755
6756 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
6757
6758         * doc/tm.texi (TARGET_HELP): Fix return type.
6759
6760         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
6761         in braces.  Fix argument types.
6762
6763         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
6764
6765         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
6766
6767         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
6768
6769         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
6770         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
6771
6772         (TARGET_MANGLE_TYPE): Fix argument types.
6773
6774         (TARGET_IRA_COVER_CLASSES): Use prototype.
6775
6776         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
6777
6778         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
6779
6780         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
6781
6782         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
6783
6784         (TARGET_CALLEE_COPIES): Fix argument types.
6785
6786         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
6787
6788         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
6789
6790         (TARGET_FUNCTION_VALUE): Fix argument types.
6791
6792         (TARGET_RETURN_IN_MSB): Fix argument type.
6793
6794         (TARGET_RETURN_IN_MEMORY): Fix argument types.
6795
6796         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
6797
6798         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
6799
6800         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
6801         agree with return type.
6802
6803         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
6804
6805 2010-01-15  Jing Yu  <jingyu@google.com>
6806
6807         PR rtl-optimization/42691
6808         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
6809         a pseudo to a constant and are merged, and adjust comments.
6810
6811 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
6812
6813         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
6814
6815 2010-01-15  Richard Guenther  <rguenther@suse.de>
6816
6817         PR middle-end/42739
6818         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
6819         labels of computed or non-local gotos to the destination.
6820         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
6821         landing pad label is the first label.
6822
6823 2010-01-15  Richard Guenther  <rguenther@suse.de>
6824
6825         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
6826
6827 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6828
6829         PR target/42747
6830         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
6831         to allow generation of the xssqrtdp instruction on power7.
6832         (sqrtdf2_fpr): Ditto.
6833
6834 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
6835
6836         PR middle-end/42674
6837         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
6838         functions with noreturn attribute.
6839
6840         PR c++/42608
6841         * varasm.c (declare_weak): Add weak attribute to decl if it
6842         doesn't have one already.
6843         (assemble_external): Only add decls to weak_decls if they also
6844         have weak attribute.
6845
6846 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
6847
6848         * var-tracking.c (var_reg_delete): Don't delete the association
6849         between REGs and values or one-part variables if the register
6850         isn't clobbered.
6851
6852 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
6853
6854         PR debug/42657
6855         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
6856         because its first operand is a non-localized variable.
6857
6858 2010-01-14  Martin Jambor  <mjambor@suse.cz>
6859
6860         PR tree-optimization/42706
6861         * tree-sra.c (encountered_recursive_call): New variable.
6862         (encountered_unchangable_recursive_call): Likewise.
6863         (sra_initialize): Initialize both new variables.
6864         (callsite_has_enough_arguments_p): New function.
6865         (scan_function): Call decl and flags check only for IPA-SRA, check
6866         whether there is a recursive call and whether it has enough arguments.
6867         (all_callers_have_enough_arguments_p): New function.
6868         (convert_callers): Look for recursive calls only when
6869         encountered_recursive_call is set.
6870         (ipa_early_sra): Bail out either if
6871         !all_callers_have_enough_arguments_p or
6872         encountered_unchangable_recursive_call.
6873
6874 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6875
6876         * sel-sched.c: Add 2010 to copyright years.
6877         * sel-sched-ir.c: Likewise.
6878         * sel-sched-ir.h: Likewise.
6879
6880 2010-01-14  Martin Jambor  <mjambor@suse.cz>
6881
6882         PR tree-optimization/42714
6883         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
6884         constructors specially.
6885
6886 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6887
6888         * config/i386/drivers-i386.c (detect_caches_intel):
6889         Add l2sizekb parameter and fill in.
6890         (host_detect_local_cpu): Add l2sizekb, fill in.
6891         Add Atom small cache heuristic.
6892
6893 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6894
6895         * config/i386/drivers-i386.c (detect_caches_cpuid4):
6896         Add level3 parameter and fill in.
6897         (detect_caches_intel): Handle level3 cache.
6898
6899 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6900
6901         * config/i386/drivers-i386.c (host_detect_local_cpu):
6902         Fix core duo detection.
6903
6904 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6905
6906         * config/i386/drivers-i386.c (host_detect_local_cpu):
6907         Fix Atom detection.
6908
6909 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6910
6911         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
6912         (rs6000_variable_issue_1): this.  Use...
6913         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
6914
6915 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6916
6917         * sel-sched-ir.c (sel_restore_other_notes): Rename to
6918         sel_restore_notes.  Update all callers.  Call reemit_notes
6919         for all insns.
6920
6921 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6922
6923         PR rtl-optimization/42246
6924         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
6925         loops.
6926
6927 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6928
6929         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
6930         all successors is the same as number of successors in current region.
6931
6932 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6933
6934         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
6935         to rename is not separable.  Otherwise check that its LHS is not NULL.
6936
6937 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6938
6939         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
6940
6941 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6942
6943         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
6944         available registers when failed to discover LHS register class.
6945         Fix indentation.  Update comment.
6946
6947 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6948             Alexander Monakov  <amonakov@ispras.ru>
6949
6950         PR rtl-optimization/42389
6951         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
6952         to can_issue_more.
6953         (advance_state_on_fence): Likewise.
6954         (sel_target_adjust_priority): Print debug output only when
6955         sched_verbose >= 4, not 2.
6956         (get_expr_cost): Do not issue all unique insns on the next cycle.
6957         (fill_insns): Initialize can_issue_more from the value saved
6958         with the fence.
6959         * sel-sched-ir.c (flist_add): New parameter issue_more.
6960         Init FENCE_ISSUE_MORE with it.
6961         (merge_fences): Likewise.
6962         (init_fences): Update call to flist_add.
6963         (add_to_fences, add_clean_fence_to_fences)
6964         (add_dirty_fence_to_fences): Likewise.
6965         (move_fence_to_fences): Update call to merge_fences.
6966         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
6967         sched groups.
6968         * sel-sched-ir.h (struct _fence): New field issue_more.
6969         (FENCE_ISSUE_MORE): New accessor macro.
6970
6971 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6972
6973         PR rtl-optimization/42388
6974         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
6975         that have no predecessors nor successors.  Do not call move_bb_info
6976         for empty blocks outside of current region.
6977
6978 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6979
6980         PR rtl-optimization/42294
6981         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
6982         * sel-sched.c (move_exprs_to_boundary): Transitively add all
6983         originators' originators.
6984
6985 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6986
6987         PR rtl-optimization/39453
6988         PR rtl-optimization/42246
6989         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
6990         for pipelining_p.
6991         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
6992
6993 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6994             Alexander Monakov  <amonakov@ispras.ru>
6995
6996         PR middle-end/42245
6997         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
6998         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
6999         argument.  Update all callers.
7000         (tidy_control_flow): ... and here.  Recompute topological order
7001         of basic blocks in region if necessary.
7002         (sel_redirect_edge_and_branch): Change return type.  Return true
7003         if topological order might have been invalidated.
7004         (purge_empty_blocks): Export and move from...
7005         * sel-sched.c (purge_empty_blocks): ... here.
7006         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
7007         (maybe_tidy_empty_bb): Delete prototype.
7008         (purge_empty_blocks): Declare.
7009
7010 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
7011
7012         PR rtl-optimization/42249
7013         * sel-sched.c (try_replace_dest_reg): When chosen register
7014         and original register is the same, do not bail out early, but
7015         still check all original insns for validity of replacing destination
7016         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
7017         in this case.
7018
7019 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
7020
7021         PR c/42721
7022         Port from no-undefined-overflow branch:
7023         2009-03-09  Richard Guenther  <rguenther@suse.de>
7024
7025         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
7026
7027 2010-01-14  Richard Guenther  <rguenther@suse.de>
7028
7029         PR lto/42665
7030         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
7031
7032 2010-01-14  Ira Rosen  <irar@il.ibm.com>
7033
7034         PR tree-optimization/42709
7035         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
7036         as scalar type in creation of constant vector operand.
7037
7038 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7039
7040         PR testsuite/42414
7041         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
7042         (check-parallel-%): Match `testsuite' directory component only
7043         at the end.
7044
7045 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
7046
7047         PR translation/39521
7048         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
7049         strings with _().
7050
7051 2010-01-13  Richard Guenther  <rguenther@suse.de>
7052
7053         PR tree-optimization/42730
7054         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
7055         offset zero.
7056
7057 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
7058
7059         PR target/pr42542
7060         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
7061         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
7062         them signed.
7063
7064 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
7065
7066         * config/bfin/libgcc-bfin.ver: Regenerate based on current
7067         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
7068         ___umulsi3_highpart.
7069
7070         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
7071         rather than schedule_insns if the pass is enabled.
7072
7073 2010-01-13  Martin Jambor  <mjambor@suse.cz>
7074
7075         PR tree-optimization/42704
7076         * tree-sra.c (sra_modify_assign): Do not delete assignments to
7077         SSA_NAMEs.
7078
7079 2010-01-13  Martin Jambor  <mjambor@suse.cz>
7080
7081         PR tree-optimization/42703
7082         * tree-sra.c (analyze_access_subtree): Check that we can build a
7083         reference to the original data within the aggregate.
7084
7085 2010-01-13  Richard Guenther  <rguenther@suse.de>
7086
7087         PR tree-optimization/42705
7088         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
7089
7090 2010-01-13  Richard Guenther  <rguenther@suse.de>
7091
7092         PR middle-end/42716
7093         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
7094
7095 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
7096
7097         PR debug/41371
7098         * var-tracking.c (values_to_unmark): New variable.
7099         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
7100         values_to_unmark vector.  Moved body to...
7101         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
7102         instead queue it into values_to_unmark vector.
7103         (vt_find_locations): Free values_to_unmark vector.
7104
7105 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
7106
7107         * config/s390/s390.c (override_options): Set
7108         default of max-pending-list-length to 256
7109
7110 2010-01-13  Richard Guenther  <rguenther@suse.de>
7111
7112         PR lto/42678
7113         * tree-pass.h (PROP_gimple_lcx): New.
7114         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
7115         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
7116         before the final cleanup_eh.
7117         (dump_properties): Dump PROP_gimple_lcx.
7118         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
7119         (tree_lower_complex_O0): Remove.
7120         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
7121         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
7122         tree_lower_complex, schedule TODO_update_ssa.
7123         * lto-streamer-out.c (output_function): Stream the functions
7124         properties.
7125         * lto-streamer-in.c (input_function): Likewise.
7126         (lto_read_body): Do not override them here.
7127
7128 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
7129
7130         PR c/42708
7131         * c-typeck.c (build_c_cast): Fold value cast to union type before
7132         wrapping it in a CONSTRUCTOR.
7133
7134 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
7135
7136         PR rtl-optimization/42699
7137         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
7138         involved.
7139
7140 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7141
7142         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
7143         SUBTARGET_WARN_UNUSED_SPEC): Move ...
7144         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
7145         SUBTARGET_WARN_UNUSED_SPEC): ... here
7146         * config/mips/iris5.h (LIBGCC_SPEC): Define.
7147
7148 2010-01-12  Julian Brown  <julian@codesourcery.com>
7149
7150         * config/arm/neon-schedgen.ml (Utils): Don't try to
7151         open missing module.
7152         (find_with_result): New.
7153
7154 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
7155
7156         PR debug/42662
7157         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
7158         sharing when canonicalizing ({lt,ge}u (plus a b) b).
7159
7160         PR tree-optimization/42645
7161         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
7162         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
7163         decl_map, set processing_debug_stmt to -1 and return name without
7164         any remapping.
7165
7166 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
7167
7168         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
7169         binutils version, and reword target configuration description.
7170
7171 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
7172
7173         * config/avr/avr.h (LINKER_NAME): Remove.
7174
7175 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
7176
7177         PR target/42416
7178         * config/rs6000/rs6000.c (rs6000_override_options): On targets
7179         that support VSX, warn for -mno-altivec if vsx is not disabled,
7180         and disable vsx.
7181
7182 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
7183             Shujing Zhao  <pearly.zhao@oracle.com>
7184
7185         PR translation/42469
7186         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
7187         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
7188         character between option name and help text.
7189         * c.opt (imultilib): Likewise.
7190
7191 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
7192
7193         * lto-streamer-out.c (output_unreferenced_globals): Output static
7194         variables.
7195
7196 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
7197
7198         PR rtl-optimization/42621
7199         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
7200         optimizing for size.
7201         (duplicate_computed_gotos): Remove now-redundant check.
7202
7203 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
7204
7205         PR target/37454
7206         * configure.ac: Save and restore LDFLAGS and LIBS
7207         * configure: Regenerate.
7208
7209 2010-01-10  Richard Guenther  <rguenther@suse.de>
7210
7211         PR middle-end/42667
7212         * builtins.c (fold_builtin_strlen): Add type argument and
7213         convert the resulting length to it.
7214         (fold_builtin_1): Adjust.
7215
7216 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
7217
7218         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
7219         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
7220         1 insn.
7221         (num_insns_constant_wide): Adjust for that change.
7222
7223 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7224
7225         PR debug/42631
7226         * web.c (union_defs): Add used argument, to combine uses of
7227         uninitialized regs.
7228         (entry_register): Adjust type and tests of used argument.
7229         (web_main): Widen used for new use.  Pass it to union_defs.
7230         * df.h (union_defs): Adjust prototype.
7231
7232 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7233
7234         PR debug/42630
7235         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
7236         uses in new incoming argument.  Free body.
7237         (reset_debug_uses_in_loop): New.
7238         (analyze_insn_to_expand_var): Call the latter if the former found
7239         anything.  Fix whitespace.  Reject invalid dest overlaps before
7240         going through all insns in the loop.
7241
7242 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7243
7244         PR debug/42629
7245         * haifa-sched.c (dying_use_p): Debug insns don't count.
7246
7247 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7248
7249         PR middle-end/42363
7250         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
7251         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
7252         (verify_gimple_call): Reject LHS in noreturn calls.
7253
7254 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7255
7256         PR debug/42604
7257         PR debug/42395
7258         * tree-vect-loop-manip.c (adjust_info): New type.
7259         (adjust_vec): New pointer to vector.
7260         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
7261         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
7262         (slpeel_update_phis_for_duplicate_loop): Use them.
7263         (slpeel_update_phi_nodes_for_guard1): Likewise.
7264         (slpeel_update_phi_nodes_for_guard2): Likewise.
7265         (slpeel_tree_peel_loop_to_edge): Likewise.
7266         (vect_update_ivs_after_vectorizer): Likewise.
7267
7268 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7269
7270         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
7271         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
7272
7273 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7274
7275         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
7276         bogus uninitialized warning.
7277
7278 2010-01-09  Richard Guenther  <rguenther@suse.de>
7279
7280         PR middle-end/42512
7281         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
7282         the evolution is compatible with the initial condition.
7283
7284 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
7285
7286         * gcc.c (process_command): Update copyright notice dates.
7287         * gcov.c (print_version): Likewise.
7288         * gcov-dump.c (print_version): Likewise.
7289         * mips-tfile.c (main): Likewise.
7290         * mips-tdump.c (main): Likewise.
7291
7292 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
7293
7294         PR target/41885
7295         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
7296         (rotlhi3): Delete.
7297         (rotlhi3_8): Delete.
7298         (rotlsi3): Delete.
7299         (rotlsi3_8): Delete.
7300         (rotlsi3_16): Delete.
7301         (rotlsi3_24): Delete.
7302         (rotl<mode>3): New.
7303         (*rotw<mode>3): New.
7304         (*rotb<mode>3): New.
7305         * config/avr/avr.c (avr_rotate_bytes): New function.
7306         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
7307
7308 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
7309
7310         PR target/37454
7311         * configure.ac: Modify -rdynamic check.
7312         * configure: Regenerate.
7313
7314 2010-01-08  DJ Delorie  <dj@redhat.com>
7315
7316         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
7317         register popping order.
7318
7319 2010-01-08  Richard Guenther  <rguenther@suse.de>
7320
7321         PR lto/42528
7322         * c.opt (fsigned-char): Also let LTO handle this option.
7323         (funsigned-char): Likewise.
7324
7325 2010-01-07  Richard Guenther  <rguenther@suse.de>
7326
7327         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
7328         (gimple_op): Likewise.
7329         (gimple_op_ptr): Likewise.
7330         (gimple_assign_set_lhs): Remove gcc_assert.
7331         (gimple_assign_set_rhs1): Likewise.
7332         (gimple_assign_set_rhs2): Likewise.
7333         (gimple_call_set_lhs): Likewise.
7334         (gimple_call_set_fn): Likewise.
7335         (gimple_call_set_fndecl): Likewise.
7336         (gimple_call_fndecl): Likewise.
7337         (gimple_call_return_type): Likewise.
7338         (gimple_call_set_chain): Likewise.
7339         (gimple_call_num_args): Likewise.
7340         (gimple_call_set_arg): Likewise.
7341         (gimple_cond_set_code): Likewise.
7342         (gimple_cond_set_lhs): Likewise.
7343         (gimple_cond_set_rhs): Likewise.
7344         (gimple_cond_set_true_label): Likewise.
7345         (gimple_cond_set_false_label): Likewise.
7346         (gimple_label_set_label): Likewise.
7347         (gimple_goto_set_dest): Likewise.
7348         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
7349         (gimple_debug_bind_get_value): Likewise.
7350         (gimple_debug_bind_get_value_ptr): Likewise.
7351         (gimple_debug_bind_set_var): Likewise.
7352         (gimple_debug_bind_set_value): Likewise.
7353         (gimple_debug_bind_reset_value): Likewise.
7354         (gimple_debug_bind_has_value_p): Likewise.
7355         (gimple_return_retval_ptr): Remove gcc_assert.
7356         (gimple_return_retval): Likewise.
7357         (gimple_return_set_retval): Likewise.
7358         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
7359         (safe_referenced_var_iterator): Remove.
7360         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
7361         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
7362         (fill_referenced_var_vec): Remove.
7363         (first_readonly_imm_use): Remove redundant gcc_assert.
7364         (phi_arg_index_from_use): Combine gcc_asserts.
7365         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
7366         (first_imm_use_stmt): Remove redundant gcc_assert.
7367         * tree-cfg.c (verify_gimple_call): Verify function and chain
7368         operands.  Verify arguments.
7369         (verify_types_in_gimple_stmt): Verify condition code and labels.
7370
7371 2010-01-07  Richard Guenther  <rguenther@suse.de>
7372
7373         PR tree-optimization/42641
7374         * sese.c (rename_map_elt_info): Use the SSA name version, do
7375         not hash pointers.
7376
7377 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
7378
7379         PR tree-optimization/42625
7380         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
7381         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
7382
7383 2010-01-07  Duncan Sands  <baldrick@free.fr>
7384
7385         * Makefile.in (PLUGIN_HEADERS): Add version.h.
7386
7387 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
7388
7389         PR target/42511
7390         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
7391         note itself is not function_invariant_p.
7392
7393 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
7394
7395         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
7396         Do not add the DF_NOTE problem.
7397         * store-motion.c (execute_rtl_store_motion): Likewise.
7398
7399 2010-01-07  Martin Jambor  <mjambor@suse.cz>
7400
7401         PR tree-optimization/42157
7402         * tree-sra.c (compare_access_positions): Stabilize sort if both
7403         accesses have integer types, return zero immediately if they are the
7404         same.
7405
7406 2010-01-06  Richard Henderson  <rth@redhat.com>
7407
7408         PR middle-end/41883
7409         * haifa-sched.c (add_to_note_list): Merge into ...
7410         (concat_note_lists): ... here, and ...
7411         (unlink_other_notes, rm_other_notes): Merge into...
7412         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
7413         NOTE_INSN_EPILOGUE_BEG.
7414
7415 2010-01-06  Richard Guenther  <rguenther@suse.de>
7416
7417         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
7418         not inline regular functions into always-inline functions.
7419
7420 2010-01-06  Nick Clifton  <nickc@redhat.com>
7421
7422         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
7423         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
7424         used together.
7425         (OVERRIDE_OPTIONS): Delete.
7426         (OPTIMIZATION_OPTIONS): Define.
7427         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
7428         * config/rx/rx.c (rx_handle_option): Issue an error message if
7429         -mcpu=rx200 and -fpu are used together.
7430         (rx_set_optimization_options): New function.  Issue an error
7431         message if an optimization attribute attempts to reset the FPU/
7432         math optimization pairing.
7433         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
7434         * config/rx/rx.opt: Set the default to 32-bit doubles.
7435         * config/rx/t-rx: Add multilibs for -nofpu option.
7436         * doc/invoke.texi: Update documentation of RX options.
7437
7438 2010-01-06  Richard Guenther  <rguenther@suse.de>
7439
7440         * tree-ssa-pre.c (name_to_id): New global.
7441         (alloc_expression_id): Simplify SSA name handling.
7442         (lookup_expression_id): Likewise.
7443         (init_pre): Zero name_to_id.
7444         (fini_pre): Free it.
7445
7446 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
7447
7448         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
7449
7450 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
7451
7452         PR target/42542
7453         * config/i386/sse.md (smaxv2di3): New.
7454         (umaxv2di3): Likewise.
7455         (sminv2di3): Likewise.
7456         (uminv2di3): Likewise.
7457
7458 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7459
7460         PR target/42564
7461         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
7462         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
7463         (legitimize_tls_address): Likewise.
7464         (sparc_tls_referenced_p): Likewise.
7465         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
7466         and adjust calls to legitimize_pic_address.
7467         (legitimate_constant_p) Use sparc_tls_referenced_p.
7468         (legitimate_pic_operand_p): Likewise.
7469         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
7470         (sparc_tls_symbol_ref_1): Delete.
7471         (sparc_tls_referenced_p): Make static, recognize specific patterns.
7472         (legitimize_tls_address): Make static, handle CONST patterns.
7473         (legitimize_pic_address): Make static, remove unused parameter and
7474         adjust recursive calls.
7475         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
7476         and adjust call to legitimize_pic_address.
7477         (sparc_output_mi_thunk): Likewise.
7478
7479 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
7480             H.J. Lu  <hongjiu.lu@intel.com>
7481
7482         PR target/42542
7483         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
7484         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
7485         operands to make them signed.
7486
7487         Revert:
7488         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7489
7490         PR target/42542
7491         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
7492         GTU to GT for V4SI and V2DI.
7493
7494         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
7495         (umin<mode>3): Removed.
7496         (uminv8hi3): New.
7497         (uminv4si3): Likewise.
7498
7499 2010-01-05  Martin Jambor  <mjambor@suse.cz>
7500
7501         PR tree-optimization/42462
7502         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
7503         current_function_decl to helper functions and macros.
7504
7505 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7506
7507         PR bootstrap/41771
7508         * flags.h: Don't include real.h.
7509         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
7510         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
7511         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
7512         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
7513         * dominance.c: Update copyright.
7514         * gimple.c (walk_gimple_op): Remove inline.
7515         * tree-ssa-reassoc.c: Include real.h.
7516         * Makefile.in (FLAGS_H): Remove $(REAL_H).
7517         (tree-ssa-reassoc.o): Depend on $(REAL_H).
7518
7519 2010-01-05  Nick Clifton  <nickc@redhat.com>
7520
7521         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
7522         register to push into the stack frame when the accumulator has to
7523         be saved during interrupts.
7524
7525 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
7526
7527         * doc/invoke.texi: Remove the documentation about option
7528         -Wunreachable-code.
7529         * common.opt (Wunreachable-code):  Preserved for backward
7530         compatibility.
7531         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
7532         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
7533         the backward compatibility flag section.
7534
7535 2010-01-05  Richard Guenther  <rguenther@suse.de>
7536
7537         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
7538
7539 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
7540
7541         PR other/42611
7542         * cfgexpand.c (expand_one_var): Diagnose too large variables.
7543
7544         PR tree-optimization/42508
7545         * tree-sra.c (convert_callers): Check for recursive call
7546         by comparing cgraph nodes instead of decls.
7547         (modify_function): Call ipa_modify_formal_parameters also
7548         on all same_body aliases.
7549
7550         * cgraphunit.c (cgraph_materialize_all_clones): Compare
7551         cgraph nodes when checking for same_body aliases.
7552
7553 2010-01-05  Richard Guenther  <rguenther@suse.de>
7554
7555         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
7556         allocation and lookup.
7557         (get_or_alloc_expr_for_constant): Likewise.
7558         (phi_translate): Sink allocation.
7559
7560 2010-01-04  Richard Guenther  <rguenther@suse.de>
7561
7562         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
7563         a new entry only if needed.
7564         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
7565         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
7566         hashtable lookup.
7567         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
7568         the result array.
7569         (phi_translate): Handle CONSTANTs early.
7570
7571 2010-01-04  Martin Jambor  <mjambor@suse.cz>
7572
7573         PR tree-optimization/42398
7574         * tree-sra.c (struct access): Removed flag grp_different_types.
7575         (dump_access): Do not dump the removed flag.
7576         (sort_and_splice_var_accesses): Do not set the removed flag.
7577         (sra_modify_expr): Check for type compatibility directly.
7578
7579 2010-01-04  Martin Jambor  <mjambor@suse.cz>
7580
7581         PR tree-optimization/42366
7582         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
7583         edges with variable number of parameters.
7584         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
7585         flag instead of asserting it.
7586         (ipa_read_node_info): Read uses_analysis_done flag.
7587
7588 2010-01-04  Richard Guenther  <rguenther@suse.de>
7589
7590         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
7591         iterative_hash_* as intended.
7592         (vn_reference_compute_hash): Likewise.  Simplify hashing
7593         SSA names.
7594         (vn_reference_lookup_2): Likewise.
7595         (vn_nary_op_compute_hash): Likewise.
7596         (vn_phi_compute_hash): Likewise.
7597         (expressions_equal_p): Remove strange code.
7598         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
7599         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
7600         (bitmap_insert_into_set_1): Take value-id as parameter.
7601         (add_to_value): Pass it.
7602         (bitmap_insert_into_set): Likewise.
7603         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
7604
7605 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
7606
7607         PR driver/42442
7608         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
7609         (do_self_spec): For switches with SWITCH_IGNORE set set also
7610         SWITCH_IGNORE_PERMANENTLY.
7611         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
7612         of SWITCH_IGNORE.
7613
7614 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
7615
7616         * lto-streamer-out.c (output_unreferenced_globals): Output the full
7617         tree of an unreferenced global var.
7618
7619 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7620
7621         PR target/42542
7622         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
7623         GTU to GT for V4SI and V2DI.
7624
7625         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
7626         (umin<mode>3): Removed.
7627         (uminv8hi3): New.
7628         (uminv4si3): Likewise.
7629
7630 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7631
7632         PR lto/42581
7633         * collect2.c (main): Turn on trace in collect2 if -v is passed
7634         to gcc with LTO.
7635
7636 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
7637
7638         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
7639         description of expression operand.
7640
7641 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
7642
7643         * configure.ac: Add install-html to target_list for Make-hooks.
7644         * configure: Regenerate.
7645         * fortran/Make-lang.in (F95_HTMLFILES): New.
7646         (fortran.html): Use it.
7647         (fortran.install-html): New.
7648         * Makefile.in (install-html): Add lang.install-html.
7649         * java/Make-lang.in (JAVA_HTMLFILES): New.
7650         (java.html): Use it.
7651         (java.install-html): New.
7652         * objc/Make-lang.in (objc.install-html): New.
7653         * objcp/Make-lang.in (obj-c++.install-html): New.
7654         * cp/Make-lang.in (c++.install-html): New.
7655         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
7656         * lto/Make-lang.in (lto.install-html): New.
7657
7658 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
7659
7660         PR lto/42520
7661         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
7662
7663 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
7664
7665         PR rtl-optimization/41862
7666         * store-motion.c (store_killed_in_insn, compute_store_table,
7667         remove_reachable_equiv_notes, replace_store_insn,
7668         build_store_vectors): Ignore all DEBUG_INSNs.
7669
7670 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
7671
7672         PR lto/41564
7673         * common.opt: Add dumpdir.
7674
7675         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
7676         isn't specified.
7677         (option_map): Add --dumpdir.
7678
7679         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
7680
7681         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
7682
7683         * opts.c (decode_options): Try dump_dir_name first if
7684         dump_base_name isn't an absolute path.
7685         (common_handle_option): Handle OPT_dumpdir.
7686
7687         * toplev.c (dump_dir_name): New.
7688         (print_switch_values): Also ignore -dumpdir.
7689
7690         * toplev.h (dump_dir_name): New.
7691
7692 2010-01-03  Richard Guenther  <rguenther@suse.de>
7693
7694         PR tree-optimization/42589
7695         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
7696         double-word expansion of bswap32.
7697
7698 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
7699
7700         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
7701         with BLOCK_FOR_INSN.
7702         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
7703         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
7704         noce_process_if_block): Likewise.
7705         * gcse.c (compute_local_properties, insert_expr_in_table,
7706         insert_set_in_table, canon_list_insert, find_avail_set,
7707         pre_insert_copy_insn): Likewise.
7708
7709         * basic-block.h (BLOCK_NUM): Move from here...
7710         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
7711
7712 2010-01-03  Richard Guenther  <rguenther@suse.de>
7713
7714         PR tree-optimization/42438
7715         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
7716         contains_may_not_return_call flag.
7717         (BB_MAY_NOTRETURN): New.
7718         (valid_in_sets): Trapping nary operations are not valid
7719         in blocks that may not return.
7720         (insert_into_preds_of_block): Remove check for trapping expressions.
7721         (compute_avail): Compute also BB_MAY_NOTRETURN.
7722
7723 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
7724
7725         * doc/invoke.texi: Add 2010 to copyright years.
7726
7727 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
7728
7729         * config/sparc/sparc.c: Fix formatting nits.
7730
7731 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
7732             Alexander Monakov  <amonakov@ispras.ru>
7733
7734         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
7735
7736 2010-01-02  Richard Guenther  <rguenther@suse.de>
7737
7738         PR middle-end/42577
7739         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
7740         (simplify_switch_using_ranges): Mark to be removed edges
7741         as non-executable.
7742
7743 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7744
7745         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
7746
7747         * collect2.c (scan_libraries): Add missing argument in call to
7748         scan_prog_file.
7749
7750 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
7751
7752         PR target/42448
7753         * config/alpha/predicates.md (aligned_memory_operand): Return false
7754         for CQImode.
7755         (unaligned_memory_operand): Return true for CQImode.
7756         * config/alpha/alpha.c (get_aligned_mem): Assert that location
7757         doesn not cross aligned SImode word boundary.
7758
7759 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
7760
7761         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
7762         Remove.
7763         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
7764         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
7765
7766 2010-01-02  Richard Guenther  <rguenther@suse.de>
7767
7768         PR lto/41597
7769         * toplev.c (compile_file): Emit LTO marker properly.  Change
7770         it to __gnu_lto_v1.
7771         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
7772
7773 2010-01-01  Richard Guenther  <rguenther@suse.de>
7774
7775         PR debug/42455
7776         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
7777
7778 2010-01-01  Richard Guenther  <rguenther@suse.de>
7779
7780         PR c/42570
7781         * c-decl.c (grokdeclarator): For zero-size arrays force
7782         structural equality checks as layout_type does.
7783
7784 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
7785
7786         * builtins.c: Update copyright to 2010.
7787
7788 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
7789
7790         PR lto/42531
7791         * lto-streamer-out.c (produce_asm): Revert the last change.
7792         (copy_function): Likewise.
7793
7794         * lto-streamer.c (lto_get_section_name): Skip any leading
7795         asterisk in name.
7796
7797 2010-01-01  Richard Guenther  <rguenther@suse.de>
7798
7799         PR middle-end/42559
7800         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
7801         for LABEL_DECLs.
7802
7803 \f
7804 Copyright (C) 2010 Free Software Foundation, Inc.
7805
7806 Copying and distribution of this file, with or without modification,
7807 are permitted in any medium without royalty provided the copyright
7808 notice and this notice are preserved.