OSDN Git Service

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