OSDN Git Service

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