OSDN Git Service

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