OSDN Git Service

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