OSDN Git Service

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