OSDN Git Service

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