OSDN Git Service

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