OSDN Git Service

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