OSDN Git Service

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