OSDN Git Service

bca24140e9eb7dfde9ed0b871f7d4502637df78c
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-04-28  Mike Stump  <mikestump@comcast.net>
2
3         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
4
5 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
6
7         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
8         record or union type with RECORD_OR_UNION_TYPE_P predicate.
9         (lto_input_ts_type_tree_pointers): Likewise.
10         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
11         (lto_output_ts_type_tree_pointers): Likewise.
12
13 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
14
15         Uniquization of constants at the Tree level
16         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
17         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
18         bit to the end.
19         (tree_output_constant_def): Declare.
20         * gimplify.c (gimplify_init_constructor): When using block copy, first
21         uniquize the constant constructor on the RHS.
22         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
23         DECL_IN_CONSTANT_POOL flag.
24         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
25         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
26         constant pool.
27         (assemble_variable): Deal with symbols belonging to the tree constant
28         pool.
29         (get_constant_section): Add ALIGN parameter and simplify.
30         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
31         (assemble_constant_contents): Use the expression of the VAR_DECL.
32         (output_constant_def_contents): Use the alignment of the VAR_DECL.
33         (tree_output_constant_def): New global function.
34         (mark_constant): Use the expression of the VAR_DECL.
35         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
36         its expression.
37         (output_object_block): Likewise and assemble the expression.
38
39 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
40
41         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
42         hash_tree, eq_tree): New tree hash table.
43         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
44         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
45         lto_orig_address_remove): Reimplement.
46
47 2010-04-28  Xinliang David Li  <davidxl@google.com>
48
49         PR c/42643
50         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
51         (compute_uninit_opnds_pos): New function.
52         (is_non_loop_exit_postdominating): New function.
53         (compute_control_dep_chain): New function.
54         (find_pdom): New function.
55         (convert_control_dep_chain_into_preds): New function.
56         (find_predicates): New function.
57         (find_control_equiv_block): New function.
58         (collect_phi_def_edges): New function.
59         (find_def_preds): New function.
60         (find_dom): New function.
61         (dump_predicates): New function.
62         (get_cmp_code): New function.
63         (is_value_included_in): New function.
64         (find_matching_predicate_in_rest_chains): New function.
65         (use_pred_not_overlap_with_undef_path_pred): New function.
66         (is_use_properly_guarded): New function.
67         (normalize_cond_1): New function.
68         (is_and_or_or): New function.
69         (normalize_cond): New function.
70         (is_gcond_subset_of): New function.
71         (is_subset_of_any): New function.
72         (is_or_set_subset_of): New function.
73         (is_and_set_subset_of): New function.
74         (is_norm_cond_subset_of): New function.
75         (is_pred_expr_subset_of): New function.
76         (is_pred_chain_subset_of): New function.
77         (is_included_in): New function.
78         (is_superset_of): New function.
79         (find_uninit_use): New function.
80         (warn_uninitialized_phi): New function.
81         (compute_possibly_undefined_names): New function.
82         (ssa_undefined_value_p): New function.
83         (execute_late_warn_uninitialized): New function.
84         * tree-ssa.c (ssa_undefined_value_p): Removed.
85         (warn_uninit): Changed to extern.
86         (warn_uninitialized_phi): Removed.
87         (warn_uninitialized_vars): Changed to extern.
88         (execute_late_warn_uninitialized): Removed
89         * tree-flow.h: Add new prototypes.
90         * timevar.def: Add new time variable.
91         * Makefile.in: Add new build file.
92
93 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
94
95         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
96         type if available.
97
98 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
99
100         PR target/22224
101         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
102
103 2010-04-28  Martin Jambor  <mjambor@suse.cz>
104
105         * cgraph.h (struct cgraph_node): New field indirect_calls.
106         (struct cgraph_indirect_call_info): New type.
107         (struct cgraph_edge): Removed field indirect_call. New fields
108         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
109         (cgraph_create_indirect_edge): Declare.
110         (cgraph_make_edge_direct): Likewise.
111         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
112         * ipa-prop.h (struct ipa_param_call_note): Removed.
113         (struct ipa_node_params): Removed field param_calls.
114         (ipa_create_all_structures_for_iinln): Declare.
115         * cgraph.c: Described indirect edges and uids in initial comment.
116         (cgraph_add_edge_to_call_site_hash): New function.
117         (cgraph_edge): Search also among the indirect edges, use
118         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
119         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
120         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
121         site hash.
122         (initialize_inline_failed): Assign a reason to indirect edges.
123         (cgraph_create_edge_1): New function.
124         (cgraph_create_edge): Moved some functionality to
125         cgraph_create_edge_1.
126         (cgraph_create_indirect_edge): New function.
127         (cgraph_edge_remove_callee): Add an assert checking for
128         non-indirectness.
129         (cgraph_edge_remove_caller): Special-case indirect edges.
130         (cgraph_remove_edge): Likewise.
131         (cgraph_set_edge_callee): New function.
132         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
133         (cgraph_make_edge_direct): New function.
134         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
135         the declaration of the call statement matches.
136         (cgraph_node_remove_callees): Special-case indirect edges.
137         (cgraph_clone_edge): Likewise.
138         (cgraph_clone_node): Clone also the indirect edges.
139         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
140         indirect_call, dump count of indirect_calls edges.
141         * ipa-prop.c (iinlining_processed_edges): New variable.
142         (ipa_note_param_call): Create indirect edges instead of
143         creating notes.  New parameter node.
144         (ipa_analyze_call_uses): New parameter node, pass it on to
145         ipa_note_param_call.
146         (ipa_analyze_stmt_uses): Likewise.
147         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
148         (print_edge_addition_message): Work on edges rather than on notes.
149         (update_call_notes_after_inlining): Likewise, renamed to
150         update_indirect_edges_after_inlining.
151         (ipa_create_all_structures_for_iinln): New function.
152         (ipa_free_node_params_substructures): Do not free notes.
153         (ipa_edge_duplication_hook): Propagate bits within
154         iinlining_processed_edges bitmap.
155         (ipa_node_duplication_hook): Do not duplicate notes.
156         (free_all_ipa_structures_after_ipa_cp): Renamed to
157         ipa_free_all_structures_after_ipa_cp.
158         (free_all_ipa_structures_after_iinln): Renamed to
159         ipa_free_all_structures_after_iinln.g
160         (ipa_write_param_call_note): Removed.
161         (ipa_read_param_call_note): Removed.
162         (ipa_write_indirect_edge_info): New function.
163         (ipa_read_indirect_edge_info): Likewise.
164         (ipa_write_node_info): Do not stream notes, do stream information
165         in indirect edges.
166         (ipa_read_node_info): Likewise.
167         (lto_ipa_fixup_call_notes): Removed.
168         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
169         * ipa-inline.c (pass_ipa_inline): Likewise.
170         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
171         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
172         * tree-inline.c (copy_bb): Removed an unnecessary double check for
173         is_gimple_call.
174         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
175         edges.
176         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
177         (output_cgraph): Stream also indirect edges.
178         (lto_output_edge): Added capability to stream indirect edges.
179         (input_edge): Likewise.
180         (input_cgraph_1): Likewise.
181
182 2010-04-28  Richard Guenther  <rguenther@suse.de>
183
184         PR tree-optimization/43879
185         PR tree-optimization/43909
186         * tree-ssa-structalias.c (struct variable_info): Add
187         only_restrict_pointers flag.
188         (new_var_info): Initialize it.  Increment stats.total_vars here.
189         (create_function_info_for): Do not increment stats.total_vars
190         here.
191         (get_function_part_constraint): Fix build with C++.
192         (insert_into_field_list): Remove.
193         (push_fields_onto_fieldstack): Properly merge fields.
194         (create_variable_info_for): Split and simplify.
195         (create_variable_info_for_1): New piece.
196         (intra_create_variable_infos): Properly make restrict constraints
197         from parameters.
198
199 2010-04-28  Richard Guenther  <rguenther@suse.de>
200
201         PR c++/43880
202         * tree-inline.c (copy_bind_expr): Also copy bind expr vars
203         value-exprs.
204
205 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
206             Jan Hubicka <hubicka@ucw.cz>
207
208         * doc/invoke.texi (-Wsuggest-attribute=const,
209         -Wsuggest-attribute=pure): Document.
210         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
211         (function_always_visible_to_compiler_p,
212         suggest_attribute, warn_function_pure, warn_function_const):
213         New functions.
214         (check_call): Improve debug info.
215         (analyze_function): Do not check availability.
216         (add_new_function): Check availability.
217         (propagate): Output warnings.
218         (skip_function_for_local_pure_const): New function.
219         (local_pure_const): Use it; output warnings.
220         * common.opt (Wsuggest-attribute=const,
221         Wsuggest-attribute=pure): New.
222
223 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
224
225         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
226         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
227         or DW_CFA_def_cfa_offset{,_sf}.
228
229 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
230
231         * tree.h: Fix truncated long macros.
232
233 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
234
235         * collect2.c (TARGET_64BIT): Redefine to target's default.
236         * tlink.c: Likewise.
237         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
238         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
239         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
240         for underscoring __USER_LABEL_PREFIX__.
241         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
242         (SUB_LINK_ENTRY32): New.
243         (SUB_LINK_ENTRY64): New.
244         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
245         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
246         (SUB_LINK_ENTRY64): New.
247         (SUB_LINK_ENTRY): New.
248         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
249         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
250         x64 target is choosen.
251         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
252         * configure: Regenerated.
253         * configure.ac (leading-mingw64-underscores): Option added.
254
255 2010-04-27  Jan Hubicka  <jh@suse.cz>
256
257         * doc/invoke.texi (-fipa-profile): Document.
258         * opts.c (decode_options): Enable ipa-profile at -O1.
259         * timevar.def (TV_IPA_PROFILE): Define.
260         * common.opt (fipa-profile): Add.
261         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
262         flag for clones.
263         (cgraph_propagate_frequency): Handle only local ones.
264         * tree-pass.h (pass_ipa_profile): Declare.
265         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
266         (pass_ipa_profile): Use TV_IPA_PROFILE.
267         * ipa.c (ipa_profile): New function.
268         (gate_ipa_profile): Likewise.
269         (pass_ipa_profile): New global variable.
270         * passes.c (pass_ipa_profile): New.
271
272 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
273
274         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
275
276 2010-04-27  Martin Jambor  <mjambor@suse.cz>
277
278         PR middle-end/43812
279         * ipa.c (dissolve_same_comdat_group_list): New function.
280         (function_and_variable_visibility): Call
281         dissolve_same_comdat_group_list when comdat group contains external or
282         newly local nodes.
283         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
284         lists are circular and that they contain only DECL_ONE_ONLY nodes.
285
286 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
287
288         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
289         (const_hash_1) <VECTOR_CST>: New case.
290         (compare_constant) <VECTOR_CST>: Likewise.
291         <ADDR_EXPR>: Deal with LABEL_REFs.
292         (copy_constant) <VECTOR_CST>: New case.
293
294 2010-04-27  Jan Hubicka  <jh@suse.cz>
295
296         * cgraph.c (cgraph_propagate_frequency): New function.
297         * cgraph.h (cgraph_propagate_frequency): Declare.
298         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
299         cgraph_propagate_frequency.
300
301 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
302
303         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
304
305 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
306
307         PR target/40657
308         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
309         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
310         here to determine which regs to push and how much stack to reserve.
311
312 2010-04-27  Jie Zhang  <jie@codesourcery.com>
313
314         * doc/gimple.texi (gimple_statement_with_ops): Remove
315         addresses_taken field.
316         (gimple_statement_with_memory_ops): Likewise.
317
318 2010-04-27  Jan Hubicka  <jh@suse.cz>
319
320         * tree-inline.c (eni_inlining_weights): Remove.
321         (estimate_num_insns): Special case more builtins.
322
323 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
324
325         PR c/32207
326         * c-typeck.c (build_binary_op): Move forward check for comparison
327         pointer with null pointer constant and adjust the diagnostic message.
328
329 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
330
331         PR lto/42776
332         * configure.ac (gcc_cv_as_section_has_align): Set if installed
333         binutils supports extended .section directive needed by LTO, or
334         warn if older binutils found.
335         (LTO_BINARY_READER): New AC_SUBST'd variable.
336         (LTO_USE_LIBELF): Likewise.
337         * gcc/config.gcc (lto_binary_reader): New target-specific configure
338         variable.
339         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
340         (LTO_USE_LIBELF): Likewise.
341         * configure: Regenerate.
342
343         * collect2.c (is_elf): Rename from this ...
344         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
345          object files in addition to ELF-formatted ones.
346         (scan_prog_file): Caller updated.  Also allow for LTO info marker
347         symbol to be prefixed or not by an extra underscore.
348
349         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
350         * config/i386/winnt.c: Also #include lto-streamer.h
351         (i386_pe_asm_named_section): Specify 1-byte section alignment for
352         LTO named sections.
353         (i386_pe_asm_output_aligned_decl_common): Add comment.
354         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
355
356 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
357
358         PR target/43889
359         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
360         Add missing earlyclobber for second alternative.
361
362 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
363
364         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
365         bits for artificial defs at the top of the block.
366         * fwprop.c (single_def_use_enter_block): Don't call it.
367
368 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
369
370         PR 43715
371         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
372         instead of "$gcc_cv_objdump -T".
373         Use "-undefined dynamic_lookup" on darwin.
374         * gcc/configure: Regenerate.
375
376 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
377
378         PR c/43893
379         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
380
381 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
382
383         * c-parser.c (struct c_token): Move location field up.
384         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
385         (struct c_declspecs): Convert typespec_word, storage_class, and
386         default_int_p into bitfields.
387         (struct c_declarator): Move loc field up.
388
389 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
390
391         * cfgloop.h (struct loop): Move can_be_parallel field up.
392         * ipa-prop.h (struct ip_node_params): Move bitfields up.
393         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
394         down.
395         (struct iv_cand): Convert pos field into a bitfield.
396         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
397         field up.
398         (struct _stmt_vec_info): Shuffle fields for better packing.
399
400 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
401
402         * varasm.c (IN_NAMED_SECTION): Remove guard.
403         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
404         (IN_NAMED_SECTION_P): ...this.
405         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
406         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
407
408 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
409
410         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
411         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
412         of shadowing it.  Fix comments.
413
414 2010-04-26  Jan Hubicka  <jh@suse.cz>
415
416         * cgraph.c (cgraph_create_node): Set node frequency to normal.
417         (cgraph_clone_node): Copy function frequency.
418         * cgraph.h (node_frequency): New enum
419         (struct cgraph_node): Add.
420         * final.c (rest_of_clean_state): Update.
421         * lto-cgraph.c (lto_output_node): Output node frequency.
422         (input_overwrite_node): Input node frequency.
423         * tre-ssa-loop-ivopts (computation_cost): Update.
424         * lto-streamer-out.c (output_function): Do not output function
425         frequency.
426         * predict.c (maybe_hot_frequency_p): Update and handle functions
427         executed once.
428         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
429         attribute lookup.
430         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
431         (compute_function_frequency): Set noreturn functions to be executed
432         once.
433         (choose_function_section): Update.
434         * lto-streamer-in.c (input_function): Do not input function frequency.
435         * function.c (allocate_struct_function): Do not initialize function
436         frequency.
437         * function.h (function_frequency): Remove.
438         (struct function): Remove function frequency.
439         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
440         (try_update): Update.
441         * tree-inline.c (initialize_cfun): Do not update function frequency.
442         * passes.c (pass_init_dump_file): Update.
443         * i386.c (ix86_compute_frame_layout): Update.
444         (ix86_pad_returns): Update.
445
446 2010-04-26  Jie Zhang  <jie@codesourcery.com>
447
448         PR tree-optimization/43833
449         * tree-vrp.c (range_int_cst_p): New.
450         (range_int_cst_singleton_p): New.
451         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
452         when both operands are constants.  Use range_int_cst_p in
453         BIT_IOR_EXPR case.
454
455 2010-04-26  Jan Hubicka  <jh@suse.cz>
456
457         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
458
459 2010-04-26  Richard Guenther  <rguenther@suse.de>
460
461         PR lto/43080
462         * gimple.c (gimple_decl_printable_name): Deal gracefully
463         with a NULL DECL_NAME.
464
465 2010-04-26  Richard Guenther  <rguenther@suse.de>
466
467         PR lto/42425
468         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
469         if emitting debug information and it is either a function
470         or a namespace decl.
471
472 2010-04-26  Ira Rosen  <irar@il.ibm.com>
473
474         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
475         determine if the statement is vectorizable, and a macro to access it.
476         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
477         Skip statements that can't be vectorized. If the analysis fails,
478         mark the statement as unvectorizable if vectorizing basic block.
479         (vect_compute_data_refs_alignment): Likewise.
480         (vect_verify_datarefs_alignment): Skip statements marked as
481         unvectorizable. Add print.
482         (vect_analyze_group_access): Skip statements that can't be
483         vectorized. If the analysis fails, mark the statement as
484         unvectorizable if vectorizing basic block.
485         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
486         * tree-vect-stmts.c (vectorizable_store): Fix the number of
487         generated stmts for SLP.
488         (new_stmt_vec_info): Initialize the new field.
489         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
490         statements marked as unvectorizable.
491
492 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
493
494         * c-common.c (flag_isoc1x): New.
495         (flag_isoc99): Update comment.
496         * c-common.h (flag_isoc1x): New.
497         (flag_isoc99): Update comment.
498         * c-cppbuiltin.c (builtin_define_float_constants): Also define
499         __<type>_DECIMAL_DIG__.
500         * c-opts.c (set_std_c1x): New.
501         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
502         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
503         * c.opt (-std=c1x, -std=gnu1x): New options.
504         * doc/cpp.texi: Mention -std=c1x.
505         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
506         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
507         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
508         * doc/standards.texi: Mention C1X.
509         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
510         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
511         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
512         Define for C1X.
513
514 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
515
516         * config/i386/gmon-sol2.c (_mcleanup): Change format string
517         placeholder from 0x%x to %#x.
518         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
519         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
520         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
521         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
522         * config/i386/i386.c (ix86_target_string): Ditto.
523         (output_pic_addr_const): Ditto.
524         (print_operand): Ditto.
525
526 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
527
528         * combine.c (find_split_point): Add third argument.  Use it
529         to find nested multiply-accumulate instructions.  Adjust calls.
530         (try_combine): Adjust call to find_split_point.
531
532 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
533
534         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
535
536 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
537
538         PR tree-optimization/41442
539         * fold-const.c (merge_truthop_with_opposite_arm): New function.
540         (fold_binary_loc): Call it.
541
542 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
543
544         * toplev.c (general_init): Set default for fdiagnostics-show-option.
545         * opts.c (common_handle_option): Allow disabling it.
546         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
547
548 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
549
550         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
551         between modes if both types are integral.
552
553 2010-04-23  Richard Guenther  <rguenther@suse.de>
554
555         PR tree-optimization/43572
556         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
557
558 2010-04-23  Richard Guenther  <rguenther@suse.de>
559
560         PR lto/43455
561         * tree-inline.c (tree_can_inline_p): Also check compatibility
562         of return types.
563
564 2010-04-23  Martin Jambor  <mjambor@suse.cz>
565
566         PR tree-optimization/43846
567         * tree-sra.c (struct access): New flag grp_assignment_read.
568         (build_accesses_from_assign): Set grp_assignment_read.
569         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
570         (enum mark_read_status): New type.
571         (analyze_access_subtree): Propagate grp_assignment_read, create
572         accesses also if both direct_read and root->grp_assignment_read.
573
574 2010-04-23  Martin Jambor  <mjambor@suse.cz>
575
576         PR middle-end/43835
577         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
578         function does not have type attributes.
579
580 2010-04-23  Richard Guenther  <rguenther@suse.de>
581
582         PR lto/42653
583         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
584         of FUNCTION_DECLs.
585
586 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
587
588         * sese.h (create_if_region_on_edge): Remove.
589
590         * sese.c (create_if_region_on_edge): Make static.
591
592         * tree-inline.c: Do not include ggc.h.
593
594         * expr.c: Do not include ggc.h.
595
596         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
597         dependencies.
598
599 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
600
601         PR target/43744
602         * config/sh/sh.c (find_barrier): Don't emit a constant pool
603         in the middle of insns for casesi_worker_2.
604
605 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
606
607         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
608
609 2010-04-22  Ira Rosen  <irar@il.ibm.com>
610
611         PR tree-optimization/43842
612         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
613         loop unrolling in update of exit phis. Fix comment.
614         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
615         least two reduction statements in the loop before starting SLP
616         analysis.
617
618 2010-04-22  Nick Clifton  <nickc@redhat.com>
619
620         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
621
622 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
623
624         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
625         to simplify a + ~a.
626
627 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
628
629         * tree-parloops.c (loop_parallel_p): New argument
630         parloop_obstack.  Pass it down.
631         (parallelize_loops): New variable parloop_obstack.  Initialize it,
632         pass it down, free it.
633
634         * tree-loop-linear.c (linear_transform_loops): Pass down
635         lambda_obstack.
636
637         * tree-data-ref.h (lambda_compute_access_matrices): New argument
638         of type struct obstack *.
639
640         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
641         scratch_obstack.  Initialize it, pass down, free it.
642
643         * lambda.h (lambda_loop_new): Remove.
644         (lambda_matrix_new, lambda_matrix_inverse)
645         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
646         argument of type struct obstack *.
647
648         * lambda-trans.c (lambda_trans_matrix_new): New argument
649         lambda_obstack.  Pass it down, use obstack allocation for ret.
650         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
651         it down.
652
653         * lambda-mat.c (lambda_matrix_get_column)
654         (lambda_matrix_project_to_null): Remove.
655         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
656         allocation for mat.
657         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
658         lambda_obstack.
659
660         * lambda-code.c (lambda_loop_new): New function.
661         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
662         (lambda_compute_auxillary_space, lambda_compute_target_space)
663         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
664         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
665         (build_access_matrix): New argument lambda_obstack.  Use obstack
666         allocation for am.
667         (lambda_compute_step_signs, lambda_compute_access_matrices): New
668         argument lambda_obstack.  Pass it down.
669
670 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
671
672         * optabs.h (expand_widening_mult): Declare.
673
674 2010-04-22  Richard Guenther  <rguenther@suse.de>
675
676         PR tree-optimization/43845
677         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
678         lookup the CALL_EXPR function and arguments.
679
680 2010-04-22  Nick Clifton  <nickc@redhat.com>
681
682         * config/stormy16/stormy16.c
683         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
684         * config/stormy16/stormy16.h: Tidy up formatting.
685         (DONT_USE_BUILTIN_SETJMP): Remove definition.
686         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
687         (ineqbranchsi): Delete pattern.
688         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
689         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
690         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
691         stormy16-lib2-ucmpsi2.c.
692
693 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
694
695         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
696         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
697         extra set merge_set_noclobber, and use it to relax the final test
698         slightly.
699         * df.h (df_simulate_find_noclobber_defs): Declare.
700         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
701         conditional defs.
702         (df_simulate_find_noclobber_defs): New function.
703
704 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
705
706         * config/i386/i386.md: Use {} around multi-line preparation statements.
707
708 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
709
710         * c-tree.h (push_init_level, pop_init_level, set_init_index)
711         (process_init_element): New argument of type struct obstack *.
712
713         * c-typeck.c (push_init_level, pop_init_level, set_designator)
714         (set_init_index, set_init_label, set_nonincremental_init)
715         (set_nonincremental_init_from_string, find_init_member)
716         (output_init_element, output_pending_init_elements)
717         (process_init_element): New argument braced_init_obstack.  Pass it
718         down.
719         (push_range_stack, add_pending_init): New argument
720         braced_init_obstack.  Use obstack allocation.
721
722         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
723         braced_init_obstack.  Pass it down.
724         (c_parser_braced_init): New variables ret, braced_init_obstack.
725         Initialize obstack, pass it down and finally free it.
726
727 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
728
729         PR middle-end/29274
730         * tree-pass.h (pass_optimize_widening_mul): Declare.
731         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
732         gate_optimize_widening_mul): New static functions.
733         (pass_optimize_widening_mul): New.
734         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
735         <case MULT_EXPR>: Remove support for widening multiplies.
736         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
737         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
738         simplify_gen_unary rather than directly building extensions.
739         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
740         WIDEN_MULT_EXPR.
741         * expmed.c (expand_widening_mult): New function.
742         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
743
744 2010-04-21  Jan Hubicka  <jh@suse.cz>
745
746         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
747         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
748         * lto-wpa-fixup.c: Remove.
749         * Makefile.in (lto-wpa-fixup.o): Remove.
750         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
751         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
752         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
753
754 2010-04-21  Jan Hubicka  <jh@suse.cz>
755
756         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
757         add write_optimization_summary, read_optimization_summary.
758         (ipa_write_summaries_of_cgraph_node_set): Remove.
759         (ipa_write_optimization_summaries): Declare.
760         (ipa_read_optimization_summaries): Declare.
761         * ipa-cp.c (pass_ipa_cp): Update.
762         * ipa-reference.c (pass_ipa_reference): Update.
763         * ipa-pure-const.c (pass_ipa_pure_const): Update.
764         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
765         Update.
766         * ipa-inline.c (pass_ipa_inline): Update.
767         * ipa.c (pass_ipa_whole_program): Update.
768         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
769         * passes.c (ipa_write_summaries_1): Do not test wpa.
770         (ipa_write_optimization_summaries_1): New.
771         (ipa_write_optimization_summaries): New.
772         (ipa_read_summaries): Do not test ltrans.
773         (ipa_read_optimization_summaries_1): New.
774         (ipa_read_optimization_summaries): New.
775
776 2010-04-21  Jan Hubicka  <jh@suse.cz>
777
778         * lto-cgraph.c (lto_output_node): Do not output comdat groups
779         for boundary nodes.
780         (output_cgraph): Do not arrange comdat groups for boundary nodes.
781
782 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
783
784         PR debug/40040
785         * dwarf2out.c (add_name_and_src_coords_attributes): Add
786         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
787
788 2010-04-21  Jan Hubicka  <jh@suse.cz>
789
790         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
791
792 2010-04-21  Jan Hubicka  <jh@suse.cz>
793
794         * varpool.c (decide_is_variable_needed): Variable is always needed
795         during ltrans.
796
797 2010-04-21  Jan Hubicka  <jh@suse.cz>
798
799         * opts.c (decode_options): Enable pure-const pass for whopr.
800
801 2010-04-21  Jan Hubicka  <jh@suse.cz>
802
803         * cgraph.c (dump_cgraph_node): Dump also assembler name.
804         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
805         at WPA dumping.
806         (cgraph_decide_inlining): Do not expect callee to be removed in all
807         cases.
808
809 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
810
811         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
812
813 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
814
815         * config/i386/i386.md (x86_shrd): Add athlon_decode and
816         amdfam10_decode attributes.
817
818 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
819
820         PR middle-end/43570
821         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
822         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
823         (lower_copyprivate_clauses): Use private var in outer
824         context instead of original var.  Make sure the types
825         are correct for VLAs.
826
827 2010-04-21  Richard Guenther  <rguenther@suse.de>
828
829         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
830         to non-pointer objects.
831
832 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
833
834         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
835         last chain entry if it starts with the still current label.
836         (add_location_or_const_value_attribute): Check that
837         loc_list->first->next is NULL instead of comparing ->first with ->last.
838         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
839         to add_var_loc_to_decl.
840
841         * dwarf2out.c (output_call_frame_info): For dw_cie_version
842         >= 4 add also address size and segment size fields into CIE header.
843
844         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
845         long as address size is the same as sizeof (void *) and
846         segment size is 0.
847         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
848         address size or segment size is unexpected, return DW_EH_PE_omit.
849         (classify_object_over_fdes): If get_cie_encoding returned
850         DW_EH_PE_omit, return -1.
851         (init_object): If classify_object_over_fdes returned -1,
852         pretend there were no FDEs at all.
853
854 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
855
856         * config/i386/i386.md (bswap<mode>2): Macroize expander from
857         bswap{si,di}2 using SWI48 mode iterator.
858         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
859         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
860         set modrm attribute of bswap insn to 0 and remove length attribute.
861         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
862         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
863         set mode attribute to <MODE> and remove length attribute.
864
865 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
866
867         PR rtl-optimization/43520
868         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
869         zero available registers.
870
871 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
872
873         * builtins.c (fold_builtin_cproj): Fold more cases.
874
875 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
876
877         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
878         (fold_builtin_1): Fold builtin cproj.
879         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
880         Use ATTR_CONST_NOTHROW_LIST.
881
882 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
883
884         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
885         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
886         ffsi2_no_cmove for !TARGET_CMOVE.
887         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
888         (ffssi2): Remove expander.
889         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
890         mode iterator.
891         (ctz<mode>2): Ditto from ctz{si,di}2.
892         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
893         mode iterator.
894         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
895         mode iterator.
896
897 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
898
899         * dwarf2out.c (AT_linkage_name): Define.
900         (clone_as_declaration): Handle DW_AT_linkage_name.
901         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
902         of DW_AT_MIPS_linkage_name.
903         (move_linkage_attr): Likewise.
904         (dwarf2out_finish): Likewise.
905
906 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
907
908         PR middle-end/41952
909         * fold-const.c (fold_comparison): New folding rule.
910
911 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
912
913         * double-int.h (double_int_setbit): Declare.
914         * double-int.c (double_int_setbit): New function.
915         * rtl.h (immed_double_int_const): Declare.
916         * emit-rtl.c (immed_double_int_const): New function.
917         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
918         and immed_double_int_const functions.
919         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
920         expand_copysign_bit):  (Ditto.).
921         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
922         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
923         * dojump.c (prefer_and_bit_test): (Ditto.).
924         * expr.c (convert_modes, reduce_to_bit_field_precision,
925         const_vector_from_tree): (Ditto.).
926         * expmed.c (mask_rtx, lshift_value): (Ditto.).
927
928 2010-04-20  Jan Hubicka  <jh@suse.cz>
929
930         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
931         (dump_cgraph_node): Dump new flags.
932         * cgraph.h (struct cgraph_node): Add flags
933         reachable_from_other_partition and in_other_partition.
934         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
935         other partition can not be removed.
936         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
937         the other partition must be output; silence sanity checking on
938         leaking functions bodies from other paritition.
939         * lto-cgraph.c (reachable_from_other_partition_p): New function.
940         (lto_output_node): Output new flags; do not sanity check that inline
941         clones are output; drop lto_forced_extern_inline_p code; do not mock
942         visibility flags at partition boundaries.
943         (add_node_to): New function.
944         (output_cgraph): Use it to sort functions so masters appear before
945         clones.
946         (input_overwrite_node): Input new flags.
947         * passes.c (ipa_write_summaries): Do not call
948         lto_new_extern_inline_states.
949         * lto-section-out.c (forced_extern_inline,
950         lto_new_extern_inline_states lto_delete_extern_inline_states,
951         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
952         * lto-streamer.h (lto_new_extern_inline_states,
953         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
954         lto_forced_extern_inline_p): Kill.
955
956 2010-04-20  Richard Guenther  <rguenther@suse.de>
957
958         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
959         from vars that can have pointers.
960         (process_constraint): Dump useless constraints.
961
962 2010-04-20  Richard Guenther  <rguenther@suse.de>
963
964         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
965         (dump_sa_points_to_info): Remove asserts.
966         (init_base_vars): nothing_id isn't an escape point nor does it
967         have pointers.
968
969 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
970
971         * tree.h (TYPE_REF_IS_RVALUE): Define.
972         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
973         should_move_die_to_comdat, prune_unused_types_walk): Handle
974         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
975         (modified_type_die, gen_reference_type_die): Emit
976         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
977         if TYPE_REF_IS_RVALUE and -gdwarf-4.
978
979 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
980
981         PR target/43635
982         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
983         calls for -fpic -m31 if they have been sibcall optimized.
984
985 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
986
987         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
988         ar.lc fixed and call-used.
989
990         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
991
992 2010-04-19  Jan Hubicka  <jh@suse.cz>
993
994         * opts.c (decode_options): Disable whpr incompatible passes.
995         * lto/lto.c (lto_1_to_1_map): Skip clones.
996         (read_cgraph_and_symbols): Do not mark everything as needed.
997         (do_whole_program_analysis): Do map only after optimizing;
998         set proper cgraph_state; use passmanager.
999
1000 2010-04-19  DJ Delorie  <dj@redhat.com>
1001
1002         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
1003         POINTER_PLUS_EXPR and fix them.
1004
1005 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1006
1007         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1008         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1009         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1010         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1011         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1012         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1013         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1014         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1015         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1016         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1017         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1018
1019 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1020
1021         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1022         (check_cond_move_block): Likewise.
1023         (cond_move_process_if_block): Likewise.
1024         (noce_find_if_block): Improve formatting.
1025         (find_if_header): Pass 0 to memset and tweak conditions.
1026         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1027
1028 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1029
1030         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1031         for -gdwarf-4.
1032
1033         PR middle-end/43337
1034         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1035         with non-local decl doesn't need chain.
1036
1037 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1038
1039         * ira-color.c (allocno_reload_assign): Avoid accumulating
1040         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1041
1042 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1043
1044         * gimple.h (create_tmp_reg): Declare.
1045         * gimplify.c (create_tmp_reg): New function.
1046         (gimplify_return_expr): Use create_tmp_reg.
1047         (gimplify_omp_atomic): Likewise.
1048         (gimple_regimplify_operands): Likewise.
1049         * tree-dfa.c (make_rename_temp): Likewise.
1050         * tree-predcom.c (predcom_tmp_var): Likewise.
1051         (reassociate_to_the_same_stmt): Likewise.
1052         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
1053         (get_replaced_param_substitute): Likewise.
1054         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1055         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
1056         * tree-ssa-pre.c (get_representative_for): Likewise.
1057         (create_expression_by_pieces): Likewise.
1058         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
1059         (create_tailcall_accumulator): Likewise.
1060
1061 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1062
1063         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
1064         new_stmt.
1065         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
1066
1067 2010-04-19  Richard Guenther  <rguenther@suse.de>
1068
1069         PR tree-optimization/43796
1070         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
1071         from SCEV in the lattice.
1072         (vrp_visit_phi_node): Dump change.
1073
1074 2010-04-19  Richard Guenther  <rguenther@suse.de>
1075
1076         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
1077         * configure: Re-generated.
1078
1079 2010-04-19  Richard Guenther  <rguenther@suse.de>
1080
1081         PR tree-optimization/43783
1082         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
1083         constant ARRAY_REF operands two and three if possible.
1084
1085 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
1086
1087         PR target/43766
1088         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
1089
1090 2010-04-19  Jie Zhang  <jie@codesourcery.com>
1091
1092         PR target/43662
1093         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
1094
1095 2010-04-19  Ira Rosen  <irar@il.ibm.com>
1096
1097         PR tree-optimization/37027
1098         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
1099         and macro to access it.
1100         (vectorizable_reduction): Add argument.
1101         (vect_get_slp_defs): Likewise.
1102         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
1103         statements for possible use in SLP.
1104         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
1105         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
1106         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
1107         add new argument.
1108         (vectorizable_reduction): Likewise.
1109         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
1110         vect_get_slp_defs.
1111         (vectorizable_type_demotion, vectorizable_type_promotion,
1112         vectorizable_store): Likewise.
1113         (vect_analyze_stmt): Update call to vectorizable_reduction.
1114         (vect_transform_stmt): Likewise.
1115         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
1116         (vect_build_slp_tree): Fix indentation. Check that there are no loads
1117         from different interleaving chains in same node.
1118         (vect_slp_rearrange_stmts): New function.
1119         (vect_supported_load_permutation_p): Allow load permutations for
1120         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
1121         inside SLP nodes if necessary.
1122         (vect_analyze_slp_instance): Handle reductions.
1123         (vect_analyze_slp): Try to build SLP instances originating from groups
1124         of reductions.
1125         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
1126         (vect_get_constant_vectors): Create initial vectors for reductions
1127         according to reduction code. Add new argument.
1128         (vect_get_slp_defs): Add new argument, pass it to
1129         vect_get_constant_vectors.
1130         (vect_schedule_slp_instance): Remove SLP tree root statements.
1131
1132 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1133
1134         * tree.h (ENUM_IS_SCOPED): Define.
1135         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
1136         for ENUM_IS_SCOPED enums.
1137
1138 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1139
1140         * fold-const.c (fold_comparison): Use ssizetype.
1141         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
1142         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
1143         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
1144         * tree-object-size.c (compute_object_sizes): Use size_type_node.
1145
1146         * tree.h (initialize_sizetypes): Remove parameter.
1147         (build_common_tree_nodes): Remove second parameter.
1148         * stor-layout.c (initialize_sizetypes): Remove parameter.
1149         Always create an unsigned type.
1150         (set_sizetype): Assert that the passed type is unsigned and simplify.
1151         * tree.c (build_common_tree_nodes): Remove second parameter.
1152         Adjust call to initialize_sizetypes.
1153         * c-decl.c (c_init_decl_processing): Remove second argument in call to
1154         build_common_tree_nodes.
1155
1156 2010-04-18  Matthias Klose  <doko@ubuntu.com>
1157
1158         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
1159
1160 2010-04-18  Ira Rosen  <irar@il.ibm.com>
1161
1162         PR tree-optimization/43771
1163         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
1164         load permutation doesn't have gaps.
1165
1166 2010-04-18  Jan Hubicka  <jh@suse.cz>
1167
1168         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
1169         (sse_prologue_save_insn expander): Use new pattern.
1170         (sse_prologue_save_insn1): New pattern and splitter.
1171         (sse_prologue_save_insn): Update to deal also with 64bit aligned
1172         blocks.
1173         * i386.c (setup_incoming_varargs_64): Do not compute jump
1174         destination here.
1175         (ix86_gimplify_va_arg): Update alignment needed.
1176         (ix86_local_alignment): Do not align all local arrays to 128bit.
1177
1178 2010-04-17  Jan Hubicka  <jh@suse.cz>
1179
1180         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
1181
1182 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1183
1184         * arm.md (negdi2): Remove redundant code to force values into a
1185         register.
1186
1187 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1188
1189         * arm/bpabi.S: Add EABI alignment attributes to objects.
1190         * arm/bpabi-v6m.S: Likewise.
1191         * arm/crti.asm: Likewise.
1192         * arm/crtn.asm: Likewise.
1193         * arm/lib1funcs.asm: Likewise.
1194         * arm/libunwind.S: Likewise.
1195
1196 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
1197
1198         * arm-protos.h (tune_params): New structure.
1199         * arm.c (current_tune): New variable.
1200         (arm_constant_limit): Delete.
1201         (struct processors): Add pointer to the tune parameters.
1202         (arm_slowmul_tune): New tuning option.
1203         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
1204         (all_cores): Adjust to pick up the tuning model.
1205         (arm_constant_limit): New function.
1206         (arm_override_options): Select the appropriate tuning model.  Delete
1207         initialization of arm_const_limit.
1208         (arm_split_constant): Use the new constant-limit model.
1209         (arm_rtx_costs): Pick up the current tuning model.
1210         * arm.md (is_strongarm, is_xscale): Delete.
1211         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
1212         for Xscale variant architectures.
1213         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
1214
1215 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1216
1217         * config/arm/arm.c (arm_gen_constant): Remove unused variable
1218         can_shift.
1219         (arm_rtx_costs_1): Remove unused variable extra_cost.
1220         (arm_unwind_emit_set): Use variable offset.
1221         (thumb1_output_casesi): Remove unused variable flags.
1222
1223 2010-04-16  Jeff Law  <law@redhat.com>
1224
1225         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
1226         needing assignment rather than doing a two-phase assignment.  Remove
1227         unused variable 'm'.
1228
1229 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1230
1231         PR bootstrap/43767
1232         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
1233
1234 2010-04-16  Doug Kwan  <dougkwan@google.com>
1235
1236         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
1237         (next_operand_entry_id): New static variable.
1238         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
1239         (add_to_ops_vec): Assigned unique ID to operand entry.
1240         (struct oecount_s): New field ID.
1241         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
1242         (undistribute_ops_list): Assign unique IDs to oecounts.
1243         (init_reassoc): reset next_operand_entry_id.
1244
1245 2010-04-16  Doug Kwan  <dougkwan@google.com>
1246
1247         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
1248         missing left parenthesis.
1249
1250 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
1251
1252         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
1253         *btdi_rex64 using SWI48 mode iterator.
1254         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
1255         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
1256         *jcc_btdi_mask_rex64.
1257
1258 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
1259
1260         * double-int.h (tree_to_double_int): Convert to macro.
1261         * double-int.c (tree_to_double_int): Remove.
1262
1263 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1264
1265         PR debug/43762
1266         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
1267         with want_address 2 and in case a single element list might be
1268         possible, call it again with want_address 0.
1269
1270 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
1271
1272         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
1273         case 'W' print operands for HI mode.
1274         * config/h8300/h8300.h (Y0, Y2) : New constraints.
1275         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
1276         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
1277         * config/h8300/predicate.md (bit_register_indirect_operand): New.
1278
1279         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
1280
1281         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
1282         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
1283         #xx:3 and #xx:4 mode.
1284
1285         * config/h8300/h8300.md (inverted load with HImode dest): Add
1286         support for H8300SX.
1287
1288         * config/h8300/predicate.md (bit_operand): Allow immediate values that
1289         satisfy 'U' constraint.
1290
1291 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1292
1293         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
1294         * configure: Regenerate.
1295         * config.in: Regenerate.
1296         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
1297         works.
1298
1299 2010-04-16  Richard Guenther  <rguenther@suse.de>
1300
1301         * tree.h (struct tree_decl_minimal): Move pt_uid ...
1302         (struct tree_decl_common): ... here.
1303         (DECL_PT_UID): Adjust.
1304         (SET_DECL_PT_UID): Likewise.
1305         (DECL_PT_UID_SET_P): Likewise.
1306
1307 2010-04-16  Richard Guenther  <rguenther@suse.de>
1308
1309         PR tree-optimization/43572
1310         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
1311         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
1312         * tree-flow.h (is_call_clobbered): Remove.
1313         * tree-flow-inline.h (is_call_clobbered): Likewise.
1314         * tree-dfa.c (dump_variable): Do not dump call clobber state.
1315         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
1316         (execute_return_slot_opt): Adjust.
1317         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
1318         check for call clobbered vars here.
1319         (find_tail_calls): Move tailcall verification to the
1320         proper place.
1321
1322 2010-04-16  Diego Novillo  <dnovillo@google.com>
1323
1324         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
1325
1326 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1327
1328         PR target/40603
1329         * config/arm/arm.md (cbranchqi4): New pattern.
1330         * config/arm/predicates.md (const0_operand,
1331         cbranchqi4_comparison_operator): New predicates.
1332
1333 2010-04-16  Richard Guenther  <rguenther@suse.de>
1334
1335         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
1336         (dump_gimple_stmt): Likewise.
1337
1338 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
1339
1340         * recog.h (struct recog_data): New field is_operator.
1341         (struct insn_operand_data): New field is_operator.
1342         * recog.c (extract_insn): Set recog_data.is_operator.
1343         * genoutput.c (output_operand_data): Emit code to set the
1344         is_operator field.
1345         * reload.c (find_reloads): Use it rather than testing for an
1346         empty constraint string.
1347
1348         PR target/41514
1349         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
1350         If the previous insn is a cbranchsi4_insn with the same arguments,
1351         omit the compare instruction.
1352
1353         * config/arm/arm.md (addsi3_cbranch): If destination is a high
1354         register, inputs must be low registers and we need a low register
1355         scratch.  Handle alternative 2 like alternative 3.
1356
1357 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
1358
1359         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
1360         don't call get_addr on both.  If one expression is a VALUE and
1361         the other a REG, check VALUE's locs if the REG isn't among them.
1362
1363 2010-04-16  Christian Bruel  <christian.bruel@st.com>
1364
1365         * config/sh/sh.h (sh_frame_pointer_required): New function.
1366         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
1367         (flag_omit_frame_pointer) Set.
1368         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
1369         (rounded_frame_size): Adjust size with outgoing_args_size.
1370         (sh_set_return_address): Must return from stack pointer.
1371         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
1372         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1373         (ACCUMULATE_OUTGOING_ARGS): Define.
1374         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
1375         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
1376
1377 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1378
1379         PR target/43471
1380         * config/sh/sh.c (sh_legitimize_reload_address): Use
1381         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
1382         Remove a unneeded check for offset_base.
1383
1384 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1385
1386         * configure: Regenerated.
1387
1388 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1389
1390         * config/s390/s390.c (s390_call_save_register_used): Switch back
1391         to HARD_REGNO_NREGS.
1392
1393 2010-04-15  Richard Guenther  <rguenther@suse.de>
1394
1395         * alias.c (alias_set_subset_of): Handle alias-set zero
1396         child properly.
1397
1398 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
1399             Julian Brown  <julian@codesourcery.com>
1400
1401         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
1402         alternatives according to use of high and low regs.
1403         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1404         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
1405         optimizing for size on Thumb-2.
1406
1407 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
1408
1409         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
1410
1411 2010-04-15  Richard Guenther  <rguenther@suse.de>
1412
1413         * tree-ssa-structalias.c (struct variable_info): Add
1414         is_fn_info flag.
1415         (new_var_info): Initialize it.
1416         (dump_constraints): Support printing last added constraints.
1417         (debug_constraints): Adjust.
1418         (dump_constraint_graph): Likewise.
1419         (make_heapvar_for): Check for NULL cfun.
1420         (get_function_part_constraint): New function.
1421         (get_fi_for_callee): Likewise.
1422         (find_func_aliases): Properly implement IPA PTA constraints.
1423         (process_ipa_clobber): New function.
1424         (find_func_clobbers): Likewise.
1425         (insert_into_field_list_sorted): Remove.
1426         (create_function_info_for): Properly allocate vars for IPA mode.
1427         Do not use insert_into_field_list_sorted.
1428         (create_variable_info_for): Properly generate constraints for
1429         global vars in IPA mode.
1430         (dump_solution_for_var): Always dump the solution.
1431         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
1432         (find_what_var_points_to): Adjust.
1433         (pt_solution_set): Change.
1434         (pt_solution_ior_into): New function.
1435         (pt_solution_empty_p): Export.
1436         (pt_solution_includes_global): Adjust.
1437         (pt_solution_includes_1): Likewise.
1438         (pt_solutions_intersect_1): Likewise.
1439         (dump_sa_points_to_info): Check some invariants.
1440         (solve_constraints): Move constraint dumping ...
1441         (compute_points_to_sets): ... here.
1442         (ipa_pta_execute): ... and here.
1443         (compute_may_aliases): Do not re-compute points-to info
1444         locally if IPA info is available.
1445         (ipa_escaped_pt): New global var.
1446         (ipa_pta_execute): Properly implement IPA PTA.
1447         * tree-into-ssa.c (dump_decl_set): Support dumping
1448         decls not in referenced-vars.
1449         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
1450         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
1451         (dump_points_to_solution): Likewise.
1452         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
1453         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
1454         (remap_gimple_stmt): Reset call clobber/use information if necessary.
1455         (copy_decl_to_var): Copy DECL_PT_UID.
1456         (copy_result_decl_to_var): Likewise.
1457         * tree.c (make_node_stat): Initialize DECL_PT_UID.
1458         (copy_node_stat): Copy it.
1459         * tree.h (DECL_PT_UID): New macro.
1460         (SET_DECL_PT_UID): Likewise.
1461         (DECL_PT_UID_SET_P): Likewise.
1462         (struct tree_decl_minimal): Add pt_uid member.
1463         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
1464         (pt_solution_empty_p): Declare.
1465         (pt_solution_set): Adjust.
1466         (ipa_escaped_pt): Declare.
1467         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1468         * gimple-pretty-print.c (pp_points_to_solution): New function.
1469         (dump_gimple_call): Dump call clobber/use information.
1470         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
1471         * tree-pass.h (TDF_ALIAS): New dump option.
1472         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
1473         * doc/invoke.texi (-fipa-pta): Update documentation.
1474
1475 2010-04-15  Richard Guenther  <rguenther@suse.de>
1476
1477         * Makefile.in (OBJS-common): Add gimple-fold.o.
1478         (gimple-fold.o): New rule.
1479         * tree.h (maybe_fold_offset_to_reference,
1480         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
1481         prototypes ...
1482         * gimple.h: ... here.
1483         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
1484         may_propagate_address_into_dereference): Move prototypes ...
1485         * gimple.h: ... here.
1486         * tree-ssa-ccp.c (get_symbol_constant_value,
1487         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
1488         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
1489         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
1490         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
1491         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
1492         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
1493         gimplify_and_update_call_from_tree): Move ...
1494         * gimple-fold.c: ... here.  New file.
1495         (ccp_fold_builtin): Rename to ...
1496         (gimple_fold_builtin): ... this.
1497         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
1498
1499 2010-04-15  Richard Guenther  <rguenther@suse.de>
1500
1501         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
1502         fit_double_type, force_fit_type_double, add_double_with_sign,
1503         neg_double, mul_double_with_sign, lshift_double, rshift_double,
1504         lrotate_double, rrotate_double, div_and_round_double): Move ...
1505         * double-int.c: ... here.
1506         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
1507         add_double, neg_double, mul_double_with_sign, mul_double,
1508         lshift_double, rshift_double, lrotate_double, rrotate_double,
1509         div_and_round_double): Move prototypes ...
1510         * double-int.h: ... here.
1511
1512 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
1513
1514         PR target/43742
1515         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
1516         matching constraints to ensure inputs match the output.
1517
1518 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1519
1520         PR target/43742
1521         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
1522         in an input-only operand.
1523
1524 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
1525
1526         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
1527         (double_int_not, double_int_lshift, double_int_rshift): Declare.
1528         (double_int_negative_p): Convert to static inline function.
1529         * double-int.c (double_int_lshift, double_int_lshift): New functions.
1530         (double_int_negative_p): Remove.
1531         * tree.h (lshift_double, rshift_double):
1532         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
1533         * fold-const.c (fold_convert_const_int_from_real,
1534         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
1535         (lshift_double): Change type of arith argument to bool.
1536         (rshift_double): Change type of arith argument to bool. Correct
1537         comment.
1538         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1539
1540 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
1541
1542         PR target/21803
1543         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
1544         at the start and end of the then/else blocks, and omit them from the
1545         conversion.
1546         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
1547         argument; all callers changed.  Pass zero to old_insns_match_p instead.
1548         (flow_find_head_matching_sequence): New function.
1549         (old_insns_match_p): Check REG_EH_REGION notes for calls.
1550         * basic-block.h (flow_find_cross_jump,
1551         flow_find_head_matching_sequence): Declare functions.
1552
1553 2010-04-14  Jason Merrill  <jason@redhat.com>
1554
1555         PR c++/36625
1556         * c-common.c (attribute_takes_identifier_p): New fn.
1557         * c-common.h: Declare it.
1558
1559 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1560
1561         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
1562         splitter condition.
1563         (*udivmod<mode>4): Ditto.
1564
1565 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1566
1567         * config/i386/i386.md (maxmin_int): Rename code attribute from
1568         maxminiprefix and update all users.
1569         (maxmin_float): Ditto from maxminfprefix.
1570         (logic): Ditto from logicprefix.
1571         (absneg_mnemonic): Ditto from absnegprefix.
1572         * config/i386/mmx.md: Update all users of maxminiprefix,
1573         maxminfprefix and logicprefix for rename.
1574         * config/i386/sse.md: Ditto.
1575         * config/i386/sync.md (sync_<code><mode>): Update for
1576         logicprefix rename.
1577
1578 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1579
1580         PR 42966
1581         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
1582         warnings converted to errors.
1583
1584 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1585
1586         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
1587         used insn_type variable.
1588         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
1589         to avoid set-but-not-used warning.
1590
1591 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1592
1593         * df-core.c (df_ref_debug): Change format string placeholder
1594         from 0x%x to %#x.
1595         * dwarf2asm.c (dw2_asm_output_data_raw,
1596         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
1597         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
1598         * dwarf2out.c (output_cfi, output_cfi_directive,
1599         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
1600         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
1601         Ditto.
1602         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
1603         * print-rtl.c (print_rtx): Ditto.
1604
1605 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1606
1607         PR middle-end/42694
1608         * builtins.c (expand_builtin_pow_root): New function to expand pow
1609         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
1610         series of sqrt and cbrt calls under -ffast-math.
1611         (expand_builtin_pow): Call it.
1612
1613 2010-04-14  Michael Matz  <matz@suse.de>
1614
1615         PR tree-optimization/42963
1616         * tree-cfg.c (touched_switch_bbs): New static variable.
1617         (group_case_labels_stmt): New function broken out from ...
1618         (group_case_labels): ... here, use the above.
1619         (start_recording_case_labels): Allocate touched_switch_bbs.
1620         (end_recording_case_labels): Deallocate it, call
1621         group_case_labels_stmt.
1622         (gimple_redirect_edge_and_branch): Remember index of affected BB.
1623
1624 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1625
1626         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
1627         from insn template.
1628
1629 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1630
1631         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
1632
1633 2010-04-13  Jan Hubicka  <jh@suse.cz>
1634
1635         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
1636         of optimized out static functions.
1637         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
1638         cost computation.  Also sanity check for overflows.
1639         (update_caller_keys): Update cgraph_edge_badness call; properly
1640         update fibheap and sanity check that it is up to date.
1641         (add_new_edges_to_heap): Update cgraph_edge_badness.
1642         (cgraph_decide_inlining_of_small_function): Likewise;
1643         add sanity checking that badness in heap is up to date;
1644         improve dumping of reason; Update badness of calls to the
1645         offline copy of function currently inlined; dump badness
1646         of functions not inlined because of unit growth limits.
1647
1648 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1649
1650         PR middle-end/32628
1651         * c-common.c (pointer_int_sum): Disregard overflow that occured only
1652         because of sign-extension change when converting to sizetype here...
1653         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
1654
1655         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
1656         the folding to constants.  Remove redundant final conversion.
1657         (fold_binary) <associate>: Do not associate if the re-association of
1658         constants alone overflows.
1659         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
1660         to the end of the list.
1661         (multiple_of_p) <COND_EXPR>: New case.
1662
1663 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1664
1665         * opt-functions.awk (opt_sanitized_name): New.
1666         (opt_enum): New.
1667         * optc-gen.awk: Use it
1668         * opth-gen.awk: Use it.
1669
1670 2010-04-13  Martin Jambor  <mjambor@suse.cz>
1671
1672         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
1673         (sra_modify_assign): Delete stmts loading dead data even if racc has no
1674         children.  Call replace_uses_with_default_def_ssa_name to handle
1675         SSA_NAES on lhs.
1676
1677 2010-04-13  Michael Matz  <matz@suse.de>
1678
1679         PR middle-end/43730
1680         * builtins.c (expand_builtin_interclass_mathfn): Also create
1681         a register if the predicate doesn't match.
1682
1683 2010-04-13  Diego Novillo  <dnovillo@google.com>
1684
1685         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
1686         * c-pch.c: Include timevar.h.
1687         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
1688         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
1689         * ggc-common.c: Include timevar.h.
1690         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
1691         * timevar.def (TV_PCH_SAVE): Define.
1692         (TV_PCH_CPP_SAVE): Define.
1693         (TV_PCH_PTR_REALLOC): Define.
1694         (TV_PCH_PTR_SORT): Define.
1695         (TV_PCH_RESTORE): Define.
1696         (TV_PCH_CPP_RESTORE): Define.
1697
1698 2010-04-13  Michael Matz  <matz@suse.de>
1699
1700         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
1701         into MINUS_EXPRs.
1702         (can_reassociate_p): New function.
1703         (break_up_subtract_bb, reassociate_bb): Use it.
1704
1705 2010-04-13  Richard Guenther  <rguenther@suse.de>
1706
1707         PR bootstrap/43737
1708         * builtins.c (c_readstr): Fix assert.
1709
1710 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
1711
1712         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
1713         when generating cltd insn.
1714
1715         (*ashl<mode>3_1): Remove special handling for register operand 2.
1716         (*ashlsi3_1_zext): Ditto.
1717         (*ashlhi3_1): Ditto.
1718         (*ashlhi3_1_lea): Ditto.
1719         (*ashlqi3_1): Ditto.
1720         (*ashlqi3_1_lea): Ditto.
1721         (*<shiftrt_insn><mode>3_1): Ditto.
1722         (*<shiftrt_insn>si3_1_zext): Ditto.
1723         (*<shiftrt_insn>qi3_1_slp): Ditto.
1724         (*<rotate_insn><mode>3_1): Ditto.
1725         (*<rotate_insn>si3_1_zext): Ditto.
1726         (*<rotate_insn>qi3_1_slp): Ditto.
1727
1728 2010-04-13  Richard Guenther  <rguenther@suse.de>
1729
1730         * tree-ssa-structalias.c (callused_id): Remove.
1731         (call_stmt_vars): New.
1732         (get_call_vi): Likewise.
1733         (lookup_call_use_vi): Likewise.
1734         (lookup_call_clobber_vi): Likewise.
1735         (get_call_use_vi): Likewise.
1736         (get_call_clobber_vi): Likewise.
1737         (make_transitive_closure_constraints): Likewise.
1738         (handle_const_call): Adjust to do per-call call-used handling.
1739         (handle_pure_call): Likewise.
1740         (find_what_var_points_to): Remove general callused handling.
1741         (init_base_vars): Likewise.
1742         (init_alias_vars): Initialize call_stmt_vars.
1743         (compute_points_to_sets): Process call-used and call-clobbered
1744         vars for call statements.
1745         (delete_points_to_sets): Free call_stmt_vars.
1746
1747 2010-04-13  Richard Guenther  <rguenther@suse.de>
1748
1749         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1750         Only add RW dependence for dependence distance zero.
1751         Adjust maximal vectorization factor according to dependences.
1752         Move alignment handling ...
1753         (vect_find_same_alignment_drs): ... here.  New function.
1754         (vect_analyze_data_ref_dependences): Adjust.
1755         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
1756         (vect_analyze_data_refs): Adjust minimal vectorization factor
1757         according to data references.
1758         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
1759         dependences before determining the vectorization factor.
1760         Analyze alignment after determining the vectorization factor.
1761         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
1762         dependences before alignment.
1763         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
1764         Adjust prototype.
1765         (vect_analyze_data_refs): Likewise.
1766         (MAX_VECTORIZATION_FACTOR): New define.
1767
1768 2010-04-13  Duncan Sands  <baldrick@free.fr>
1769
1770         * except.h (lang_eh_type_covers): Remove.
1771         * except.c (lang_eh_type_covers): Likewise.
1772
1773 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1774             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1775
1776         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
1777         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
1778         UNITS_PER_LONG where it is ABI relevant.
1779         (s390_return_addr_rtx): Likewise.
1780         (s390_back_chain_rtx): Likewise.
1781         (s390_frame_area): Likewise.
1782         (s390_frame_info): Likewise.
1783         (s390_initial_elimination_offset): Likewise.
1784         (save_gprs): Likewise.
1785         (s390_emit_prologue): Likewise.
1786         (s390_emit_epilogue): Likewise.
1787         (s390_function_arg_advance): Likewise.
1788         (s390_function_arg): Likewise.
1789         (s390_va_start): Likewise.
1790         (s390_gimplify_va_arg): Likewise.
1791         (s390_function_profiler): Likewise.
1792         (s390_optimize_prologue): Likewise.
1793         (s390_rtx_costs): Likewise.
1794         (s390_secondary_reload): Likewise.
1795         (s390_promote_function_mode): Likewise.
1796         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
1797         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
1798         registers available.
1799         (s390_unwind_word_mode): New function.
1800         (s390_function_value): Split 64 bit values into register pair if
1801         used as return value.
1802         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
1803         function call parameters.  Handle parallels.
1804         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
1805         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
1806         (DWARF_CIE_DATA_ALIGNMENT): New macro.
1807         (s390_expand_setmem): Remove unused variable src_addr.
1808         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
1809         deal with 64 bit registers.
1810         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
1811         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
1812         (UNITS_PER_LONG): New macro.
1813         * libjava/include/s390-signal.h: Define extended ucontext
1814         structure containing the upper halfs of the 64 bit registers.
1815
1816 2010-04-13  Simon Baldwin  <simonb@google.com>
1817
1818         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
1819
1820 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
1821
1822         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
1823         rvalue on the RHS if the LHS is of a non-renamable type.
1824         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
1825
1826 2010-04-13  Matthias Klose  <doko@ubuntu.com>
1827
1828         * gcc.c (cc1_options): Handle -iplugindir before processing
1829         the cc1 spec. Only add -iplugindir once.
1830         (cpp_unique_options): Add -iplugindir option if -fplugin* options
1831         found.
1832         * common.opt (iplugindir): Remove `Separate' property, initialize.
1833         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
1834         option.
1835         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
1836         (distclean): Remove plugin dir.
1837         * doc/invoke.texi: Document -iplugindir.
1838
1839 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
1840
1841         * doc/plugins.texi (Loading Plugins): Document short
1842         -fplugin=foo option.
1843         (Plugin API): Mention default_plugin_dir_name function.
1844
1845         * gcc.c (find_file_spec_function): Add new declaration.
1846         (static_spec_func): Use it for "find-file".
1847         (find_file_spec_function): Add new function.
1848         (cc1_options): Add -iplugindir option if -fplugin* options found.
1849
1850         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
1851
1852         * plugin.c (add_new_plugin): Updated comment, and handle short
1853         plugin name.
1854         (default_plugin_dir_name): Added new function.
1855
1856         * common.opt (iplugindir): New option to set the plugin directory.
1857
1858 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
1859
1860         * config/i386/i386.md (any_rotate): New code iterator.
1861         (rotate_insn): New code attribute.
1862         (rotate): Ditto.
1863         (SWIM124): New mode iterator.
1864         (<rotate_insn>ti3): New expander.
1865         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
1866         any_rotate code iterator.
1867         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
1868         using any_rotate code iterator and SWIM124 mode iterator.
1869         (ix86_rotlti3): New insn_and_split pattern.
1870         (ix86_rotrti3): Ditto.
1871         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
1872         ix86_rotl{di,ti}3 patterns.
1873         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
1874         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
1875         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
1876         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
1877         code iterator and SWI mode iterator.
1878         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
1879         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
1880         code iterator.
1881         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
1882         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
1883         (bswap rotatert splitter): Add splitter.
1884         (bswap splitter): Macroize splitter using any_rotate code iterator.
1885         Add insn predicate to split only for TARGET_USE_XCHGB or when
1886         optimizing function for size.
1887
1888 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1889
1890         * config/pa/pa.c (emit_move_sequence): Remove use of
1891         deleted variable flag_argument_noalias.
1892
1893 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1894
1895         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
1896         configurations.
1897         Add to unsupported targets list.
1898         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
1899         sparc*-sun-solaris2.[567]* from target lists.
1900         * configure: Regenerate.
1901         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
1902         removal.
1903         Remove Solaris 7 patch references.
1904         (Specific, sparc-sun-solaris2.7): Removed.
1905         (sparc-sun-solaris2*): Update Solaris 7 example.
1906         (sparc64-*-solaris2*): Likewise.
1907
1908 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1909
1910         * config.build (alpha*-dec-osf4*): Remove.
1911         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
1912         of obsolete configurations.
1913         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
1914         support.
1915         * config/alpha/t-osf4: Renamed to ...
1916         * config/alpha/t-osf5: ... this.
1917         * config/alpha/osf.h: Renamed to ...
1918         * config/alpha/osf5.h: ... this.
1919         Merged old osf5.h contents.
1920         Update comments.
1921         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
1922         (EXTRA_SPECS): Removed.
1923         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
1924         reflect removal of Tru64 UNIX V4.0/V5.0 support.
1925         Document that.
1926
1927 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1928
1929         * doc/contrib.texi (Contributors, Rainer Orth): Update.
1930
1931 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
1932
1933         PR/43702
1934         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
1935         __thiscall convention.
1936
1937 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1938
1939         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
1940         orig_base.
1941         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
1942
1943 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
1944
1945         * function.c (assign_parms_initialize_all): Add unused attribute
1946         to fntype.
1947
1948 2010-04-12  Richard Guenther  <rguenther@suse.de>
1949
1950         * gsstruct.def (GSS_CALL): New.
1951         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
1952         * gimple.h: Include tree-ssa-alias.h.
1953         (struct gimple_statement_call): New.
1954         (union gimple_statement_struct_d): Add gimple_call member.
1955         (gimple_call_reset_alias_info): Declare.
1956         (gimple_call_use_set): New function.
1957         (gimple_call_clobber_set): Likewise.
1958         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
1959         * gimple.c (gimple_call_reset_alias_info): New function.
1960         (gimple_build_call_1): Call it.
1961         * lto-streamer-in.c (input_gimple_stmt): Likewise.
1962         * tree-inline.c (remap_gimple_stmt): Likewise.
1963         (expand_call_inline): Remove callused handling.
1964         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
1965         * tree-dfa.c (dump_variable): Likewise.
1966         * tree-parloops.c (parallelize_loops): Likewise.
1967         * tree-ssa.c (init_tree_ssa): Likewise.
1968         (delete_tree_ssa): Likewise.
1969         * tree-flow-inline.h (is_call_used): Remove.
1970         * tree-flow.h (struct gimple_df): Remove callused member.
1971         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
1972         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
1973         (ref_maybe_used_by_call_p_1): Simplify.
1974         (call_may_clobber_ref_p_1): Likewise.
1975         * tree-ssa-structalias.c (compute_points_to_sets): Set
1976         the call stmt used and clobbered sets.
1977         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
1978         (find_tail_calls): Verify the tail call.
1979
1980 2010-04-12  Richard Guenther  <rguenther@suse.de>
1981
1982         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
1983         single-iteration always-inline inlining.
1984         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
1985         (cgraph_decide_inlining): Do not handle always-inline specially.
1986         (try_inline): Remove always-inline cycle detection special case.
1987         Do not recurse on always-inlines.
1988         (cgraph_early_inlining): Do not iterate if not optimizing.
1989         (cgraph_gate_early_inlining): remove.
1990         (pass_early_inline): Run unconditionally.
1991         (gate_cgraph_decide_inlining): New function.
1992         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
1993         not inlining or optimizing.
1994         (cgraph_decide_inlining_of_small_functions): Also consider
1995         always-inline functions.
1996         (cgraph_default_inline_p): Return true for nodes which should
1997         disregard inline limits.
1998         (estimate_function_body_sizes): Assume zero size and time for
1999         nodes which are marked as disregarding inline limits.
2000         (cgraph_decide_recursive_inlining): Do not perform recursive
2001         inlining on always-inline nodes.
2002
2003 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2004
2005         PR bootstrap/43699
2006         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2007         for exprs satisfying handled_component_p.
2008
2009 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2010
2011         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2012         non-constant aggregate elements.
2013
2014         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2015         is a real initialization.
2016
2017 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2018
2019         PR c/36774
2020         * c-decl.c (start_function): Move forward check for nested function.
2021
2022 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2023
2024         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2025         * config/sh/sh.c: Include reload.h.
2026         (sh_legitimize_reload_address): New.
2027         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2028         sh_legitimize_reload_address.
2029
2030 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2031
2032         * config/sh/sh.md (*movqi_pop): New insn pattern.
2033         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2034
2035 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2036
2037         * config/i386/i386.md (any_shiftrt): New code iterator.
2038         (shiftrt_insn): New code attribute.
2039         (shiftrt): Ditto.
2040         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2041         using any_shiftrt code iterator.
2042         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2043         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2044         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2045         pattern from corresponding peephole2 patterns.
2046         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2047         using any_shiftrt code iterator.
2048         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
2049         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
2050         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
2051         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
2052         *{ashr,lshr}<mode>3_cmp_zext.
2053         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
2054
2055 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2056
2057         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
2058         scratch register.
2059         (*lshr<mode>3_cconly): Ditto.
2060
2061 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2062
2063         * config/i386/i386.md (lshr<mode>3): Macroize expander from
2064         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2065         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2066         pattern from *lshr{di,ti}3_1 and corresponding splitters using
2067         DWI mode iterator.
2068         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2069         from corresponding peephole2 patterns.
2070         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
2071         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
2072         and *lshrdi3_1_rex64 using SWI mode iterator.
2073         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
2074         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
2075         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
2076         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
2077         and *lshrdi3_cmp_rex64 using SWI mode iterator.
2078         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
2079         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
2080         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
2081         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
2082         SWI mode iterator.
2083
2084 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
2085
2086         * config/i386/i386.md (ashr<mode>3): Macroize expander from
2087         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
2088         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2089         pattern from *ashr{di,ti}3_1 and corresponding splitters using
2090         DWI mode iterator.
2091         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
2092         from corresponding peephole2 patterns.
2093         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
2094         (ashrsi3_cvt): Rename from ashrsi3_31.
2095         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
2096         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
2097         and x86_64_shift_adj_3 using SWI48 mode iterator.
2098         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
2099         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
2100         and *ashrdi3_1_rex64 using SWI mode iterator.
2101         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
2102         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
2103         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
2104         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
2105         and *ashrdi3_cmp_rex64 using SWI mode iterator.
2106         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
2107         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
2108         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
2109         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
2110         SWI mode iterator.
2111         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
2112         * config/i386/i386.c (ix86_split_ashr): Update for renamed
2113         x86_shift<mode>_adj_3 expanders.
2114
2115 2010-04-10  Wei Guozhi  <carrot@google.com>
2116
2117         PR target/42601
2118         * config/arm/arm.c (arm_pic_static_addr): New function.
2119         (legitimize_pic_address): Call arm_pic_static_addr when it detects
2120         a static symbol.
2121         (arm_output_addr_const_extra): Output expression for new pattern.
2122         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
2123
2124 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
2125
2126         * ira-costs.c (record_reg_classes): Ignore alternatives that are
2127         not enabled.
2128
2129         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
2130         * web.c: Include "insn-config.h" and "recog.h".
2131         (union_match_dups): New function.
2132         (web_main): Call it.
2133         (union_defs): Don't try to recognize match_dups.
2134
2135         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
2136         if doing so would replace the entire pattern.
2137
2138 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2139
2140         PR target/43707
2141         PR target/43709
2142         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
2143         and splitter pattern.  Change splitter operand 1 predicate to
2144         nonmemory_operand.
2145
2146 2010-04-09  Martin Jambor  <mjambor@suse.cz>
2147
2148         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
2149         lattices are addresses of CONST_DECLs with the same initial value.
2150         (ipcp_print_all_lattices): Print values of CONST_DECLs.
2151         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
2152
2153 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
2154             Bernd Schmidt  <bernds@codesourcery.com>
2155
2156         * loop-invariant.c (replace_uses): New static function.
2157         (move_invariant_reg): Use it to ensure we can replace the uses.
2158
2159 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
2160
2161         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
2162         function template.
2163         (picochip_override_options): Enable section anchors only above -O1.
2164         (picochip_reorg): Fixed a couple of build warnings.
2165
2166 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2167
2168         * configure.ac (plugin -rdynamic test): Log result.
2169         * configure: Regenerate.
2170         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
2171         (RDYNAMIC_SPEC): Define.
2172         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
2173
2174 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2175
2176         * configure.ac: Determine Sun ld version numbers.
2177         (comdat_group): Restrict GNU ld version checks to gld.
2178         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
2179         (enable_comdat): Support --enable-comdat.
2180         * configure: Regenerate.
2181         * doc/install.texi (Configuration): Document --enable-comdat.
2182
2183 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2184
2185         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
2186         * config/sol2-gld.h: ... here.
2187         * config.gcc (sparc*-*-solaris2*): Reflect this.
2188         (i[34567]86-*-solaris2*): Use it.
2189
2190 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
2191
2192         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
2193         setup_clocks_p.
2194         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
2195
2196 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2197
2198         PR 42965
2199         * diagnostic.c (diagnostic_initialize): Initialize
2200         some_warnings_are_errors.
2201         (diagnostic_finish): New.
2202         (diagnostic_action_after_output): Call it before exiting.
2203         (diagnostic_report_diagnostic): Do not print message here. Set
2204         some_warnings_are_errors.
2205         * diagnostic.h (diagnostic_context): Delete
2206         issue_warnings_are_errors_message. Add some_warnings_are_errors.
2207         (diagnostic_finish): Declare.
2208         * toplev.c (toplev_main): Call it before exit.
2209
2210 2010-04-09  Jason Merrill  <jason@redhat.com>
2211
2212         PR c++/42623
2213         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
2214         for incomplete type.
2215
2216         PR c++/41788
2217         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
2218         based on a warning flag.
2219
2220 2010-04-09  Richard Guenther  <rguenther@suse.de>
2221
2222         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
2223
2224 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
2225
2226         PR bootstrap/43684
2227         * varasm.c (default_assemble_visibility): Wrap vars that are
2228         set, but unused, by targets without GAS.
2229         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
2230         Remove set, but unused, vars.
2231         (rs6000_legitimize_tls_address): Likewise.
2232         (altivec_expand_dst_builtin): Likewise.
2233         * config/darwin.c (machopic_classify_symbol): Likewise.
2234         (machopic_indirection_name): Likewise.
2235
2236 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
2237
2238         * config/i386/i386.md (DWI): New mode iterator.
2239         (S): New mode attribute.
2240         (shift_operand): Ditto.
2241         (shift_immediate_operand): Ditto.
2242         (ashl_input_operand): Ditto.
2243         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
2244         using SDWIM mode iterator.
2245         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
2246         pattern from *ashl{di,ti}3_1 and corresponding splitters using
2247         DWI mode iterator.
2248         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
2249         from corresponding peephole2 patterns.
2250         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
2251         and x86_64_shift_adj_1 using SWI48 mode iterator.
2252         (x86_shift<mode>_adj_2): Ditto.
2253         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
2254         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
2255         using SWI48 mode iterator.
2256         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
2257         *ashldi3_cmp_rex64 using SWI mode iterator.
2258         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
2259         *ashldi3_cconly_rex64 using SWI mode iterator.
2260         * config/i386/i386.c (ix86_split_ashl): Update for renamed
2261         x86_shift<mode>_adj_{1,2}.
2262         (ix86_split_ashr): Ditto.
2263         (ix86_split_lshr): Ditto.
2264
2265 2010-04-09  Richard Guenther  <rguenther@suse.de>
2266
2267         * target.h (builtin_conversion): Pass in input and output types.
2268         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
2269         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
2270         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
2271         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
2272
2273         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
2274         Handle AVX modes.
2275         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
2276
2277 2010-04-09  Richard Guenther  <rguenther@suse.de>
2278
2279         PR target/43152
2280         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
2281
2282 2010-04-09  Richard Guenther  <rguenther@suse.de>
2283
2284         * tree-vectorizer.h (struct _stmt_vec_info): Document
2285         that vectype is the type of the LHS.
2286         (supportable_widening_operation, supportable_narrowing_operation):
2287         Get both input and output vector types as arguments.
2288         (vect_is_simple_use_1): Declare.
2289         (get_same_sized_vectype): Likewise.
2290         * tree-vect-loop.c (vect_determine_vectorization_factor):
2291         Set STMT_VINFO_VECTYPE to the vector type of the def.
2292         (vectorizable_reduction): Adjust.
2293         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
2294         Adjust.  Specify the output vector type.
2295         (vect_pattern_recog_1): Adjust.
2296         * tree-vect-stmts.c (get_same_sized_vectype): New function.
2297         (vectorizable_call): Adjust.
2298         (vectorizable_conversion): Likewise.
2299         (vectorizable_operation): Likewise.
2300         (vectorizable_type_demotion): Likewise.
2301         (vectorizable_type_promotion): Likewise.
2302         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
2303         the def.
2304         (vect_is_simple_use_1): New function.
2305         (supportable_widening_operation): Get both input and output
2306         vector types.
2307         (supportable_narrowing_operation): Likewise.
2308         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
2309
2310 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
2311
2312         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
2313         __thiscall and _thiscall as predefined macros.
2314         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
2315         thiscall attribute handling.
2316         (ix86_comp_type_attributes): Likewise.
2317         (ix86_function_regparm): Likewise.
2318         (ix86_return_pops_args): Likewise.
2319         (init_cumulative_args): Likewise.
2320         (find_drap_reg): Likewise.
2321         (ix86_static_chain): Likewise.
2322         (x86_this_parameter): Likewise.
2323         (x86_output_mi_thunk): Likewise.
2324         (ix86_attribute_table): Add description for thiscall attribute.
2325         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
2326         * doc/extend.texi: Add documentation for thiscall.
2327
2328 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2329
2330         PR c++/28584
2331         * c.opt (Wint-to-pointer-cast): Available in C++.
2332         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
2333
2334 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
2335
2336         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
2337         * calls.c (expand_call): Pass the function type to aggregate_value_p.
2338         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
2339         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
2340         function type instead.  Reorder and simplify checks.
2341
2342         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
2343
2344 2010-04-08  Jing Yu  <jingyu@google.com>
2345             Zdenek Dvorak  <ook@ucw.cz>
2346
2347         PR tree-optimization/42720
2348         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
2349         loop unswitch conditions here from ...
2350         (tree_unswitch_single_loop): ... here.
2351
2352 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2353
2354         * tree-if-conv.c: Fix comments and simplify logic.
2355
2356 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
2357
2358         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
2359         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
2360         (main_tree_if_conversion): Update call to tree_if_conversion.
2361
2362 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2363
2364         PR 42485
2365         * doc/invoke.texi (-b,-V): Delete.
2366         * doc/tm.texi: Do not mention -b.
2367         * gcc.c (display_help): Delete -b and -V.
2368         (process_command): Delete -b and -V.
2369         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
2370
2371 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
2372             Wolfgang Gellerich  <gellerich@de.ibm.com>
2373
2374         Implement target hook for loop unrolling
2375         * target.h (loop_unroll_adjust): Add a new target hook function.
2376         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
2377         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
2378         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
2379         (s390_loop_unroll_adjust): Implement the new target hook for s390.
2380         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
2381         target hook.
2382         (decide_unroll_stupid): Likewise.
2383
2384 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2385
2386         PR target/43643
2387         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
2388
2389 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2390
2391         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
2392         (Specific, *-*-solaris2*): Likewise.
2393         Don't prefer Sun as over GNU as.
2394
2395 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
2396
2397         * config/s390/s390.c (override_options): Adjust the z10
2398           defaults for max-unroll-times, max-completely-peeled-insns
2399           and max-completely-peel-times.
2400
2401 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2402
2403         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
2404         instructions for z10.
2405         (s390_expand_setmem): Likewise.
2406         (s390_expand_cmpmem): Likewise.
2407
2408 2010-04-08  Richard Guenther  <rguenther@suse.de>
2409
2410         PR tree-optimization/43679
2411         * tree-ssa-pre.c (eliminate): Only propagate copies.
2412
2413 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2414
2415         PR bootstrap/43681
2416         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
2417         set but not used variable warning.
2418
2419 2010-04-08  Wei Guozhi  <carrot@google.com>
2420
2421         PR target/41653
2422         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
2423         (arm_size_rtx_costs): Call the new function when optimized for size.
2424
2425 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
2426
2427         PR debug/43670
2428         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
2429         op0 is not a MEM, just return NULL instead of assertion
2430         failure.
2431         (discover_nonconstant_array_refs): Don't walk debug stmts.
2432
2433 2010-04-08  Doug Kwan  <dougkwan@google.com>
2434
2435         * configure.ac: Recognize gold and do not use its version number
2436         to test ld features.
2437         * configure: Regenerate.
2438
2439 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
2440
2441         PR middle-end/40815
2442         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
2443         (negate_value): Move code to push elements to broken_up_substracts ...
2444         (eliminate_plus_minus_pair): ... here.  Push operands that have no
2445         negative pair to plus_negates.
2446         (repropagate_negates, init_reassoc, fini_reassoc): Update.
2447
2448 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2449
2450         * doc/install.texi (Configuration): Move description of
2451         --enable-lto, --with-libelf*, --enable-gold from Java section to
2452         general section.
2453
2454         * doc/generic.texi (Working with declarations)
2455         (Function Properties, C and C++ Trees): Fix typos.
2456         * doc/sourcebuild.texi (Top Level): Likewise.
2457
2458 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2459
2460         PR c/18624
2461         * tree.h (DECL_READ_P): Define.
2462         (struct tree_decl_common): Add decl_read_flag.
2463         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
2464         a set but not used warning.
2465         (merge_decls): Merge DECL_READ_P flag.
2466         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
2467         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
2468         * c-common.c (handle_used_attribute, handle_unused_attribute):
2469         Likewise.
2470         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
2471         New prototypes.
2472         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
2473         New functions.
2474         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
2475         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
2476         c_parser_binary_expression, c_parser_cast_expression,
2477         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
2478         Call default_function_array_read_conversion instead of
2479         default_function_array_conversion where needed.
2480         (c_parser_unary_expression, c_parser_conditional_expression,
2481         c_parser_postfix_expression_after_primary, c_parser_initelt):
2482         Likewise.  Call mark_exp_read where needed.
2483         (c_parser_statement_after_labels, c_parser_asm_operands,
2484         c_parser_typeof_specifier, c_parser_sizeof_expression,
2485         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
2486         where needed.
2487         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
2488         New.
2489         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
2490         (warn_unused_but_set_parameter): Default to warn_unused
2491         && extra_warnings.
2492         * doc/invoke.texi: Document -Wunused-but-set-variable and
2493         -Wunused-but-set-parameter.
2494
2495         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
2496         used count variable.
2497         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
2498         when operandN variables aren't used in the body of the expander
2499         or splitter.
2500         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
2501         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
2502         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
2503         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
2504         FOR_EACH_IMM_USE_ON_STMT): Likewise.
2505         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
2506         * tree.c (PROCESS_ARG): Likewise.
2507
2508 2010-04-07  Simon Baldwin  <simonb@google.com>
2509
2510         * diagnostic.h (diagnostic_override_option_index): New macro to
2511         set a diagnostic's option_index.
2512         * c-tree.h (c_cpp_error): Add warning reason argument.
2513         * opts.c (_warning_as_error_callback): New.
2514         (register_warning_as_error_callback): Store callback for
2515         warnings enabled via enable_warning_as_error.
2516         (enable_warning_as_error): Call callback, minor code tidy.
2517         * opts.h (register_warning_as_error_callback): Declare.
2518         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
2519         response to -Werror=.
2520         (c_common_init_options): Register warning_as_error_callback in opts.c.
2521         * common.opt: Add -Wno-cpp option.
2522         * c-common.c (struct reason_option_codes_t): Map cpp warning
2523         reason codes to gcc option indexes.
2524         * (c_option_controlling_cpp_error): New function, lookup the gcc
2525         option index for a cpp warning reason code.
2526         * (c_cpp_error): Add warning reason argument, call
2527         c_option_controlling_cpp_error for diagnostic_override_option_index.
2528         * doc/invoke.texi: Document -Wno-cpp.
2529
2530 2010-04-07  Richard Guenther  <rguenther@suse.de>
2531
2532         * ipa-reference.c (mark_load): Use get_base_address.
2533         (mark_store): Likewise.
2534
2535         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
2536         inserting GIMPLE_NOPs into the IL.
2537         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2538         Explicitly strip handled components and indirect references.
2539
2540         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
2541         folding address expressions.
2542         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
2543         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
2544         operand_equal_p to compare decls.
2545         (ptr_deref_may_alias_decl_p): Likewise.
2546         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
2547         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
2548         Handle reversed comparison ops.
2549         * tree-sra.c (asm_visit_addr): Use get_base_address.
2550         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
2551         * ipa-reference.c (mark_address): Use get_base_address.
2552
2553 2010-04-07  Richard Guenther  <rguenther@suse.de>
2554
2555         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
2556         Propagate constants everywhere.
2557
2558 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
2559
2560         PR debug/43516
2561         * tree.c (MAX_INT_CACHED_PREC): Define.
2562         (nonstandard_integer_type_cache): New array.
2563         (build_nonstandard_integer_type): Cache results for precision
2564         <= MAX_INT_CACHED_PREC.
2565
2566 2010-04-07  Richard Guenther  <rguenther@suse.de>
2567
2568         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
2569         -fargument-noalias-global, -fargument-noalias-anything): Remove.
2570         * common.opt: Likewise.
2571         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
2572         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
2573         (nonoverlapping_memrefs_p): Likewise.
2574         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2575         * opts.c (common_handle_option): Handle OPT_fargument_alias,
2576         OPT_fargument_noalias, OPT_fargument_noalias_anything and
2577         OPT_fargument_noalias_global for backward compatibility.
2578
2579 2010-04-07  Richard Guenther  <rguenther@suse.de>
2580
2581         PR tree-optimization/43270
2582         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
2583         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
2584         * tree-ssa-pre.c (phi_translate_1): Adjust.
2585         (fully_constant_expression): Split out vn_reference handling to ...
2586         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
2587         Fold reads from constant strings.
2588         (vn_reference_lookup): Handle fully constant references.
2589         (vn_reference_lookup_pieces): Likewise.
2590         * Makefile.in (expmed.o-warn): Add -Wno-error.
2591
2592 2010-04-07  Martin Jambor  <mjambor@suse.cz>
2593
2594         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
2595
2596 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
2597
2598         PR driver/41594
2599         * gcc.c: Add -static-libstdc++ to list of recognized options.
2600
2601 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2602
2603         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
2604
2605 2010-04-07  Richard Guenther  <rguenther@suse.de>
2606
2607         PR middle-end/42617
2608         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
2609         bases build simple mem attributes to retain points-to information.
2610
2611 2010-04-07  Richard Guenther  <rguenther@suse.de>
2612
2613         PR middle-end/42617
2614         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
2615         preserve points-to related information.
2616
2617 2010-04-07  Richard Guenther  <rguenther@suse.de>
2618
2619         PR middle-end/42617
2620         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
2621         discard plain indirect references.
2622         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
2623         * tree.c (tree_nop_conversion): Likewise.
2624
2625 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
2626
2627         PR debug/43628
2628         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
2629
2630 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
2631
2632         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
2633         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
2634
2635 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2636
2637         * tree-if-conv.c: Fix indentation and comments.
2638
2639 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2640
2641         * tree-if-conv.c: Sort static functions in topological order.
2642
2643 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
2644
2645         * tree-if-conv.c: Fix indentation and comments.
2646
2647 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2648
2649         PR middle-end/43519
2650         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
2651         lang_hooks.types.type_for_size instead of
2652         build_nonstandard_integer_type.
2653         When converting an unsigned type to signed, double its precision.
2654         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
2655         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
2656         (graphite_create_new_loop_guard): When ub + 1 wraps around,
2657         use lb <= ub.
2658
2659 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2660
2661         PR middle-end/43519
2662         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
2663         POINTER_PLUS_EXPR for pointer types.
2664
2665 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2666
2667         PR middle-end/43519
2668         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
2669         * graphite-clast-to-gimple.c: Include langhooks.h.
2670         (max_signed_precision_type): New.
2671         (max_precision_type): Takes two types as arguments.
2672         (precision_for_value): New.
2673         (precision_for_interval): New.
2674         (gcc_type_for_interval): New.
2675         (gcc_type_for_value): New.
2676         (gcc_type_for_clast_term): New.
2677         (gcc_type_for_clast_red): New.
2678         (gcc_type_for_clast_bin): New.
2679         (gcc_type_for_clast_expr): Split up into several functions.
2680         (gcc_type_for_clast_eq): Rewritten.
2681         (compute_bounds_for_level): New.
2682         (compute_type_for_level_1): New.
2683         (compute_type_for_level): New.
2684         (gcc_type_for_cloog_iv): Removed.
2685         (gcc_type_for_iv_of_clast_loop): Rewritten.
2686         (graphite_create_new_loop): Compute the lower and upper bound types
2687         with gcc_type_for_clast_expr.
2688         (graphite_create_new_loop_guard): Same.
2689         (find_cloog_iv_in_expr): Removed.
2690         (compute_cloog_iv_types_1): Removed.
2691         (compute_cloog_iv_types): Removed.
2692         (gloog): Do not call compute_cloog_iv_types.
2693         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
2694         GBB_CLOOG_IV_TYPES.
2695         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
2696         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
2697         (GBB_CLOOG_IV_TYPES): Removed.
2698
2699 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2700
2701         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
2702         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
2703         (detect_commutative_reduction): Same.
2704
2705 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2706
2707         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
2708         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
2709         argument.
2710         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
2711         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
2712         (rewrite_commutative_reductions_out_of_ssa): Same.
2713         * passes.c (execute_function_todo): Call verify_ssa for every pass
2714         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
2715         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
2716         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
2717         with an extra argument.
2718         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
2719         verify_ssa only when the extra argument is true.
2720         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
2721         with an extra argument.
2722         (tree_transform_and_unroll_loop): Same.
2723
2724 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
2725
2726         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
2727         for all the passes of the LNO having LOOP_CLOSED_SSA.
2728         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
2729         * tree-loop-distribution.c (pass_loop_distribution): Same.
2730         * tree-pass.h (TODO_verify_loops): Removed.
2731         * tree-ssa-loop.c (pass_tree_loop_init): Same.
2732         (pass_lim): Same.
2733         (pass_tree_unswitch): Same.
2734         (pass_predcom): Same.
2735         (pass_vectorize): Same.
2736         (pass_linear_transform): Same.
2737         (pass_graphite_transforms): Same.
2738         (pass_iv_canon): Same.
2739         (pass_complete_unroll): Same.
2740         (pass_complete_unrolli): Same.
2741         (pass_parallelize_loops): Same.
2742         (pass_loop_prefetch): Same.
2743         (pass_iv_optimize): Same.
2744
2745 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
2746
2747         PR middle-end/32824
2748         * passes.c (init_optimization_passes): Move pass_lim before
2749         pass_copy_prop and pass_dce_loop.
2750
2751 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2752
2753         PR target/43667
2754         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
2755         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
2756         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
2757         MULTI_* defines for 4 argument vpermil2p* builtins.
2758
2759 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2760
2761         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
2762         * config/i386/i386.c (x86_maybe_negate_const_int): New.
2763         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
2764         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
2765         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
2766         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
2767         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
2768         Use x86_maybe_negate_const_int to output insn mnemonic.
2769         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
2770         check from instruction predicate.  Update comments.
2771         * config/i386/sync.md (sync_add<mode>): Use
2772         x86_maybe_negate_const_int to output insn mnemonic.
2773
2774 2010-04-06  Jan Hubicka  <jh@suse.cz>
2775
2776         PR tree-optimization/42906
2777         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
2778         IGNORE_SELF argument.  Set visited_control_parents for fully
2779         processed BBs.
2780         (find_obviously_necessary_stmts): Update call of
2781         mark_control_dependent_edges_necessary.
2782         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
2783
2784 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
2785
2786         * config/i386/i386.md: Remove comment about 'e' and 'E'
2787         operand modifier.
2788
2789 2010-04-06  Richard Guenther  <rguenther@suse.de>
2790
2791         PR tree-optimization/43627
2792         * tree-vrp.c (extract_range_from_unary_expr): Widenings
2793         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
2794         not varying.
2795
2796 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
2797
2798         * BASE-VER: Change to 4.6.0.
2799
2800         PR target/43638
2801         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
2802         handling.
2803
2804 2010-04-06  Richard Guenther  <rguenther@suse.de>
2805
2806         PR middle-end/43661
2807         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
2808
2809 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2810
2811         * doc/invoke.texi (Optimize Options): Document that LTO
2812         won't remove object access purely due to incompatible
2813         declarations.
2814
2815 2010-04-04  Matthias Klose  <doko@ubuntu.com>
2816
2817         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
2818         Initialize variable.
2819
2820 2010-04-03  Richard Guenther  <rguenther@suse.de>
2821
2822         PR middle-end/42509
2823         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
2824         require a non-NULL MEM_OFFSET.
2825
2826 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
2827
2828         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
2829         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
2830         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
2831         config/alpha/predicates.md, config/arm/arm.md,
2832         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
2833         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
2834         config/darwin9.h, config/darwin.c, config/darwin.h,
2835         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
2836         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
2837         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
2838         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
2839         config/mips/mips.md, config/mn10300/mn10300.c,
2840         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
2841         config/rs6000/aix.h, config/rs6000/dfp.md,
2842         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
2843         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
2844         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
2845         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
2846         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
2847         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
2848         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
2849         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
2850         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
2851         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
2852         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
2853         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
2854         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
2855         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
2856         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
2857         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
2858         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
2859         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
2860         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
2861         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
2862         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
2863         opt-functions.awk, opth-gen.awk, params.def, passes.c,
2864         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
2865         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
2866         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
2867         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
2868         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
2869         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
2870         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
2871         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
2872         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
2873         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
2874         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
2875         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
2876         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
2877         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
2878
2879 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2880
2881         PR other/43620
2882         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
2883         * aclocal.m4: Regenerate.
2884
2885 2010-04-02  Richard Guenther  <rguenther@suse.de>
2886
2887         PR tree-optimization/43629
2888         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
2889         if we have seen a constant value.
2890
2891 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
2892
2893         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
2894
2895 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
2896
2897         PR target/43469
2898         * arm.c (legitimize_tls_address): Adjust call to
2899         gen_tls_load_dot_plus_four.
2900         (arm_note_pic_base): New function.
2901         (arm_cannot_copy_insn_p): Use it.
2902         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
2903         constraint.
2904
2905 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2906
2907         PR bootstrap/43531
2908
2909         Revert:
2910         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2911
2912         * Makefile.in ($(out_object_file)): Depend on
2913         gt-$(basename $(notdir $(out_file))).h.
2914
2915 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
2916
2917         * config.gcc (lm32-*-rtems*): Add t-lm32.
2918
2919 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
2920
2921         * config.gcc: Add lm32-*-rtems*.
2922         * config/lm32/rtems.h: New file.
2923
2924 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
2925
2926         PR target/42609
2927         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
2928
2929 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
2930
2931         * dwarf2out.c (output_compilation_unit_header): For
2932         -gdwarf-4 use version 4 instead of version 3.
2933         (output_line_info): For version 4 and above emit additional
2934         maximum ops per insn header field.
2935         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
2936
2937         * dwarf2out.c (is_c_family, is_java): Remove.
2938         (lower_bound_default): New function.
2939         (add_bound_info, gen_descr_array_type_die): Use it.
2940
2941 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
2942
2943         PR debug/43325
2944         * dwarf2out.c (gen_variable_die): Allow debug info for variable
2945         re-declaration when it happens in a function.
2946
2947 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
2948
2949         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
2950         (cgraph_remove_function_insertion_hook): Same.
2951         (cgraph_call_function_insertion_hooks): Same.
2952
2953 2010-04-01  Richard Guenther  <rguenther@suse.de>
2954
2955         PR middle-end/43614
2956         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
2957         and TREE_THIS_VOLATILE.
2958         (copy_ref_info): Likewise.
2959         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
2960         * tree.c (build6_stat): Ignore side-effects of all but arg5
2961         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
2962         TARGET_MEM_REF.
2963
2964 2010-04-01  Richard Guenther  <rguenther@suse.de>
2965
2966         PR tree-optimization/43607
2967         * ipa-type-escape.c (check_call): Do not access non-existing
2968         arguments.
2969
2970 2010-04-01  Richard Guenther  <rguenther@suse.de>
2971
2972         PR middle-end/43602
2973         Revert
2974         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
2975                     Jack Howarth <howarth@bromo.med.uc.edu>
2976
2977         * tree-profile.c (tree_init_ic_make_global_vars): Make static
2978         variables TLS.
2979
2980 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2981
2982         * doc/install.texi (Prerequisites): Document libelf usability on
2983         IRIX 5/6 and Solaris 2.
2984         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
2985         Update GNU as, GNU ld requirements.
2986         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
2987         Document Sun Studio compiler download.
2988         Update and simplify as, ld recommendations.
2989         (Specific, *-*-solaris2.7): Note obsoletion, removal.
2990
2991 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2992
2993         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
2994         with_tune_32 to pentium4.
2995
2996 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
2997
2998         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
2999
3000 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3001
3002         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
3003         obsoletion, removal.
3004         Update IDO URL.
3005         Document GNU as requirement.
3006         Update configure requirements.
3007         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
3008         Recomment IRIX 6.5.18+.
3009         Document IDF/IDL requirement.
3010         Document GNU as requirement.
3011         Document GNU ld bootstrap failure.
3012         Remove freeware.sgi.com reference.
3013
3014 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3015
3016         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
3017         UNIX V4.0, V5.0 obsoletion, removal.
3018         Remove --with-gc=simple reference.
3019         Update VM requirements during bootstrap.
3020         Remove -oldas bootstrap description.
3021         Update binutils reference.
3022         Remove comparison failure note.
3023
3024 2010-03-31  Richard Guenther  <rguenther@suse.de>
3025             Zdenek Dvorak  <ook@ucw.cz>
3026             Sebastian Pop  <sebastian.pop@amd.com>
3027
3028         PR middle-end/43464
3029         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
3030         with multiple arguments.
3031         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
3032
3033 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3034
3035         * graphite-dependences.c (print_pddr): Call print_pdr with an
3036         extra argument.
3037         * graphite-poly.c (debug_pdr): Add an extra argument for the
3038         verbosity level.
3039         (print_pdr): Same.
3040         (print_pbb_domain): Same.
3041         (print_pbb): Same.
3042         (print_scop_context): Same.
3043         (print_scop): Same.
3044         (print_cloog): Same.
3045         (debug_pbb_domain): Same.
3046         (debug_pbb): Same.
3047         (print_pdrs): Same.
3048         (debug_pdrs): Same.
3049         (debug_scop_context): Same.
3050         (debug_scop): Same.
3051         (debug_cloog): Same.
3052         (print_scop_params): Same.
3053         (debug_scop_params): Same.
3054         (print_iteration_domain): Same.
3055         (print_iteration_domains): Same.
3056         (debug_iteration_domain): Same.
3057         (debug_iteration_domains): Same.
3058         (print_scattering_function): Same.
3059         (print_scattering_functions): Same.
3060         (debug_scattering_function): Same.
3061         (debug_scattering_functions): Same.
3062         * graphite-poly.h (debug_pdr): Update declaration.
3063         (print_pdr): Same.
3064         (print_pbb_domain): Same.
3065         (print_pbb): Same.
3066         (print_scop_context): Same.
3067         (print_scop): Same.
3068         (print_cloog): Same.
3069         (debug_pbb_domain): Same.
3070         (debug_pbb): Same.
3071         (print_pdrs): Same.
3072         (debug_pdrs): Same.
3073         (debug_scop_context): Same.
3074         (debug_scop): Same.
3075         (debug_cloog): Same.
3076         (print_scop_params): Same.
3077         (debug_scop_params): Same.
3078         (print_iteration_domain): Same.
3079         (print_iteration_domains): Same.
3080         (debug_iteration_domain): Same.
3081         (debug_iteration_domains): Same.
3082         (print_scattering_function): Same.
3083         (print_scattering_functions): Same.
3084         (debug_scattering_function): Same.
3085         (debug_scattering_functions): Same.
3086
3087 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3088
3089         * graphite-poly.c (print_scattering_function_1): New.
3090         (print_scattering_function): Call it.
3091         (print_scop_params): Remove spaces at the end of lines.
3092         (print_cloog): New.
3093         (debug_cloog): New.
3094         * graphite-poly.h (print_cloog): Declared.
3095         (debug_cloog): Declared.
3096
3097 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3098
3099         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
3100         in loop->header.
3101         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
3102         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
3103         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
3104         to switch between adding the IV bump in loop->latch or in loop->header.
3105
3106 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3107
3108         * graphite-poly.c (print_scattering_function): Pretty print following
3109         the scoplib format.
3110         (print_pdr): Same.
3111         (print_pbb_domain): Same.
3112         (dump_gbb_cases): Same.
3113         (dump_gbb_conditions): Same.
3114         (print_pdrs): Same.
3115         (print_pbb): Same.
3116         (print_scop_params): Same.
3117         (print_scop_context): Same.
3118         (print_scop): Same.
3119         (print_pbb_body): New.
3120         (lst_indent_to): New.
3121         (print_lst): Start new lines with a #.
3122         * graphite-poly.h (pbb_bb): New.
3123         (pbb_index): Use pbb_bb.
3124         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
3125         disjuncts.
3126         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
3127
3128 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3129
3130         * dwarf2out.c (size_of_die): For -gdwarf-4 use
3131         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
3132         and 0 instead of 1 for dw_val_class_flag.
3133         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
3134         dw_val_class_range_list, dw_val_class_loc_list,
3135         dw_val_class_lineptr and dw_val_class_macptr, use
3136         DW_FORM_flag_present for dw_val_class_flag and
3137         DW_FORM_exprloc for dw_val_class_loc.
3138         (output_die): For -gdwarf-4 print dw_val_class_loc
3139         size as uleb128 instead of 1 or 2 bytes and don't print
3140         anything for dw_val_class_flag.
3141
3142         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
3143         instead of cselib_lookup following by tweaking locs->setting_insn.
3144
3145         PR bootstrap/43596
3146         * cselib.c (cselib_process_insn): Clear cselib_current_insn
3147         even before returning from label, setjmp call or volatile asm
3148         handling.
3149
3150 2010-03-31  Richard Guenther  <rguenther@suse.de>
3151
3152         PR middle-end/43600
3153         * cgraphunit.c (cgraph_output_in_order): Do not allocate
3154         temporary data on stack.
3155
3156 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3157
3158         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
3159         (PUSHSECTION_ASM_OP): Remove.
3160         (POPSECTION_ASM_OP): Remove.
3161         (PUSHSECTION_FORMAT): Remove.
3162         * config/sol2.h (PUSHSECTION_FORMAT): Define.
3163         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
3164         * config/sol2.c (solaris_output_init_fini): Use it.
3165
3166 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3167
3168         PR 43574
3169         * opt-functions.awk (var_type_struct): Use signed char type
3170         for simple variables.
3171
3172 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3173
3174         * config/sol2.c: Include output.h.
3175         (solaris_assemble_visibility): New function.
3176         * config/t-sol2 (sol2.o): Add output.h dependency.
3177         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
3178         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
3179         Redefine.
3180
3181 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
3182
3183         PR target/43580
3184         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
3185         V2SImode or XFmode on PRE_DEC.
3186
3187         PR debug/43557
3188         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
3189         BLKmode.
3190
3191 2010-03-31  Jie Zhang  <jie@codesourcery.com>
3192
3193         PR 43562
3194         * reload.h (caller_save_initialized_p): Declare.
3195         * toplev.c (backend_init_target): Don't call
3196         init_caller_save but set caller_save_initialized_p to false.
3197         * caller-save.c (caller_save_initialized_p): Define.
3198         (init_caller_save): Check caller_save_initialized_p.
3199         * ira.c (ira): Call init_caller_save if flag_caller_saves.
3200
3201 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3202
3203         PR target/39048
3204         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
3205         and soft-fp/t-softfp to tmake_file.
3206         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
3207         (LIBGCC2_TF_CEXT): Define.
3208         (TF_SIZE): Define.
3209
3210 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
3211
3212         PR debug/42977
3213         * cselib.c (n_useless_values): Document handling of debug locs.
3214         (n_useless_debug_values, n_debug_values): New variables.
3215         (new_elt_loc_list): Don't add to debug values, keep count.
3216         (promote_debug_loc): New.
3217         (cselib_reset_table): Zero new variables.
3218         (entry_and_rtx_equal_p): Promote debug locs.
3219         (discard_useless_locs): Increment n_useless_debug_values for
3220         debug values.
3221         (remove_useless_values): Adjust n_useless_values and n_debug_values
3222         with n_useless_debug_values.
3223         (add_mem_for_addr): Promote debug locs.
3224         (cselib_lookup_mem): Likewise.
3225         (cselib_lookup_addr): Renamed to...
3226         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
3227         (cselib_log_lookup): ... this.  Turn into...
3228         (cselib_lookup_addr): ... new wrapper.
3229         (cselib_lookup_from_insn): New.
3230         (cselib_invalidate_regno): Increment n_useless_debug_values for
3231         debug values.
3232         (cselib_invalidate_mem): Likewise.
3233         (cselib_process_insn): Take n_deleted and n_debug_values into
3234         account to guard remove_useless_value call.
3235         (cselib_finish): Zero n_useless_debug_values.
3236         * cselib.h (cselib_lookup_from_insn): Declare.
3237         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
3238         (sched_analyze_2): Likewise.
3239
3240 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
3241
3242         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
3243         functions.
3244         (adjust_mems): Replace narrowing SUBREG of expression containing
3245         just PLUS, MINUS, MULT and ASHIFT of registers and constants
3246         with operations in the narrower mode.
3247
3248         PR debug/43593
3249         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
3250         regs_invalidated_by_call instead all call_used_reg_set registers.
3251
3252 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
3253
3254         PR middle-end/43430
3255         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
3256         pointer comparisons with types_compatible_p.
3257         * tree-vect-stmts.c (vectorizable_call): Same.
3258         (vectorizable_condition): Same.
3259
3260 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3261
3262         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
3263         stack check if the mask would be zero.
3264
3265 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3266             Jack Howarth <howarth@bromo.med.uc.edu>
3267
3268         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3269         variables TLS.
3270
3271 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
3272
3273         PR other/25232
3274         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
3275         and __unordtf2.
3276         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
3277         Include ___unordxf2 and ___unordtf2.
3278         * config/i386/libgcc-glibc.ver: Do not define inheritance from
3279         GCC_4.4.0 here.
3280
3281 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
3282
3283         * config/lm32/t-lm32: New file.
3284         * config.gcc: Use the above file when targetting lm32.
3285
3286 2010-03-28  Duncan Sands  <baldrick@free.fr>
3287
3288         * Makefile.in (PLUGIN_HEADERS): Add except.h.
3289
3290 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3291
3292         PR middle-end/43431
3293         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
3294         Improve vectorization cost model diagnostic.
3295
3296 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
3297
3298         PR middle-end/43436
3299         * tree-vect-data-refs.c (vect_analyze_data_refs): When
3300         compute_data_dependences_for_loop returns false, early exit
3301         and output an extra diagnostic for the failed data reference
3302         analysis.
3303
3304 2010-03-29  Richard Guenther  <rguenther@suse.de>
3305
3306         PR tree-optimization/43560
3307         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
3308         (can_sm_ref_p): Treat stores to readonly locations as trapping.
3309
3310 2010-03-29  Jie Zhang  <jie@codesourcery.com>
3311
3312         PR 43564
3313         * toplev.c (process_options): Set optimization_default_node
3314         and optimization_current_node.
3315         * opts.c (decode_options): Don't set optimization_default_node
3316         and optimization_current_node.
3317
3318 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
3319
3320         * config/rtems.h: Abandon -qrtems_debug.
3321
3322 2010-03-28  Jan Hubicka  <jh@suse.cz>
3323
3324         PR tree-optimization/43505
3325         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
3326         map should not be copied.
3327
3328 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3329
3330         PR middle-end/41674
3331         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
3332         cdtors, set DECL_PRESERVE_P.
3333         * ipa.c (cgraph_externally_visible_p): Return true if declaration
3334         should be preseved.
3335
3336 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
3337
3338         PR tree-optimization/43528
3339         * stor-layout.c (place_field): Check that constant fits into
3340         unsigned HWI when skipping calculation of MS bitfield layout.
3341
3342 2010-03-27  Jan Hubicka  <jh@suse.cz>
3343
3344         PR middle-end/43391
3345         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
3346         notice_global_symbol work.
3347
3348 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
3349
3350         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
3351         instead of dwarf2out_decl.
3352         (struct var_loc_node): Remove section_label field.
3353         (dwarf2out_function_decl): New function.
3354         (dwarf2out_var_location): Don't set section_label field.
3355         (dwarf2out_begin_function): Don't empty decl_loc_table here.
3356
3357 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3358
3359         PR tree-optimization/43544
3360         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
3361         First argument for builtin vectorized function hook is now a
3362         tree to be able to distinguish between machine specific and
3363         standard builtins.
3364         * targhooks.c (default_builtin_vectorized_function): Ditto.
3365         * targhooks.h (default_builtin_vectorized_function): Ditto.
3366         * target.h (struct gcc_target): Ditto.
3367         * tree-vect-stmts.c (vectorizable_function): Ditto.
3368         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
3369         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
3370         Ditto.
3371
3372 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
3373
3374         PR c/43381
3375         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
3376         nested binding iff it is a FUNCTION_DECL.
3377         (store_parm_decls_newstyle): Pass nested=true to bind for
3378         FUNCTION_DECLs amongst parameters.
3379
3380 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3381
3382         * var-tracking.c (vt_expand_loc_callback): Don't run
3383         cselib_expand_value_rtx_cb in dummy mode if
3384         cselib_dummy_expand_value_rtx_cb returned false.
3385
3386         * var-tracking.c (emit_note_insn_var_location): For one part
3387         notes with offset 0, don't add EXPR_LIST around the location.
3388         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
3389         add_location_or_const_value_attribute): Adjust for that change.
3390
3391         PR debug/43540
3392         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
3393         into first operand and location into second.
3394         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
3395         dw_cfi_oprnd_loc for DW_CFA_expression.
3396         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
3397         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
3398         assume first argument is regnum and second argument is location.
3399
3400 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3401
3402         PR target/42113
3403         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
3404         of scratch register to DImode.  Split to DImode comparison operator.
3405         Use SImode subreg of scratch register in the multiplication.
3406         (*cmp_sadd_sidi): Ditto.
3407         (*cmp_ssub_si): Ditto.
3408         (*cmp_ssub_sidi): Ditto.
3409
3410 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
3411
3412         PR target/43524
3413         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
3414         Remove invalid assert and wrong comment.
3415
3416 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
3417
3418         PR debug/43516
3419         * flags.h (final_insns_dump_p): New extern.
3420         * final.c (final_insns_dump_p): New variable.
3421         (rest_of_clean_state): Set it before -fdump-final-insns=
3422         dumping, clear afterwards.
3423         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
3424         MEM_ALIAS_SET on MEMs.
3425
3426 2010-03-26  David S. Miller  <davem@davemloft.net>
3427
3428         * configure.ac: Fix sparc GOTDATA_OP bug check.
3429         * configure: Rebuild.
3430
3431 2010-03-26  Alan Modra  <amodra@gmail.com>
3432
3433         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
3434
3435 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3436
3437         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
3438         TLS_SECTION_ASM_FLAG.
3439
3440 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
3441
3442         PR bootstrap/43511
3443         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
3444         Clear first_function_block_is_cold.
3445
3446         PR c/43385
3447         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
3448         argument if the argument is truth_value_p.
3449
3450 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3451
3452         * config/rs6000/constraints.md: Update copyright year for my changes.
3453
3454         PR target/43484
3455         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
3456         used in reg+reg addressing, swap registers.
3457
3458 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3459
3460         PR debug/43293
3461         * target.h (struct gcc_target): Add code_end hook.
3462         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
3463         if not yet defined.
3464         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
3465         * toplev.c (compile_file): Call targetm.asm_out.code_end
3466         hook before unwind info/debug info output.
3467         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
3468         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
3469         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3470         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
3471         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
3472         * config/i386/i386.c (ix86_file_end): Renamed to...
3473         (ix86_code_end): ... this.  Make static.  Don't call
3474         file_end_indicate_exec_stack.  Emit unwind info using
3475         final_start_function/final_end_function.
3476         (darwin_x86_file_end): Remove.
3477         (TARGET_ASM_CODE_END): Define.
3478         * config/i386/i386.h (TARGET_ASM_FILE_END,
3479         NEED_INDICATE_EXEC_STACK): Don't define.
3480         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
3481         (TARGET_ASM_FILE_END): Define to darwin_file_end.
3482         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
3483         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
3484
3485         PR target/43498
3486         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
3487         at the beginning and final_end_function at the end.
3488         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3489
3490 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3491
3492         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
3493         and Sun as TLS syntax.
3494         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
3495         * configure: Regenerate.
3496         * config.in: Regenerate.
3497         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
3498         (default_elf_asm_named_section): Use it.
3499         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
3500         (i386_output_dwarf_dtprel): Likewise.
3501         (output_addr_const_extra): Likewise.
3502         (output_pic_addr_const): Lowercase @GOTTPOFF.
3503         (output_addr_const_extra): Likewise.
3504         (output_pic_addr_const): Lowercase @GOTNTPOFF.
3505         (output_addr_const_extra): Likewise.
3506         (output_pic_addr_const): Lowercase @INDNTPOFF.
3507         (output_addr_const_extra): Likewise.
3508         (output_pic_addr_const): Lowercase @NTPOFF.
3509         (output_addr_const_extra): Likewise.
3510         (output_pic_addr_const): Lowercase @TPOFF.
3511         (output_addr_const_extra): Likewise.
3512         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
3513         (*tls_global_dynamic_64): Likewise.
3514         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
3515         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
3516
3517         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
3518         (ASM_OUTPUT_TLS_COMMON): Use it.
3519         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
3520
3521         PR target/38118
3522         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
3523         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
3524         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
3525         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
3526         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3527         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
3528
3529 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3530
3531         * config/i386/i386.c (override_options): Don't accept
3532         -mtls-dialect=sun any longer.
3533         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
3534         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
3535         (*tls_local_dynamic_base_32_sun): Likewise.
3536         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
3537
3538 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
3539
3540         PR debug/43508
3541         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
3542         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
3543
3544         PR debug/43479
3545         * ira.c (adjust_cleared_regs): New function.
3546         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
3547
3548         PR debug/19192
3549         PR debug/43479
3550         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
3551         from gimple_block.
3552         * expr.c (expand_expr_real): Restore previous
3553         curr_insn_source_location and curr_insn_block after
3554         expand_expr_real_1 call.
3555         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
3556         instead of expand_expr_real_1.
3557
3558 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
3559
3560         PR rtl-optimization/43413
3561         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
3562         hard regs too.
3563
3564 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
3565
3566         PR target/43348
3567         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
3568         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
3569
3570 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
3571
3572         * config/i386/i386.c (ix86_target_string): Add -mfma.
3573         Fix a typo in comment.
3574
3575 2010-03-22  Mike Stump  <mikestump@comcast.net>
3576
3577         PR target/23071
3578         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
3579         Don't overly align based upon packed packed fields.
3580
3581 2010-03-22  Jason Merrill  <jason@redhat.com>
3582
3583         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
3584         Use () rather than [], and move before the element type.
3585
3586 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3587
3588         * doc/configfiles.texi (Configuration Files): Removed
3589         fixinc/Makefile*, intl/Makefile.*.
3590         * doc/makefile.texi: Fixed markup. Abstract from version
3591         control system used.
3592         (Makefile): Removed obsolete gcc/java/parse.y example.
3593         * doc/sourcebuild.texi: Likewise.
3594         (Top Level): Added config, gnattools, libdecnumber, libgcc,
3595         libgomp, libssp.  Removed fastjar.
3596         (Miscellaneous Docs): Clarify location.
3597         Added COPYING3, COPYING3.LIB.
3598         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
3599
3600 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3601
3602         PR target/38085
3603         * config/i386/i386.c (x86_function_profiler)
3604         [!NO_PROFILE_COUNTERS]: Fix typo.
3605         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
3606         instead of callq.
3607
3608 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
3609             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3610
3611         * doc/sourcebuild.texi (Test Directives): Split into six
3612         subsections, with most of the current text in new subsections
3613         Directives, Selectors, and Final Actions.
3614         (Directives): Split list of test directives into multiple
3615         subsubsections.
3616         (Selectors): Describe use and syntax of selectors.
3617         (Effective-Target Keywords): Describe all existing keywords.
3618         (Add Options): Describe features for dg-add-options.
3619         (Require Support): Describe variants of dg-require-support.
3620         (Final Actions): Describe commands to use in dg-final.
3621
3622 2010-03-22  Michael Matz  <matz@suse.de>
3623
3624         PR middle-end/43475
3625         * recog.c (validate_replace_rtx_group): Replace also in
3626         REG_EQUAL and REG_EQUIV notes.
3627
3628 2010-03-22  Richard Guenther  <rguenther@suse.de>
3629
3630         PR tree-optimization/43390
3631         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
3632         sure vector extracts are type correct.
3633
3634 2010-03-22  Richard Guenther  <rguenther@suse.de>
3635
3636         PR middle-end/40106
3637         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
3638         x * sqrt (x) even when optimizing for size if the target
3639         has native support for sqrt.
3640
3641 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
3642
3643         * varasm.c (make_decl_rtl_for_debug): Also clear
3644         flag_mudflap for the duration of make_decl_rtl call.
3645
3646         PR debug/43443
3647         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
3648         locs from preserved VALUEs.
3649
3650 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3651
3652         PR middle-end/42718
3653         * pa.md (movmemsi): Set align to one if zero.
3654         (movmemdi): Likewise.
3655
3656 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
3657
3658         PR target/42321
3659         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
3660         with their corresponding prologue pushes.
3661
3662 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
3663
3664         PR target/43156
3665         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
3666         at the begining or end.
3667         (spu_expand_epilogue): Likewise.
3668
3669 2010-03-20  Richard Guenther  <rguenther@suse.de>
3670
3671         PR rtl-optimization/43438
3672         * combine.c (make_extraction): Properly zero-/sign-extend an
3673         extraction of the low part of a CONST_INT.  Also handle
3674         CONST_DOUBLE.
3675
3676 2010-03-19  Mike Stump  <mikestump@comcast.net>
3677
3678         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
3679         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
3680         (override_options): Use SUBTARGET32_DEFAULT_CPU.
3681
3682 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
3683
3684         PR c/43211
3685         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
3686         an error.
3687
3688 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
3689
3690         PR rtl-optimization/42258
3691         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
3692         use that may match DEF.
3693
3694         PR target/40697
3695         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
3696         the cost of loading the constant rather than assuming
3697         COSTS_N_INSNS (1).
3698         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
3699         outer code is AND, do the same tests as the andsi3 expander and
3700         return COSTS_N_INSNS (1) if and is cheap.
3701
3702         * optabs.c (avoid_expensive_constant): Fix formatting.
3703
3704 2010-03-19  Michael Matz  <matz@suse.de>
3705
3706         PR c++/43116
3707         * attribs.c (decl_attributes): When rebuilding a function pointer
3708         type use the same qualifiers as the original pointer type.
3709
3710 2010-03-19  Martin Jambor  <mjambor@suse.cz>
3711
3712         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
3713         and is_gimple_ip_invariant_address.
3714
3715 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3716
3717         Revert
3718         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3719
3720         * config/arm/arm.c (arm_override_options): Turn off
3721         flag_dwarf2_cfi_asm for AAPCS variants.
3722
3723 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3724
3725         PR target/43399
3726         * config/arm/arm.c (emit_multi_reg_push): Update comments.
3727         Use PRE_MODIFY instead of PRE_DEC.
3728         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
3729         (vfp_emit_fstmd): Likewise.
3730
3731 2010-03-19  Michael Matz  <matz@suse.de>
3732
3733         PR target/43305
3734         * builtins.c (expand_builtin_interclass_mathfn,
3735         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
3736         if that fails.
3737
3738 2010-03-19  Richard Guenther  <rguenther@suse.de>
3739
3740         PR tree-optimization/43415
3741         * tree-ssa-pre.c (phi_translate): Split out worker to ...
3742         (phi_translate_1): ... this.
3743         (phi_translate): Move all caching here.  Cache all NARY
3744         and REFERENCE translations.
3745
3746 2010-03-19  David S. Miller  <davem@davemloft.net>
3747
3748         With help from Eric Botcazou.
3749         * config/sparc/sparc.c: Include dwarf2out.h.
3750         (emit_pic_helper): Delete.
3751         (pic_helper_symbol_name): Delete.
3752         (pic_helper_emitted_p): Delete.
3753         (pic_helper_needed): New.
3754         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
3755         (get_pc_thunk_name): New.
3756         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
3757         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
3758         Set pic_helper_needed to true.  Don't call emit_pic_helper.
3759         (sparc_expand_prologue): Update load_pic_register call.
3760         (sparc_output_mi_thunk): Likewise.
3761         (sparc_file_end): Emit a hidden comdat symbol for the PIC
3762         thunk if possible.  Output CFI information as needed.
3763
3764 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3765             Jack Howarth <howarth@bromo.med.uc.edu>
3766
3767         PR target/36399
3768         * config/i386/i386.h: Fix ABI on darwin x86-32.
3769
3770 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
3771
3772         * tree.h: Declare make_decl_rtl_for_debug.
3773         * varasm.c (make_decl_rtl_for_debug): New.
3774         * dwarf2out.c (rtl_for_decl_location): Call it.
3775         * cfgexpand.c (expand_debug_expr): Call it.
3776
3777 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3778
3779         PR bootstrap/43399
3780         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
3781         mem_mode.
3782
3783         PR bootstrap/43403
3784         * var-tracking.c (vt_init_cfa_base): Do nothing if
3785         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
3786
3787 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
3788
3789         PR debug/42873
3790         * var-tracking.c (canonicalize_vars_star): New.
3791         (dataflow_post_merge_adjust): Use it.
3792
3793 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
3794
3795         PR debug/43058
3796         * var-tracking.c (non_suitable_const): New function.
3797         (add_uses): For DEBUG_INSNs with constants, don't record any
3798         value, instead just the constant value itself.
3799         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
3800         is not VAR_LOC_UNKNOWN_P, set var to the constant.
3801         (emit_notes_in_bb): Likewise.
3802         (emit_note_insn_var_location): For onepart variables if
3803         cur_loc is a VOIDmode constant, use DECL_MODE.
3804
3805 2010-03-18  Martin Jambor  <mjambor@suse.cz>
3806
3807         PR middle-end/42450
3808         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
3809         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
3810         all non-clones.  Moved call redirection...
3811         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
3812         (cgraph_materialize_all_clones): Dispose of all
3813         combined_args_to_skip bitmaps.
3814         (verify_cgraph_node): Do not check for edges pointing to wrong
3815         nodes in inline clones.
3816         * tree-inline.c (copy_bb): Call
3817         cgraph_redirect_edge_call_stmt_to_callee.
3818         * ipa.c (cgraph_remove_unreachable_nodes): Call
3819         cgraph_node_remove_callees even when there are used clones.
3820
3821 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
3822
3823         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
3824
3825 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
3826
3827         PR target/43383
3828         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
3829         for 32bit.
3830
3831 2010-03-18  Michael Matz  <matz@suse.de>
3832
3833         PR middle-end/43419
3834         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
3835         into sqrt(x) if we need to preserve signed zeros.
3836
3837 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
3838             Eric Botcazou  <ebotcazou@adacore.com>
3839
3840         PR rtl-optimization/43360
3841         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
3842         note if we don't know its invariant status.
3843
3844 2010-03-18  Michael Matz  <matz@suse.de>
3845
3846         PR tree-optimization/43402
3847         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
3848         PHI chains of ssa names registered for update.
3849
3850 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
3851
3852         PR target/42427
3853         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
3854         non-offsettable and pre_modify update addressing.
3855         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
3856         and "2" alternatives "#".
3857         (*movdd_softfloat32): Make all alternatives "#";
3858         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
3859         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
3860         (*movdf_softfloat32): Make all alternatives "#";
3861         (movdi): Use the new DIFD mode iterator to create a common splitter
3862         for movdi, movdf and movdd patterns.
3863
3864 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
3865
3866         * common.opt (dumpdir): Remove redundant tab.
3867
3868 2010-03-17  Martin Jambor  <mjambor@suse.cz>
3869
3870         PR tree-optimization/43347
3871         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
3872         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
3873
3874 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3875
3876         PR rtl-optimization/42216
3877         * regrename.c (create_new_chain): New function, broken out from...
3878         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
3879         appending a use to an empty chain.
3880         (build_def_use): Remove previous changes that convert OP_INOUT to
3881         OP_OUT operands; instead detect the case where an OP_INOUT operand
3882         uses a previously untracked register and create an empty chain for it.
3883
3884 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3885
3886         * doc/extend.texi (Function Attributes): Rewrite unfinished
3887         sentence in ms_abi documentation.
3888
3889 2010-03-17  Alan Modra  <amodra@gmail.com>
3890
3891         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
3892         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
3893         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
3894         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
3895
3896 2010-03-16  Richard Henderson  <rth@redhat.com>
3897
3898         PR middle-end/43365
3899         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
3900         (lower_try_finally): Save and restore eh_seq around the expansion
3901         of the try-finally.
3902
3903 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
3904
3905         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
3906         statements before splitting block.
3907
3908 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3909
3910         * doc/sourcebuild.texi (Testsuites): Fix markup.
3911         Use pathnames relative to gcc/testsuite.
3912         (Test Directives): Move description of how timeout is determined.
3913         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
3914         (C Tests): Correct gcc.misc-tests directory.
3915         Framework tests now live in gcc.test-framework.
3916
3917 2010-03-16  Richard Guenther  <rguenther@suse.de>
3918
3919         PR middle-end/43379
3920         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
3921         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
3922
3923 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
3924             Alexandre Oliva  <aoliva@redhat.com>
3925
3926         PR tree-optimization/42917
3927         * lambda-code.c (remove_iv): Skip debug statements.
3928         (lambda_loopnest_to_gcc_loopnest): Likewise.
3929         (not_interesting_stmt): Debug statements are not interesting.
3930
3931 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
3932
3933         PR debug/43051
3934         PR debug/43092
3935         * cselib.c (cselib_preserve_constants,
3936         cfa_base_preserved_val): New static variables.
3937         (preserve_only_constants): New function.
3938         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
3939         clear its REG_VALUES.  If cselib_preserve_constants, don't
3940         empty the whole hash table, but preserve there VALUEs with constants,
3941         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
3942         (cselib_preserve_cfa_base_value): New function.
3943         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
3944         (cselib_init): Change argument to int bitfield.  Set
3945         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
3946         is in it.
3947         (cselib_finish): Clear cselib_preserve_constants and
3948         cfa_base_preserved_val.
3949         * cselib.h (enum cselib_record_what): New enum.
3950         (cselib_init): Change argument to int.
3951         (cselib_preserve_cfa_base_value): New prototype.
3952         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
3953         * dse.c (dse_step1): Likewise.
3954         * cfgcleanup.c (thread_jump): Likewise.
3955         * sched-deps.c (sched_analyze): Likewise.
3956         * gcse.c (local_cprop_pass): Likewise.
3957         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
3958         If FN is non-NULL, call the callback always and whenever it returns
3959         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
3960         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
3961         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
3962         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
3963         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
3964         * var-tracking.c: Include recog.h.
3965         (bb_stack_adjust_offset): Remove.
3966         (vt_stack_adjustments): Don't call it, instead just gather the
3967         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
3968         (adjust_stack_reference): Remove.
3969         (compute_cfa_pointer): New function.
3970         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
3971         (struct adjust_mem_data): New type.
3972         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
3973         functions.
3974         (get_address_mode): New function.
3975         (replace_expr_with_values): Use it.
3976         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
3977         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
3978         (adjust_sets): Remove.
3979         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
3980         Use get_address_mode.
3981         (get_adjusted_src): Remove.
3982         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
3983         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
3984         (add_with_sets): Don't call adjust_sets.
3985         (fp_setter, vt_init_cfa_base): New functions.
3986         (vt_initialize): Change return type to bool.  Move most of pool etc.
3987         initialization to the beginning of the function from end.  Pass
3988         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
3989         If !frame_pointer_needed, call vt_stack_adjustment before mos
3990         vector is filled, call vt_init_cfa_base if argp/framep has been
3991         eliminated to sp.  If frame_pointer_needed and argp/framep has
3992         been eliminated to hard frame pointer, set
3993         hard_frame_pointer_adjustment and call vt_init_cfa_base after
3994         encountering fp setter in the prologue.  For MO_ADJUST, call
3995         log_op_type before pusing the op into mos vector, not afterwards.
3996         Call adjust_insn before cselib_process_insn/add_with_sets,
3997         call cancel_changes (0) afterwards.
3998         (variable_tracking_main_1): Adjust for vt_initialize calling
3999         vt_stack_adjustments and returning whether it succeeded or not.
4000
4001 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
4002
4003         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
4004         debug statements.
4005
4006 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
4007
4008         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
4009         has been set.
4010         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
4011         drap_reg has not been set.
4012
4013 2010-03-15  Michael Matz  <matz@suse.de>
4014
4015         PR middle-end/43300
4016         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
4017         use it to expand block copies.
4018         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
4019         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
4020         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
4021
4022 2010-03-15  Richard Guenther  <rguenther@suse.de>
4023
4024         PR tree-optimization/43367
4025         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
4026         elimination check.
4027
4028 2010-03-15  Richard Guenther  <rguenther@suse.de>
4029
4030         PR tree-optimization/43317
4031         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
4032
4033 2010-03-15  Martin Jambor  <mjambor@suse.cz>
4034
4035         PR tree-optimization/43141
4036         * tree-sra.c (create_abstract_origin): New function.
4037         (modify_function): Call create_abstract_origin.
4038
4039 2010-03-15  Chris Demetriou  <cgd@google.com>
4040
4041         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
4042         wasn't copied.
4043
4044 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4045
4046         PR middle-end/43354
4047         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
4048         call insert_out_of_ssa_copy for default definitions.
4049
4050 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4051
4052         * graphite-clast-to-gimple.c (my_long_long): Defined.
4053         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
4054         * graphite-sese-to-poly.c (my_long_long): Defined.
4055         (scop_ivs_can_be_represented): Use it.
4056
4057 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4058
4059         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
4060         graphite-max-bbs-per-function, and loop-block-tile-size.
4061         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
4062         with "maximum".
4063         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
4064
4065 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4066
4067         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
4068         forward declaration.
4069         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
4070         (add_upper_bounds_from_estimated_nit): New.
4071         (build_loop_iteration_domains): Use it.
4072
4073 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4074
4075         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
4076
4077 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4078
4079         PR middle-end/43306
4080         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
4081         should be an INTEGER_CST.  Also handle CASE_CONVERT.
4082
4083 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4084
4085         * graphite.c (graphite_initialize): To bound the number of bbs per
4086         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4087         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
4088         * doc/invoke.texi: Document it.
4089
4090 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4091
4092         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
4093         * graphite-sese-to-poly.h (build_poly_scop): Same.
4094
4095 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
4096
4097         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
4098         the number of parameters in the scop.  Use as an upper bound
4099         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
4100         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
4101         * doc/invoke.texi: Document it.
4102
4103 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
4104
4105         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
4106         * doc/c-tree.texi: Remove.
4107         * doc/generic.texi: Merge c-tree.texi here.
4108         * doc/gccint.texi (Trees): Remove menu entry.
4109         (c-tree.texi): Remove @include.
4110         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
4111         * doc/languages.texi (Reading RTL): Ditto.
4112
4113 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
4114
4115         PR target/42869
4116         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
4117
4118 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4119
4120         PR middle-end/42431
4121         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
4122         code added to work around reload clobbering CONST insns.
4123
4124 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
4125
4126         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
4127         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
4128         (cselib_preserve_only_values): Remove retain argument, don't
4129         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
4130         * cselib.h (cselib_preserve_only_values): Remove retain argument.
4131         * var-tracking.c (micro_operation): Move insn field before union.
4132         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
4133         (struct variable_tracking_info_def): Remove n_mos field, change
4134         mos into a vector of micro_operations.
4135         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
4136         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
4137         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
4138         changing into a vector.
4139         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
4140         come before all other uops generated by add_stores.
4141         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
4142         argument removal.
4143         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
4144         a vector.  Run just one pass over the bbs instead of separate counting
4145         and computation phase.
4146         (vt_finalize): Free VTI (bb)->mos vector instead of array.
4147
4148         PR debug/43329
4149         * tree-inline.c (remap_decls): Put old_var rather than origin_var
4150         into *nonlocalized_list vector.
4151         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
4152         even if origin is non-NULL.
4153         (gen_variable_die): Likewise.
4154         (process_scope_var): Don't change origin.
4155         (gen_decl_die): Likewise.
4156         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
4157         before adding new edges instead of after it, fix moving over
4158         debug stmts.
4159
4160 2010-03-11  David S. Miller  <davem@davemloft.net>
4161
4162         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
4163         of four.
4164         * configure: Rebuild.
4165
4166 2010-03-11  Martin Jambor  <mjambor@suse.cz>
4167
4168         PR tree-optimization/43257
4169         * tree.c (assign_assembler_name_if_neeeded): New function.
4170         (free_lang_data_in_cgraph): Assembler name assignment moved to the
4171         above new function.
4172         * tree.h (assign_assembler_name_if_neeeded): Declare.
4173         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
4174         the function if needed.
4175
4176 2010-03-11  Chris Demetriou  <cgd@google.com>
4177
4178         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
4179         include/stdint-gcc.h, and include/stdint.h world-readable.
4180
4181 2010-03-11  Richard Guenther  <rguenther@suse.de>
4182
4183         PR tree-optimization/43255
4184         * tree-vrp.c (process_assert_insertions_for): Do not insert
4185         asserts for trivial conditions.
4186
4187 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4188
4189         PR tree-optimization/43280
4190         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
4191         generation.  Move calculation of size out of the if branch.
4192         (find_bswap): Modify compare number generation.
4193
4194 2010-03-11  Richard Guenther  <rguenther@suse.de>
4195
4196         PR lto/43200
4197         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
4198         (input_gimple_stmt): Fixup handled component types during
4199         operand read.  Also fix up decls in ADDR_EXPRs.
4200
4201 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
4202
4203         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
4204         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
4205
4206 2010-03-10  Jan Hubicka  <jh@suse.cz>
4207
4208         PR c/43288
4209         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
4210         * varasm.c (get_variable_section): Don't do that here...
4211         (make_decl_rtl): ... and here.
4212         (do_assemble_alias): Produce decl RTL.
4213         (assemble_alias): Likewise.
4214
4215 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR debug/43290
4218         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
4219         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
4220         of fde->vdrap_reg.
4221         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
4222         (based_loc_descr): Only express drap or vdrap regno based expressions
4223         using DW_OP_fbreg when not optimizing.
4224         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
4225         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
4226         REG_CFA_SET_VDRAP note.
4227
4228 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
4229
4230         PR tree-optimization/43236
4231         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
4232         error in calculation of base address in reverse iteration case.
4233         (generate_builtin): Take number of latch executions if the statement
4234         is in the latch.
4235
4236 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
4237
4238         PR middle-end/42859
4239         * tree-eh.c: Include pointer-set.h.
4240         (lower_eh_dispatch): Filter out duplicate case labels and
4241         remove the unneeded edge when the label is unused.  Return
4242         true when some edges are removed.
4243         (execute_lower_eh_dispatch): When any lowering resulted in
4244         removing an edge, also delete unreachable blocks.
4245
4246 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
4247
4248         PR bootstrap/43287
4249         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
4250         UNSPEC_MACHOPIC_OFFSET.
4251
4252 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
4253
4254         PR target/43294
4255         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
4256         (m68k_delegitimize_address): New function.
4257
4258 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
4259
4260         PR debug/43299
4261         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
4262
4263         PR debug/43299
4264         * var-tracking.c (adjust_sets): New function.
4265         (count_with_sets, add_with_sets): Use it.
4266         (get_adjusted_src): New inline function.
4267         (add_stores): Use it.
4268
4269         PR debug/43304
4270         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
4271         call cselib_dummy_expand_value_rtx_cb instead of
4272         cselib_expand_value_rtx_cb.
4273
4274         PR debug/43293
4275         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
4276         * config/i386/i386.c: Include debug.h and dwarf2out.h.
4277         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
4278         and .cfi_endproc around the pic thunks.
4279         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
4280         all queued unwind info register saves are saved before the call.
4281         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
4282         considered as sp-=4 for unwind info and the pop as sp+=4 which
4283         also clobbers dest, but doesn't actually restore it.
4284
4285         PR debug/43290
4286         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
4287         RTX_FRAME_RELATED_P.
4288
4289 2010-03-09  Jie Zhang  <jie@codesourcery.com>
4290
4291         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
4292         whitespaces in output template.
4293
4294 2010-03-09  Jie Zhang  <jie@codesourcery.com>
4295
4296         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
4297         out array boundary.
4298
4299 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
4300
4301         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
4302         builtins.exp in a separate job.
4303
4304 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4305
4306         * graphite-sese-to-poly.c (add_param_constraints): Use
4307         lower_bound_in_type and upper_bound_in_type.
4308
4309 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4310
4311         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
4312         instead of unsigned_type_node.
4313
4314 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4315             Reza Yazdani  <reza.yazdani@amd.com>
4316
4317         PR middle-end/43065
4318         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
4319         on pointer type parameters.
4320
4321 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
4322
4323         PR middle-end/42644
4324         PR middle-end/42130
4325         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
4326         handle conversions from pointer to integers.
4327         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
4328         induction variable, to be able to work with code generated by CLooG.
4329         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
4330         (build_poly_scop): Bail out if we cannot codegen a loop.
4331
4332 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
4333
4334         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
4335         code generation with gloog_error.
4336
4337 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4338
4339         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
4340         Call fold_convert on all the returned values.
4341         (expand_scalar_variables_expr): Pass to
4342         expand_scalar_variables_ssa_name the type of the resulting expression.
4343
4344 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4345
4346         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
4347         ppl_min_for_le_pointset.
4348         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
4349         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
4350
4351 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4352
4353         * graphite-dependences.c (map_into_dep_poly): Removed.
4354         (dependence_polyhedron_1): Use combine_context_id_scat.
4355
4356 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4357
4358         * graphite-poly.h (struct poly_scattering): Add layout documentation.
4359         (struct poly_bb): Same.
4360         (combine_context_id_scat): New.
4361
4362 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4363
4364         PR middle-end/42326
4365         * sese.c (name_defined_in_loop_p): Return false for default
4366         definitions.
4367
4368 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4369
4370         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
4371         and clean up the logic.
4372
4373 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
4374
4375         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
4376         early return.
4377
4378 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
4379
4380         * var-tracking.c (remove_cselib_value_chains): Define only for
4381         ENABLE_CHECKING.
4382         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
4383         delete_slot_part, emit_notes_for_differences_1): Don't call
4384         remove_cselib_value_chains here.
4385         (set_slot_part, emit_notes_for_differences_2): Don't call
4386         add_cselib_value_chains here.
4387         (preserved_values): New vector.
4388         (preserve_value): New function.
4389         (add_uses, add_stores, vt_add_function_parameters): Use it
4390         instead of cselib_preserve_value.
4391         (changed_values_stack): New vector.
4392         (check_changed_vars_0): New function.
4393         (check_changed_vars_1, check_changed_vars_2): Use it.
4394         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
4395         changed_values_stack VALUEs.
4396         (vt_emit_notes): For all preserved_values call
4397         add_cselib_value_chains.  If ENABLE_CHECKING call
4398         remove_cselib_value_chains before verifying value_chains is empty.
4399         Initialize and free changed_values_stack.
4400         (vt_initialize): Initialize preserved_values.
4401         (vt_finalize): Free preserved_values.
4402
4403 2010-03-08  Richard Guenther  <rguenther@suse.de>
4404
4405         PR tree-optimization/43269
4406         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
4407         region detection.
4408
4409 2010-03-08  Martin Jambor  <mjambor@suse.cz>
4410
4411         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
4412         (ipa_is_param_called): Removed.
4413         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
4414         (ipa_print_node_params): Do not print the called flag.
4415         (ipa_write_node_info): Do not stream the called flag.
4416         (ipa_read_node_info): Likewise.
4417
4418 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
4419
4420         PR debug/43176
4421         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
4422         * cselib.c (struct expand_value_data): Add dummy field.
4423         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
4424         dummy to false.
4425         (cselib_dummy_expand_value_rtx_cb): New function.
4426         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
4427         any rtl.
4428         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
4429         * var-tracking.c: Include pointer-set.h.
4430         (variable): Change n_var_parts to char from int.  Add
4431         cur_loc_changed and in_changed_variables fields.
4432         (variable_canonicalize): Remove.
4433         (shared_var_p): New inline function.
4434         (unshare_variable): Maintain cur_loc_changed and
4435         in_changed_variables fields.  If var was in changed_variables,
4436         replace it there with new_var.  Just copy cur_loc instead of
4437         resetting it to something else.
4438         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
4439         (dataflow_set_union): Don't call variable_canonicalize.
4440         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
4441         of their DEBUG_EXPR_TREE_DECLs.
4442         (canonicalize_loc_order_check): Verify that cur_loc is NULL
4443         and in_changed_variables and cur_loc_changed is false.
4444         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
4445         and cur_loc_changed.  Don't update cur_loc here.
4446         (variable_merge_over_src): Don't call variable_canonicalize.
4447         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
4448         removing loc that is equal to cur_loc, clear cur_loc,
4449         set cur_loc_changed and ensure variable_was_changed is called.
4450         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
4451         compare pointers in cur_loc check, if it is equal to loc,
4452         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
4453         (variable_different_p): Remove compare_current_location argument,
4454         don't compare cur_loc.
4455         (dataflow_set_different_1): Adjust variable_different_p caller.
4456         (variable_was_changed): If dv had some var in changed_variables
4457         already, reset in_changed_variables flag for it and propagate
4458         cur_loc_changed over to the new variable.  On empty var
4459         always set cur_loc_changed.  Set in_changed_variables on whatever
4460         var is added to changed_variables.
4461         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
4462         Use shared_var_p.  When removing loc that is equal to cur_loc,
4463         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
4464         end, don't set it to something else, just call variable_was_changed.
4465         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
4466         loc being removed, clear cur_loc and set cur_loc_changed.
4467         Set cur_loc_changed if all locations have been removed.
4468         (struct expand_loc_callback_data): New type.
4469         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
4470         allocated.  Always create SUBREGs if simplify_subreg failed.
4471         Prefer to use cur_loc, when that fails and still in
4472         changed_variables (and seen first time) recompute it.  Set
4473         cur_loc_changed of variables which had to change cur_loc and
4474         compute elcd->cur_loc_changed if any of the subexpressions used
4475         had to change cur_loc.
4476         (vt_expand_loc): Adjust to pass arguments in
4477         expand_loc_callback_data structure.
4478         (vt_expand_loc_dummy): New function.
4479         (emitted_notes): New variable.
4480         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
4481         that weren't used for any other decl in current
4482         emit_notes_for_changes call call vt_expand_loc_dummy to update
4483         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
4484         first loc_chain location if NULL before.  Always use just
4485         cur_loc instead of first loc_chain location.  When cur_loc_changed
4486         is false, when not --enable-checking=rtl just don't emit any note.
4487         When rtl checking, compute the note and assert it is the same
4488         as previous note.  Clear cur_loc_changed and in_changed_variables
4489         at the end before removing from changed_variables.
4490         (check_changed_vars_3): New function.
4491         (emit_notes_for_changes): Traverse changed_vars to call
4492         check_changed_vars_3 on each changed var.
4493         (emit_notes_for_differences_1): Clear cur_loc_changed and
4494         in_changed_variables.  Recompute cur_loc of new_var.
4495         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
4496         (vt_emit_notes): Initialize and destroy emitted_notes.
4497
4498 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
4499
4500         PR rtl-optimization/42220
4501         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
4502         Use verify_reg_tracked to determine if we should use OP_OUT rather
4503         than OP_INOUT.
4504         (build_def_use): If we see an in-out operand for a register that we
4505         know nothing about, treat is an output if possible, fail the block if
4506         not.
4507
4508 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
4509
4510         PR debug/42897
4511         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
4512         permanently.
4513
4514 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
4515
4516         PR debug/42897
4517         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
4518         uses of relevant DEFs that are dead outside the loop too.
4519
4520 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
4521
4522         * var-tracking.c (dataflow_set_merge): Swap src and src2.
4523         Reverted:
4524         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
4525         PR debug/41371
4526         * var-tracking.c (values_to_unmark): New variable.
4527         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
4528         values_to_unmark vector.  Moved body to...
4529         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
4530         instead queue it into values_to_unmark vector.
4531         (vt_find_locations): Free values_to_unmark vector.
4532
4533 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
4534
4535         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
4536         (site.exp): Export them when plugins are enabled.
4537
4538 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
4539
4540         PR middle-end/42326
4541         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
4542         that contain scevs.
4543         (chrec_fold_multiply): Same.
4544
4545 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
4546
4547         PR c/43248
4548         * c-decl.c (build_compound_literal): Return early if init is
4549         an error_mark_node.
4550
4551 2010-03-04  Martin Jambor  <mjambor@suse.cz>
4552
4553         PR tree-optimization/43164
4554         PR tree-optimization/43191
4555         * tree-sra.c (type_consists_of_records_p): Reject records with
4556         zero-size bit-fields at the end.
4557
4558 2010-03-04  Mike Stump  <mikestump@comcast.net>
4559
4560         * Makefile.in (TAGS): Remove *.y.
4561
4562 2010-03-04  Richard Guenther  <rguenther@suse.de>
4563
4564         PR tree-optimization/40761
4565         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
4566         in reverse order.
4567         (my_rev_post_order_compute): New function.
4568         (init_pre): Call it.
4569
4570 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
4571
4572         PR middle-end/43209
4573         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
4574         decrease the cost of an IV candidate when the cost is infinite.
4575
4576 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4577
4578         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
4579         Use '3DNow!' for the extension of that name, ensure normal space
4580         after the string.
4581         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
4582
4583 2010-03-03  Jeff Law  <law@redhat.com>
4584
4585         * PR middle-end/32693
4586         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
4587         than gen_rtx_SUBREG.
4588         (extract_bit_field_1): Likewise.
4589
4590 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
4591
4592         * doc/sourcebuild.texi (Test directives): Document that arguments
4593         include-opts and exclude-opts are now optional for dg-skip-if,
4594         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
4595
4596 2010-03-03  Jason Merrill  <jason@redhat.com>
4597
4598         PR c++/12909
4599         * cgraph.h (varpool_node): Add extra_name field.
4600         * varpool.c (varpool_extra_name_alias): New.
4601         (varpool_assemble_decl): Emit extra name aliases.
4602         (varpool_mark_needed_node): Look past an extra name alias.
4603         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
4604         * lto-streamer-in.c (lto_input_tree): Read it.
4605         * lto-streamer-out.c (output_unreferenced_globals): Write it.
4606
4607 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
4608
4609         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
4610         (sparc*-*-solaris2*): ...this.
4611
4612 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
4613
4614         PR debug/43229
4615         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
4616         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
4617         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
4618         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
4619
4620         PR debug/43237
4621         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
4622         fallthrough to default handling, just with want_address 0 instead of 2.
4623         For single element lists, add_AT_loc directly, otherwise create an
4624         artificial variable DIE and stick location list to it.
4625
4626         PR debug/43177
4627         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
4628         (VAL_EXPR_HAS_REVERSE): Define.
4629         (reverse_op): New function.
4630         (add_stores): For reversible operations add an extra MO_VAL_USE.
4631
4632 2010-03-02  Jason Merrill  <jason@redhat.com>
4633
4634         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
4635
4636 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
4637
4638         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
4639         (sparc64-*-linux*): Likewise.
4640         (sparc64-*-solaris2*): Include assembler files before linker ones.
4641         (sparc-*-solaris2*): Simplify and reorder to match previous case.
4642         * config/sparc/gas.h: Delete.
4643         * config/sparc/sol2-64.h: Add copyright notice.
4644         * config/sparc/sol2-gas-bi.h: Likewise.
4645         * config/sparc/sol2-gld.h: Likewise.
4646         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
4647         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
4648         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
4649         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
4650         (sparc_elf_asm_named_section): Rename into...
4651         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
4652
4653 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
4654
4655         * config/alpha/alpha.c (override_options): Fix -mtune error message.
4656
4657 2010-03-02  Jeff Law  <law@redhat.com>
4658
4659         PR middle-end/42431
4660         * reload1.c (rtx_p, substitute_stack): Declare.
4661         (substitute): Record addresses of changed rtxs.
4662         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
4663         Restore the original rtx when complete.
4664         (reload): Free subsitute_stack when complete.
4665
4666 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
4667
4668         * doc/gccint.texi (menu): Add Testsuites as a chapter.
4669         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
4670         new chapter.
4671         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
4672         LTO Testing, gcov Testing, profopt Testing, compat Testing,
4673         Torture Tests): Change from subsection to section.
4674
4675 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
4676             Steven Bosscher  <steven@gcc.gnu.org>
4677
4678         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
4679         instead of bb.
4680
4681 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
4682
4683         PR middle-end/42640
4684         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
4685         the assignment from the new induction variable to the assignment
4686         of the value from the original loop PHI function.
4687
4688 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
4689             Daniel Jacobowitz  <dan@codesourcery.com>
4690
4691         * doc/sourcebuild.texi (Test directives): Clarify options to
4692         dg-skip-if.
4693
4694 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4695
4696         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
4697         Disable cfi directives unless GCC and gas agree on using read-only
4698         .eh_frame sections for 64-bit.
4699         * configure: Regenerate.
4700
4701 2010-03-01  Richard Guenther  <rguenther@suse.de>
4702
4703         PR tree-optimization/43220
4704         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
4705         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
4706
4707 2010-03-01  Richard Guenther  <rguenther@suse.de>
4708             Martin Jambor  <mjambor@suse.cz>
4709
4710         PR middle-end/41250
4711         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
4712         gimplified parameters.
4713
4714 2010-03-01  Christian Bruel  <christian.bruel@st.com>
4715
4716         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
4717
4718 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
4719
4720         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
4721
4722 2010-03-01  Richard Guenther  <rguenther@suse.de>
4723
4724         PR middle-end/43213
4725         * expr.c (expand_assignment): Use the alias-oracle to tell
4726         if the rhs aliases the result decl.
4727
4728 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4729
4730         PR pch/14940
4731         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
4732         to sol_gt_pch_get_address.
4733         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
4734         64-bit, SPARC and x86.
4735         (sol_gt_pch_get_address): New function.
4736
4737 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
4738
4739         * toplev.h (inform_n, error_n): Declare.
4740         * diagnostic.c (inform_n, error_n): New function.
4741
4742 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
4743
4744         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
4745         has no rtl yet when processing local_decls, queue it and recheck
4746         if deferred stack allocation hasn't assigned it rtl.
4747
4748 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4749
4750         * config/sh/sh.c (unspec_bbr_uid): New.
4751         (gen_block_redirect): Use it instead of INSN_UID.
4752         (gen_far_branch): Likewise.
4753
4754 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
4755
4756         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
4757         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
4758
4759 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4760
4761         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
4762         (Warning Options): -Wno-conversion-null is valid for
4763         Objective-C++ as well.
4764         * doc/tm.texi (Named Address Spaces): Likewise.
4765         * doc/plugins.texi (Plugins): Replace TABs with spaces.
4766         * doc/tree-ssa.texi (Tree SSA): Likewise.
4767
4768 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4769
4770         PR bootstrap/43202
4771         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
4772         by default.  Don't set the default arch for
4773         i[34567]86-*-darwin*|x86_64-*-darwin*.
4774
4775 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4776
4777         PR bootstrap/43202
4778         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
4779         default.  Set the default 32bit/64bit archs with $with_arch
4780         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
4781
4782 2010-02-27  Richard Guenther  <rguenther@suse.de>
4783
4784         PR tree-optimization/43186
4785         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
4786         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
4787         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
4788         unroller iterations.
4789
4790 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
4791
4792         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
4793         required and i[34567]86-*-* targets don't support 64bit ISA.
4794
4795 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
4796
4797         PR ada/43096
4798         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
4799         the same alias set.
4800
4801 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
4802
4803         * config.gcc: Set the default arch at least to Prescott for
4804         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
4805         if SSE math is enabled.
4806
4807 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4808
4809         * diagnostic.c (diagnostic_initialize): Update.
4810         (diagnostic_report_diagnostic): Test inhibit_notes_p for
4811         informative notes.
4812         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
4813         (diagnostic_inhibit_notes): New.
4814         * toplev.c (process_options): inhibit notes with -fcompare-debug.
4815
4816 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4817
4818         PR c/20631
4819         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
4820         * doc/standards.texi: Likewise.
4821         * doc/extend.texi: Likewise.
4822         * doc/trouble.texi: Likewise.
4823         * doc/cppopts.texi: Likewise.
4824         * doc/install.texi: Likewise.
4825         * c.opt (std=c90,std=gnu90): New options.
4826         * c-opts.c (c_common_handle_option): Handle them.
4827
4828 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4829
4830         PR c/24577
4831         * c-decl.c (undeclared_variable): Use an informative note.
4832
4833 2010-02-26  Richard Guenther  <rguenther@suse.de>
4834
4835         PR tree-optimization/43186
4836         * gimple.h (gimple_fold): Remove.
4837         * gimple.c (gimple_fold): Remove.  Inline into single user ...
4838         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
4839         Try harder for conditions.
4840
4841 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
4842
4843         PR debug/43190
4844         * function.c (used_types_insert): Don't skip through named pointer
4845         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
4846         and it is different from the main variant's type.
4847
4848 2010-02-26  Nick Clifton  <nickc@redhat.com>
4849
4850         * config/rx/rx.md (sminsi3): Remove bogus alternative.
4851
4852 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
4853
4854         * config.gcc: Support --with-fpmath=sse for x86.
4855
4856         * config/i386/ssemath.h: New.
4857
4858         * doc/install.texi (--with-fpmath=sse): Documented.
4859
4860 2010-02-26  Richard Guenther  <rguenther@suse.de>
4861
4862         PR tree-optimization/43188
4863         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
4864         vector types of over-aligned element type.
4865
4866 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
4867
4868         PR target/43175
4869         * config/i386/i386.c (expand_vec_perm_blend): Use correct
4870         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
4871
4872 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
4873
4874         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
4875
4876 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
4877
4878         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
4879         * var-tracking.c: Include diagnostic.h.
4880         (debug_dv): New function.
4881         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
4882
4883         PR debug/43160
4884         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
4885         (add_value_chain, add_value_chains, remove_value_chain,
4886         remove_value_chains): Handle DEBUG_EXPRs.
4887         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
4888
4889         PR debug/43161
4890         * regcprop.c (struct queued_debug_insn_change): New type.
4891         (struct value_data_entry): Add debug_insn_changes field.
4892         (struct value_data): Add n_debug_insn_changes field.
4893         (debug_insn_changes_pool): New variable.
4894         (free_debug_insn_changes, apply_debug_insn_changes,
4895         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
4896         (kill_value_one_regno): Call free_debug_insn_changes if needed.
4897         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
4898         fields.
4899         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
4900         changes for them.
4901         (copyprop_hardreg_forward_1): Don't call apply_change_group for
4902         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
4903         changes, call cprop_find_used_regs via note_stores.
4904         (copyprop_hardreg_forward): When copying vd from predecessor
4905         which has any queued DEBUG_INSN changes, make sure the pointers are
4906         cleared.  At the end call df_analyze and then if there are any
4907         DEBUG_INSN changes queued at the end of some basic block for still
4908         live registers, apply them.
4909         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
4910
4911 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
4912
4913         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
4914         (arm*-*-*): Ditto.
4915
4916 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
4917
4918         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
4919         targets.  Set the default with_cpu/with_arch from arch/cpu.
4920         Allow x86-64 and native for with_cpu/with_arch.
4921
4922 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
4923
4924         * ebitmap.c: Change calls to verify_popcount with calls to
4925         sbitmap_verify_popcount.
4926         (ebitmap_clear_bit): Fixed map->cacheindex test and
4927         map>cache update when bit clearing results in an empty
4928         element.
4929
4930 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
4931
4932         PR target/43154
4933         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
4934         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
4935         and support both V2DF and V2DI modes.
4936         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
4937         support both V2DF and V2DI modes.
4938         (general): Delete trailing whitespace from a few patterns.
4939
4940         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4941         V2DF/V2DI interleave high/low builtins.
4942
4943         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
4944         new VSX builtins.
4945
4946         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
4947         interleave high/low functions.
4948
4949 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
4950
4951         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
4952         #pragma extern_prefix.
4953
4954 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
4955
4956         PR debug/43166
4957         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
4958         BLKmode, assert op0 is a MEM and just adjust its mode.
4959
4960         PR debug/43165
4961         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
4962         if bitpos isn't multiple of mode's bitsize.
4963
4964 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4965
4966         * c.opt (-ftemplate-depth=): New.
4967         (-ftemplate-depth-): Deprecate.
4968         * optc-gen.awk: Handle -ftemplate-depth=.
4969         * opth-gen.awk: Likewise.
4970         * c-opts.c (c_common_handle_option): Likewise.
4971         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
4972
4973 2010-02-24  Jason Merrill  <jason@redhat.com>
4974
4975         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
4976
4977 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4978
4979         * cfg.c (alloc_aux_for_block): Remove inline.
4980         (alloc_aux_for_edge): Likewise.
4981
4982 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4983
4984         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
4985
4986 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4987
4988         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
4989         * config/i386/sol2-gas.h: New file.
4990         * config.gcc (i[34567]86-*-solaris2*): Use it.
4991
4992 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4993
4994         PR c/43128
4995         * c-typeck.c (ep_convert_and_check): New.
4996         (build_conditional_expr): Use it.
4997         (build_binary_op): Likewise.
4998
4999 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
5000
5001         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
5002
5003         PR debug/43150
5004         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
5005         bounds even for -O+.
5006         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
5007         expr needs to have DECL_NAME set.
5008
5009 2010-02-24  Nick Clifton  <nickc@redhat.com>
5010
5011         * config/mep/mep.c: Include gimple.h.
5012         (mep_function_uses_sp): Delete unused function.
5013         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
5014         parameters.  Use unsigned integers to count args.  Return a
5015         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
5016
5017 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
5018
5019         PR target/43107
5020         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
5021         greater or equal to nelt instead of 2 * nelt.
5022         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
5023         with nelt - 1.
5024
5025 2010-02-23  Jason Merrill  <jason@redhat.com>
5026
5027         PR debug/42800
5028         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
5029         in cfun->local_decls even if they have register types.
5030
5031         PR c++/42837
5032         * stor-layout.c (place_field): Don't warn about unnecessary
5033         DECL_PACKED if the type is packed.
5034
5035 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
5036
5037         PR target/43139
5038         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
5039         GOTOFF relocs, even when the base reg isn't pic pointer.
5040
5041 2010-02-23  Michael Matz  <matz@suse.de>
5042
5043         PR debug/43077
5044         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
5045         (expand_gimple_basic_block): Generate and use debug temps if there
5046         are debug uses left after the last real use of TERed ssa names.
5047         Unlink debug immediate uses when they are expanded.
5048
5049 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5050
5051         PR 43123
5052         * config/i386/i386.c (override_options): Reorganise to provide
5053         better error messages.
5054
5055 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5056
5057         PR middle-end/43083
5058         * graphite-scop-detection.c (create_single_exit_edge): Move
5059         the call to find_single_exit_edge to....
5060         (create_sese_edges): ...here.  Don't handle multiple edges
5061         exiting the function.
5062         (build_graphite_scops): Don't handle multiple edges
5063         exiting the function.
5064
5065 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5066
5067         PR middle-end/43097
5068         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
5069         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
5070
5071 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
5072
5073         PR middle-end/43026
5074         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
5075
5076 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5077
5078         PR c++/43126
5079         * c-typeck.c (convert_arguments): Print declaration location.
5080         * c-common.c (validate_nargs): Rename as
5081         builtin_function_validate_nargs.
5082         (check_builtin_function_arguments): Update.
5083
5084 2010-02-22  Richard Guenther  <rguenther@suse.de>
5085
5086         PR lto/43045
5087         * tree-inline.c (declare_return_variable): Use the type of
5088         the call stmt lhs if available.
5089
5090 2010-02-22  Duncan Sands  <baldrick@free.fr>
5091
5092         * passes.c (register_pass): Always consider all pass lists when
5093         ref_pass_instance_number is zero.
5094
5095 2010-02-22  Richard Guenther  <rguenther@suse.de>
5096
5097         PR tree-optimization/42749
5098         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
5099         parameter.  Do arithmetic in the original type.
5100         (update_accumulator_with_ops): Likewise.
5101         (adjust_accumulator_values): Adjust.
5102
5103 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5104
5105         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
5106         (QI to BLKmode splitter): New splitter.
5107
5108 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
5109
5110         * config/i386/i386.c (initial_ix86_tune_features): Turn on
5111         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
5112
5113 2010-02-22  Richard Guenther  <rguenther@suse.de>
5114
5115         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
5116
5117 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
5118
5119         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
5120         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
5121         ($(T)crti.o, $(T)crtn.o): Remove rules.
5122
5123 2010-02-21  Tobias Burnus  <burnus@net-b.de>
5124
5125         PR fortran/35259
5126         * doc/invoke.texi (-fassociative-math): Document that this
5127         option is automatically enabled for Fortran.
5128
5129 2010-02-20  David S. Miller  <davem@davemloft.net>
5130
5131         * configure.ac: Test if linker and assembler properly support
5132         GOTDATA_OP relocations.
5133         * configure: Rebuild.
5134         * config.in: Likewise.
5135         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
5136         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
5137         (movsi_high_pic): Likewise.
5138         (movdi_lo_sum_pic): Likewise.
5139         (movdi_high_pic): Likewise.
5140         (movsi_pic_gotdata_op): New pattern.
5141         (movdi_pic_gotdata_op): Likewise.
5142         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
5143         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
5144
5145 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
5146
5147         PR target/43067
5148         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
5149         attribute to ssemul.
5150         (xop_mulv2div2di3_high): Ditto.
5151
5152 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5153
5154         PR c++/35669
5155         * c.opt (Wconversion-null): New option.
5156         * doc/invoke.texi (Wconversion-null): Document.
5157
5158 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5159
5160         * common.opt (Wlarger-than-): Add Undocumented.
5161
5162 2010-02-19  Mike Stump  <mikestump@comcast.net>
5163
5164         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
5165
5166 2010-02-19  Jason Merrill  <jason@redhat.com>
5167
5168         PR target/40332
5169         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
5170         * configure: Likewise.
5171
5172 2010-02-20  Alan Modra  <amodra@gmail.com>
5173
5174         PR middle-end/42344
5175         * cgraph.h (cgraph_make_decl_local): Declare.
5176         * cgraph.c (cgraph_make_decl_local): New function.
5177         (cgraph_make_node_local): Use it.
5178         * cgraphunit.c (cgraph_function_versioning): Likewise.
5179         * ipa.c (function_and_variable_visibility): Likewise.
5180
5181 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5182
5183         PR bootstrap/43121
5184         * except.c (sjlj_emit_function_enter): Don't call
5185         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
5186         directly.
5187         * rtl.h (add_reg_br_prob_note): Remove prototype.
5188
5189 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5190
5191         PR 41779
5192         * c-common.c (conversion_warning): Remove widening conversions
5193         before checking the conversion of integers to reals.
5194
5195 2010-02-19  Mike Stump  <mikestump@comcast.net>
5196
5197         PR middle-end/43125
5198         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
5199
5200         PR objc/43061
5201         * cgraphunit.c (process_function_and_variable_attributes): Check
5202         DECL_PRESERVE_P instead of looking up attribute "used".
5203         * ipa-pure-const.c (check_decl): Likewise.
5204         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
5205         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
5206         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
5207         instead of attribute "used".
5208         * config/sol2-c.c (solaris_pragma_init): Likewise.
5209         (solaris_pragma_fini): Likewise.
5210
5211 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5212
5213         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
5214         Use XCNEW instead of xcalloc.
5215         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
5216         XNEW instead of xmalloc.
5217         (get_fields): Use XNEWVEC instead of xmalloc.
5218
5219         PR debug/43084
5220         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
5221         populate vars array.
5222         (create_new_general_access): For debug stmts just reset value.
5223         (get_stmt_accesses): For accesses within debug stmts just record them
5224         using add_access_to_acc_sites instead of preventing the peeling or
5225         counting them as accesses.
5226
5227         PR middle-end/42233
5228         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
5229
5230 2010-02-19  Richard Guenther  <rguenther@suse.de>
5231
5232         PR tree-optimization/42916
5233         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
5234         instructions.
5235
5236 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
5237
5238         * configure.ac: Replace all uses of changequote in macro arguments
5239         with proper quoting.
5240
5241 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5242
5243         PR middle-end/42233
5244         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
5245
5246 2010-02-19  Richard Guenther  <rguenther@suse.de>
5247
5248         PR tree-optimization/42944
5249         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
5250         test for aliasing with errno.
5251
5252 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
5253
5254         PR middle-end/42233
5255         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
5256         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
5257         * dojump.c: Include output.h.
5258         (inv): New inline function.
5259         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
5260         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
5261         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
5262         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
5263         argument, pass it down to other calls.
5264         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
5265         add REG_BR_PROB note to the conditional jump.
5266         * cfgexpand.c (add_reg_br_prob_note): Removed.
5267         (expand_gimple_cond): Don't call it, add the probability
5268         as last argument to jumpif_1/jumpifnot_1.
5269         * Makefile.in (dojump.o): Depend on output.h.
5270         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
5271         callers.
5272         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
5273         * stmt.c (do_jump_if_equal): Likewise.
5274         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
5275         * loop-unswitch.c (compare_and_jump_seq): Likewise.
5276         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
5277         Likewise.
5278         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
5279         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
5280         jumpifnot_1 callers.
5281         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
5282         callers.
5283         (store_expr): Adjust jumpifnot caller.
5284         (store_constructor): Adjust jumpif caller.
5285
5286         PR middle-end/42233
5287         * gimplify.c (gimple_boolify): For __builtin_expect call
5288         gimple_boolify also on its first argument.
5289
5290 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
5291
5292         * configure.ac (gnu-unique-object): Wrap regexps using [] in
5293         changequote block.
5294         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
5295         * configure: Regenerated.
5296
5297 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5298
5299         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
5300         lang_hooks.types_compatible_p instead of comptypes.
5301
5302 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
5303
5304         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
5305         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
5306         if __prefer_thumb__ is defined.
5307
5308 2010-02-18  Martin Jambor  <mjambor@suse.cz>
5309
5310         PR tree-optimization/43066
5311         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
5312         array with zero-sized element type.
5313
5314 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
5315
5316         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
5317         rtx, allocate struct var_loc_node here and return it to the
5318         caller, and only if it is actually needed.
5319         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
5320         move it earlier and return immediately if it returns NULL.
5321
5322 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
5323
5324         * config/sparc/gas.h: New file.  Restore
5325         TARGET_ASM_NAMED_SECTION to its ELF default.
5326         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
5327         check !HAVE_GNU_AS.
5328         * config/sparc/sparc.c (sparc_elf_asm_named_section):
5329         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
5330         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
5331         after sparc/sysv4.h.
5332
5333 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
5334
5335         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
5336
5337 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
5338
5339         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
5340         patterns from predicated pattern.
5341
5342 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
5343
5344         PR target/43103
5345         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
5346         for insn mnemonic suffix.
5347
5348 2010-02-17  Richard Guenther  <rguenther@suse.de>
5349
5350         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
5351         to loop PHI nodes.
5352
5353 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
5354
5355         PR debug/42918
5356         * caller-save.c (save_call_clobbered_regs): If BB ends with
5357         a DEBUG_INSN, move any notes in between last real insn and the last
5358         DEBUG_INSN after the last DEBUG_INSN.
5359
5360 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
5361
5362         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
5363         Fix return type.  Fix argument type.  Explain meaning of return value.
5364
5365 2010-02-16  Richard Guenther  <rguenther@suse.de>
5366
5367         PR tree-optimization/41043
5368         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
5369         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
5370         statements ...
5371         (vrp_visit_phi_node): ... but only for loop PHI nodes.
5372
5373 2010-02-16  Ira Rosen  <irar@il.ibm.com>
5374
5375         PR tree-optimization/43074
5376         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
5377         * tree-vect-loop.c (vect_analyze_loop_operations): Add
5378         vectorizable cycles in hybrid SLP check.
5379         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
5380
5381 2010-02-16  Richard Guenther  <rguenther@suse.de>
5382
5383         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
5384         (true_dependence): If memrefs_conflict_p computes must-alias
5385         trust it.  Move TBAA check after offset-based disambiguation.
5386         (canon_true_dependence): Likewise.
5387
5388 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
5389
5390         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
5391         * doc/invoke.texi: Document it.
5392         * var-tracking.c: Include toplev.h and params.h.
5393         (vt_find_locations): Return bool indicating success.  Compute
5394         hash sizes unconditionally.  Check new parameter, report.
5395         (variable_tracking_main_1): Check vt_find_locations results and
5396         retry.  Renamed from...
5397         (variable_tracking_main): ... this.  New wrapper to preserve
5398         flag_var_tracking_assignments.
5399         * Makefile.in (var-tracking.o): Adjust dependencies.
5400
5401 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
5402             Jakub Jelinek <jakub@redhat.com>
5403
5404         PR target/42854
5405         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
5406         if weak_import attribute is present.
5407         * config/darwin.c (machopic_select_section): Likewise.
5408
5409 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
5410
5411         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
5412         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
5413         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
5414         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
5415
5416         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
5417         types.
5418
5419         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
5420         Fix argument types.
5421
5422         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
5423         Rewrite text to refer to the names.
5424
5425 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
5426
5427         * config/i386/i386-builtin-types.def
5428         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
5429         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
5430         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
5431         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
5432         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
5433         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
5434         IX86_BUILTIN_VPERMIL2PS256.
5435         (MULTI_ARG_4_DF2_DI_I): Defined.
5436         (MULTI_ARG_4_DF2_DI_I1): Defined.
5437         (MULTI_ARG_4_SF2_SI_I): Defined.
5438         (MULTI_ARG_4_SF2_SI_I1): Defined.
5439         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
5440         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
5441         __builtin_ia32_vpermil2ps256.
5442         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
5443         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
5444         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
5445         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
5446         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
5447         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
5448         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
5449         CODE_FOR_xop_vpermil2v8sf3.
5450         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
5451         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
5452         * config/i386/xopintrin.h (_mm_permute2_pd): New.
5453         (_mm256_permute2_pd): New.
5454         (_mm_permute2_ps): New.
5455         (_mm256_permute2_ps): New.
5456
5457 2010-02-15  Nick Clifton  <nickc@redhat.com>
5458
5459         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
5460         boolean parameters.  Use emit_jump_insn when emitting a pop
5461         instruction containing a return insn.
5462         (push): Use 'true' rather than '1' as second parameter to F.
5463         (h8300_expand_prologue): Likewise.
5464         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
5465         (h8300_expand_epilogue): Likewise.
5466
5467 2010-02-15  Richard Guenther  <rguenther@suse.de>
5468
5469         PR middle-end/43068
5470         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
5471         if that is zero.
5472
5473 2010-02-15  Nick Clifton  <nickc@redhat.com>
5474
5475         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
5476         delta.
5477
5478 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
5479
5480         * intl.c (fake_ngettext): New function.
5481         * intl.h (fake_ngettext): Declare.
5482         (ngettext): Define macro.
5483         * collect2.c (notice_translated): New function.
5484         (main): Use notice_translated and ngettext.
5485         * collect2.h (notice_translated): Declare.
5486
5487 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
5488
5489         * reorg.c (delete_computation): Comment fixes.
5490         * caller-save.c (setup_save_areas): Idem.
5491         * sel-sched-dump.c (dump_lv_set): Idem.
5492         * rtl.def: Idem.
5493
5494 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5495
5496         * config/s390/s390.c (s390_sched_init): New function.
5497         (TARGET_SCHED_INIT): Target hook defined.
5498
5499 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
5500             Jack Howarth  <howarth@bromo.med.uc.edu>
5501             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
5502
5503         PR target/42982
5504         Partial revert of unintended change in fix for PR41605.
5505         * config/darwin.h: Fix typo.
5506         * config/darwin9.h: Same.
5507
5508 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
5509
5510         * c-pch.c (pch_init): Clear v.
5511
5512 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5513
5514         PR middle-end/42930
5515         * graphite-scop-detection.c (graphite_can_represent_scev): Call
5516         graphite_can_represent_init for MULT_EXPR.
5517
5518 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5519
5520         PR middle-end/42914
5521         PR middle-end/42530
5522         * graphite-sese-to-poly.c (remove_phi): New.
5523         (translate_scalar_reduction_to_array): Call remove_phi.
5524
5525 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5526
5527         PR middle-end/42771
5528         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
5529         * graphite-clast-to-gimple.h (gloog): Update declaration.
5530         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
5531         * graphite-poly.h (struct poly_bb): Add missing comments.
5532         (struct scop): Add poly_scop_p field.
5533         (POLY_SCOP_P): New.
5534         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
5535         * graphite.c (graphite_transform_loops): Build the polyhedral
5536         representation for each scop before code generation.
5537         * sese.c (rename_variables_in_operand): Removed.
5538         (rename_variables_in_expr): Return the renamed expression.
5539         (rename_sese_parameters): New.
5540         * sese.h (rename_sese_parameters): Declared.
5541
5542 2010-02-11  Richard Guenther  <rguenther@suse.de>
5543
5544         PR tree-optimization/42998
5545         * tree-ssa-pre.c (create_expression_by_pieces): Treat
5546         POINTER_PLUS_EXPR properly.
5547
5548 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
5549             Changpeng Fang  <changpeng.fang@amd.com>
5550
5551         PR middle-end/40886
5552         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
5553         the cost of an IV candidate when the IV is used in a test against zero.
5554
5555         * gcc.dg/tree-ssa/ivopts-3.c: New.
5556
5557 2010-02-11  Richard Guenther  <rguenther@suse.de>
5558
5559         PR lto/41664
5560         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
5561         pointer-vs-decl case by swapping refs.  Handle some cases
5562         of pointer-vs-decl disambiguations more conservatively.
5563         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
5564         to false after expanding.
5565
5566 2010-02-11  Richard Guenther  <rguenther@suse.de>
5567
5568         PR driver/43021
5569         * gcc.c (process_command): Handle LTO file@offset case more
5570         appropriately.
5571
5572 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
5573
5574         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
5575         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
5576         of DEBUG_INSNs.
5577         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
5578
5579         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
5580         if MEM's mode size isn't DWARF2_ADDR_SIZE.
5581         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
5582         Optimize eq/ne comparisons when both arguments are known to be
5583         zero-extended.
5584         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
5585         Don't mask operands unnecessarily if they are known to be already
5586         zero-extended.
5587
5588 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
5589
5590         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
5591         instead of loop.
5592
5593 2010-02-10  Richard Guenther  <rguenther@suse.de>
5594
5595         PR tree-optimization/43017
5596         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
5597         for wrapping signed arithmetic.
5598
5599 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
5600
5601         PR debug/43010
5602         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
5603         if no debug info should be emitted for it.
5604
5605 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
5606
5607         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
5608         note when flag_exceptions is set.
5609
5610 2010-02-10  Duncan Sands  <baldrick@free.fr>
5611
5612         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
5613
5614 2010-02-10  Richard Guenther  <rguenther@suse.de>
5615
5616         PR c/43007
5617         * tree.c (get_unwidened): Handle constants.
5618         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
5619
5620 2010-02-10  Martin Jambor  <mjambor@suse.cz>
5621
5622         PR lto/42985
5623         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
5624         check for variable argument counts independently.
5625
5626 2010-02-10  Christian Bruel  <christian.bruel@st.com>
5627
5628         PR target/42841
5629         * config/sh/sh.c (find_barrier): Increase length for non delayed
5630         conditional branches.
5631
5632 2010-02-10  Christian Bruel  <christian.bruel@st.com>
5633
5634         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
5635
5636 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
5637
5638         * builtins.c (set_builtin_user_assembler_name): Also handle
5639         ffs if int is smaller than word.
5640
5641 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
5642
5643         PR middle-end/42973
5644         * ira-conflicts.c (get_dup): Remove.
5645         (process_reg_shuffles): Add new parameter.  Use it as an
5646         additional guard for copy generation.
5647         (add_insn_allocno_copies): Rewrite.
5648
5649 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
5650
5651         * common.opt (fsched2-use-traces): Preserved for backward
5652         compatibility.
5653         * doc/invoke.texi: Remove the documentation about option
5654         -fsched2-use-traces.
5655         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
5656         flag_sched2_use_traces.
5657         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
5658         the backward compatibility flag section.
5659
5660 2010-02-09  Richard Guenther  <rguenther@suse.de>
5661
5662         PR tree-optimization/43008
5663         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
5664         make HEAP variables initialized from global memory if they
5665         are not known builtin functions.
5666         (find_func_aliases): Adjust.
5667
5668 2010-02-09  Richard Guenther  <rguenther@suse.de>
5669
5670         PR tree-optimization/43000
5671         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
5672         arithmetic manually.
5673
5674 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
5675
5676         PR tree-optimization/42931
5677         * tree-loop-linear.c (try_interchange_loops): Don't call
5678         double_int_mul if estimated_loop_iterations failed.
5679
5680 2010-02-08  Martin Jambor  <mjambor@suse.cz>
5681
5682         PR middle-end/42898
5683         * tree-sra.c (build_accesses_from_assign): Do not mark in
5684         should_scalarize_away_bitmap if stmt has volatile ops.
5685         (sra_modify_assign): Do not process assigns piecemeal if if stmt
5686         has volatile ops.
5687
5688 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
5689
5690         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
5691
5692 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
5693
5694         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
5695         before the pattern.
5696
5697 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
5698
5699         PR middle-end/42946
5700         * df-core.c (df_finish_pass): Change type of saved_flags to int.
5701
5702 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
5703
5704         PR middle-end/42988
5705         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
5706         to unknown_dependence.
5707         (graphite_legal_transform_dr): Handle the unknown_dependence.
5708         (graphite_carried_dependence_level_k): Same.
5709
5710 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
5711
5712         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
5713
5714 2010-02-07  Richard Guenther  <rguenther@suse.de>
5715
5716         PR middle-end/42991
5717         * expr.c (get_inner_reference): Always initialize *pbitsize.
5718
5719 2010-02-07  Richard Guenther  <rguenther@suse.de>
5720
5721         PR middle-end/42956
5722         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
5723         new ARRAY_REFs on variable size element or minimal index arrays.
5724         Complete.
5725         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
5726         gimple_fold_indirect_ref.
5727
5728 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
5729
5730         PR target/42957
5731         * arm.c (arm_override_options): Just return if the user has specified
5732         an invalid fpu name.
5733
5734 2010-02-03  Jason Merrill  <jason@redhat.com>
5735
5736         PR c++/42870
5737         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
5738         i386_pe_maybe_record_exported_symbol.
5739
5740 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
5741
5742         PR target/42924
5743         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
5744         (pa_delegitimize_address): New function.
5745
5746 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
5747
5748         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
5749         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
5750
5751 2010-02-05  Richard Guenther  <rguenther@suse.de>
5752
5753         PR lto/42762
5754         * lto-streamer-in.c (get_resolution): Deal with references
5755         to undefined functions.
5756
5757 2010-02-05  Richard Guenther  <rguenther@suse.de>
5758
5759         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
5760         (fold_const_aggregate_ref): Likewise.
5761         (ccp_fold_stmt): Substitute loads.
5762         (maybe_fold_reference): Verify types before substituting.
5763         Unshare properly.
5764         (fold_gimple_assign): Unshare properly.
5765         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
5766
5767 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
5768
5769         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
5770         for rs6000_gen_cell_microcode.
5771
5772 2010-02-04  Richard Guenther  <rguenther@suse.de>
5773
5774         PR rtl-optimization/42952
5775         * dse.c (const_or_frame_p): Remove MEM handling.
5776
5777 2010-02-04  Nick Clifton  <nickc@redhat.com>
5778
5779         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
5780         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
5781         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
5782         (mn10300_asm_output_mi_thunk): New function.
5783         (mn10300_can_output_mu_thunk): New function.
5784         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
5785         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
5786         (FUNCTION_ARG): Delete incorrect comment.
5787
5788 2010-02-03  Jason Merrill  <jason@redhat.com>
5789
5790         PR c++/40138
5791         * fold-const.c (operand_equal_p): Handle erroneous types.
5792
5793 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5794
5795         * config/h8300/h8300.md (can_delay): Fix attibute condition.
5796
5797 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
5798
5799         PR rtl-optimization/42941
5800         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
5801         of xmalloc.
5802
5803 2010-02-03  Jason Merrill  <jason@redhat.com>
5804
5805         PR c++/35652
5806         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
5807
5808 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
5809
5810         PR debug/42896
5811         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
5812         (cselib_reset_table): Renamed from...
5813         (cselib_reset_table_with_next_value): ... this.
5814         (cselib_get_next_uid): Renamed from...
5815         (cselib_get_next_unknown_value): ... this.
5816         * cselib.c (next_uid): Renamed from...
5817         (next_unknown_value): ... this.
5818         (cselib_clear_table): Adjust.
5819         (cselib_reset_table): Adjust.  Renamed from...
5820         (cselib_reset_table_with_next_value): ... this.
5821         (cselib_get_next_uid): Adjust.  Renamed from...
5822         (cselib_get_next_unknown_value): ... this.
5823         (get_value_hash): Use hash.
5824         (cselib_hash_rtx): Likewise.
5825         (new_cselib_val): Adjust.  Set and dump uid.
5826         (cselib_lookup_mem): Pass next_uid as hash.
5827         (cselib_subst_to_values): Likewise.
5828         (cselib_log_lookup): Dump uid.
5829         (cselib_lookup): Pass next_uid as hash.  Adjust.
5830         (cselib_process_insn): Adjust.
5831         (cselib_init): Initialize next_uid.
5832         (cselib_finish): Adjust.
5833         (dump_cselib_table): Likewise.
5834         * dse.c (canon_address): Dump value uid.
5835         * print-rtl.c (print_rtx): Print value uid.
5836         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
5837         (dvuid): New type.
5838         (dv_uid): New function, sort of renamed from...
5839         (dv_htab_hash): ... this, reimplemented in terms of it and...
5840         (dv_uid2hash): ... this.  New.
5841         (variable_htab_eq): Drop excess assertions.
5842         (tie_break_pointers): Removed.
5843         (canon_value_cmp): Compare uids.
5844         (variable_post_merge_New_vals): Print uids.
5845         (vt_add_function_parameters): Adjust.
5846         (vt_initialize): Reset table.  Adjust.
5847
5848 2010-02-03  Richard Guenther  <rguenther@suse.de>
5849
5850         PR tree-optimization/42944
5851         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
5852         (call_may_clobber_ref_p_1): Likewise.  Properly handle
5853         malloc and calloc clobbering errno.
5854
5855 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
5856
5857         * doc/invoke.texi: Fix name of sched1 dump.
5858
5859         * opts.c (decode_options): Set flag_tree_switch_conversion
5860         only conditionally on optimize >= 2.
5861
5862         * gcse.c: Assorted comment fixes in pass description.
5863
5864 2010-02-03  Anthony Green  <green@moxielogic.com>
5865
5866         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
5867         nop padding in order to maintain alignment of storage location of
5868         target function address.
5869         (moxie_trampoline_init): Store target function address at newly
5870         aligned location.
5871         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
5872         to 32.
5873         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
5874
5875 2010-02-03  Richard Guenther  <rguenther@suse.de>
5876
5877         PR middle-end/42927
5878         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
5879
5880 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5881
5882         * config.gcc: Reenable check for obsolete targets.
5883         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
5884         mips-sgi-irix6.[0-4]*.
5885
5886 2010-02-02  Nick Clifton  <nickc@redhat.com>
5887
5888         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
5889         constant size of 4 as being the same as 0.
5890         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
5891         can take values in the range 0..4.
5892
5893 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
5894
5895         PR java/41991
5896         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
5897         as _darwin10_Unwind_FindEnclosingFunction().
5898         * libgcc-libsystem.ver: New.
5899
5900 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
5901
5902         PR target/41399
5903         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
5904         implicitly set registers.
5905
5906 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
5907
5908         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
5909         (arm_override_options): Allow automatic selection of the thread
5910         pointer register if thumb2.
5911         (legitimize_pic_address): Improve code sequences for Thumb2.
5912         (arm_call_tls_get_addr): Likewise.
5913         (legitimize_tls_address): Likewise.
5914         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
5915         (pic_load_addr_32bit): ... this.  New named pattern.
5916         * thumb2.md (pic_load_addr_thumb2): Delete.
5917         (pic_load_dot_plus_four): Delete.
5918         (tls_load_dot_plus_four): New named pattern.
5919
5920 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5921
5922         PR libgomp/29986
5923         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
5924         Document fix for TLS bug.
5925
5926 2010-01-31  Richard Guenther  <rguenther@suse.de>
5927
5928         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
5929         conservatively correct.
5930
5931 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5932
5933         PR target/42850
5934         Revert:
5935         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5936
5937         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
5938
5939 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5940
5941         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
5942
5943 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
5944
5945         * config.gcc: Adjust order of makefile fragments for mingw targets.
5946
5947 2010-01-31  Richard Guenther  <rguenther@suse.de>
5948
5949         PR middle-end/42898
5950         * gimplify.c (gimplify_init_constructor): For volatile LHS
5951         initialize a temporary.
5952
5953 2010-01-31  Matthias Klose  <doko@ubuntu.com>
5954
5955         * configure.ac: Fix __stack_chk_fail check for cross builds configured
5956         --with-headers
5957         * configure: Regenerate.
5958
5959 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
5960
5961         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
5962         the same alias set and their sizes different constantness.
5963         (aliasing_component_refs_p): Revert 2009-10-24 change.
5964
5965 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5966
5967         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
5968         unused.
5969
5970 2010-01-29  Richard Guenther  <rguenther@suse.de>
5971
5972         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
5973         Assert we successfully updated the call.
5974
5975 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
5976
5977         PR rtl-optimization/42889
5978         * df.h (df_set_bb_dirty_nonlr): New prototype.
5979         * df-core.c (df_set_bb_dirty_nonlr): New function.
5980         * df-scan.c (df_insn_rescan): Call it instead of
5981         df_set_bb_dirty for DEBUG_INSNs.
5982
5983 2010-01-29  Richard Guenther  <rguenther@suse.de>
5984
5985         PR middle-end/37448
5986         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
5987         quadratic behavior in most cases.
5988
5989 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
5990
5991         PR target/42891
5992         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
5993         in the call to gen_x86_movsicc_0_m1.
5994
5995 2010-01-28  Richard Guenther  <rguenther@suse.de>
5996
5997         PR tree-optimization/42871
5998         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
5999
6000 2010-01-28  Richard Guenther  <rguenther@suse.de>
6001
6002         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
6003         into call arguments.
6004
6005 2010-01-28  Richard Guenther  <rguenther@suse.de>
6006
6007         PR middle-end/42883
6008         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
6009         the forwarder if the destination is an EH landing pad.
6010
6011 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
6012
6013         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
6014         block list passed to gimple_duplicate_sese_tail.
6015         (parallelize_loops): Avoid parallelization when the function
6016         has_nonlocal_label.
6017         Avoid parallelization when the preheader is IRREDUCIBLE.
6018         Try to optimize when estimated_loop_iterations_int is unresolved.
6019         Add the loop's location to the dump file.
6020         * tree-cfg.c (add_phi_args_after_redirect): Remove.
6021         (gimple_duplicate_sese_tail): Remove the check for the latch.
6022         Redirect nexits to the exit block.
6023         Remove handling of the incoming edges to the latch.
6024         Redirect the backedge from the copied latch to the exit bb.
6025
6026 2010-01-28  Michael Matz  <matz@suse.de>
6027
6028         PR target/42881
6029         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
6030         Wrap force_reg into a sequence, emit it before user.
6031
6032 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
6033
6034         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
6035         (arm_rev): New.
6036         (arm_legacy_rev): Likewise.
6037         (thumb_legacy_rev): Likewise.
6038
6039 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
6040
6041         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
6042         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
6043         on MEM's address failed, try avoid_constant_pool_reference and
6044         recurse if it returned something different.
6045         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
6046         address, try avoid_constant_pool_reference and recurse if it
6047         returned something different.
6048         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
6049         address and avoid_constant_pool_reference returned something
6050         different, don't set have_address.
6051
6052 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
6053
6054         PR debug/42861
6055         * var-tracking.c (val_store): Add modified argument, obey it.
6056         Adjust callers.
6057         (count_uses): Move down logging of main.
6058         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
6059         don't need resolution.
6060         (emit_notes_in_bb): Likewise.
6061
6062 2010-01-27  Richard Guenther  <rguenther@suse.de>
6063
6064         PR middle-end/42878
6065         * tree-inline.c (remap_decl): Delay remapping of SSA name
6066         default definitions until we need them.
6067
6068 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
6069
6070         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
6071         (rs6000_delegitimize_address): New function.
6072
6073         * config/s390/s390.c (s390_delegitimize_address): Call
6074         delegitimize_mem_from_attrs.
6075
6076         PR middle-end/42874
6077         * tree-inline.c (cannot_copy_type_1): Removed.
6078         (copy_forbidden): Don't forbid copying of functions containing
6079         records/unions with variable length fields.
6080
6081 2010-01-27  Christian Bruel  <christian.bruel@st.com>
6082
6083         Revert:
6084         PR target/42841
6085         * config/sh/sh.c (find_barrier): Increase length for non delayed
6086         conditional branches.
6087
6088 2010-01-27  Matthias Klose  <doko@ubuntu.com>
6089
6090         * configure.ac (gnu-unique-object): Fix ldd version check.
6091         * configure: Regenerate.
6092
6093 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6094
6095         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
6096         HAVE_GNU_AS value.
6097         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
6098         Test for HAVE_GNU_AS value.
6099
6100 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6101
6102         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
6103         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
6104         INT64_TYPE): Define.
6105         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
6106         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
6107         INT_LEAST64_TYPE): Define.
6108         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
6109         UINT_LEAST64_TYPE): Define.
6110         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
6111         INT_FAST64_TYPE): Define.
6112         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
6113         UINT_FAST64_TYPE): Define.
6114         (INTMAX_TYPE, UINTMAX_TYPE): Define.
6115         (INTPTR_TYPE, UINTPTR_TYPE): Define.
6116         (SIG_ATOMIC_TYPE): Define.
6117
6118 2010-01-26  Richard Guenther  <rguenther@suse.de>
6119
6120         * df-scan.c (df_scan_set_bb_info): Remove assert.
6121         (df_insn_rescan_debug_internal): Merge asserts.
6122         (df_install_ref): Likewise.
6123         (df_mark_reg): Use bitmap_set_range.
6124         (df_hard_reg_used_p): Remove assert.
6125         (df_hard_reg_used_count): Likewise.
6126
6127 2010-01-26  Richard Guenther  <rguenther@suse.de>
6128
6129         PR rtl-optimization/42685
6130         * web.c (web_main): Ignore DEBUG_INSNs.
6131
6132 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
6133
6134         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
6135
6136         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
6137         Fix types of fndecl and arglist parameters.
6138
6139 2010-01-26  Richard Guenther  <rguenther@suse.de>
6140
6141         PR middle-end/42806
6142         * tree-eh.c (unsplit_eh): Skip debug insns.
6143
6144 2010-01-26  Richard Guenther  <rguenther@suse.de>
6145
6146         PR tree-optimization/42250
6147         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
6148
6149 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
6150
6151         PR fortran/42866
6152         * omp-low.c (expand_omp_sections): Only use single_pred if
6153         l2_bb is single_pred_p.
6154
6155 2010-01-25  Christian Bruel  <christian.bruel@st.com>
6156
6157         PR target/42841
6158         * config/sh/sh.c (find_barrier): Increase length for non delayed
6159         conditional branches.
6160         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
6161
6162 2010-01-24  David S. Miller  <davem@davemloft.net>
6163
6164         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
6165         define if not using GAS.
6166         * config/sparc/sparc.c (sparc_elf_asm_named_section):
6167         Likewise.  Delete SECTION_MERGE code, which is only applicable
6168         when using GAS.
6169
6170 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
6171
6172         PR c++/42748
6173         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
6174         mangling of va_list in system headers.
6175
6176 2010-01-23  Toon Moene  <toon@moene.org>
6177
6178         * tree-predcom.c (combine_chains): Return NULL, not false.
6179
6180 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
6181
6182         * tree-loop-distribution.c (distribute_loop): Fix declaration and
6183         initialization of variable res to agree with return type.
6184
6185 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
6186
6187         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
6188         * tree-sra.c: Add include of expr.h.
6189
6190 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
6191
6192         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
6193         insert the debug stmt on the single non-EH edge from the stmt.
6194
6195 2010-01-22  Richard Henderson  <rth@redhat.com>
6196
6197         PR tree-opt/42833
6198         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
6199         the RHS until after generate_subtree_copies has insertted its
6200         code before the current statement.
6201
6202 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
6203
6204         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
6205
6206         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
6207
6208 2010-01-21  Martin Jambor  <mjambor@suse.cz>
6209
6210         PR tree-optimization/42585
6211         * tree-sra.c (struct access): New field grp_total_scalarization.
6212         (dump_access): Dump the new field.
6213         (should_scalarize_away_bitmap): New variable.
6214         (cannot_scalarize_away_bitmap): Likewise.
6215         (sra_initialize): Allocate new bitmaps.
6216         (sra_deinitialize): Free new bitmaps.
6217         (create_access_1): New function.
6218         (create_access): Parts moved to create_access_1.
6219         (type_consists_of_records_p): New function.
6220         (completely_scalarize_record): Likewise.
6221         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
6222         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
6223         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
6224         access.
6225         (analyze_all_variable_accesses): Completely scalarize small eligible
6226         records.
6227
6228 2010-01-21  Martin Jambor  <mjambor@suse.cz>
6229
6230         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
6231
6232 2010-01-21  Andrew Haley  <aph@redhat.com>
6233
6234         * gcc.c (process_command): Move lang_specific_driver before
6235         setting cc_libexec_prefix.
6236
6237 2010-01-21  Richard Guenther  <rguenther@suse.de>
6238
6239         PR middle-end/19988
6240         * fold-const.c (negate_expr_p): Pretend only negative
6241         real constants are easily negatable.
6242
6243 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
6244             Jason Merrill  <jason@redhat.com>
6245
6246         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
6247         (TYPE_TRANSPARENT_AGGR): this, for union and record.
6248         * calls.c (initialize argument_information): Handle it.
6249         * c-common.c (handle_transparent_union_attribute): Use new name.
6250         * c-decl.c (finish_struct): Ditto.
6251         * c-typeck.c (type_lists_compatible_p): Ditto.
6252         (convert_for_assignment): Use new name and also handle record.
6253         * function.c (aggregate_value_p): Handle it.
6254         (pass_by_reference): Ditto.
6255         (assign_parm_data_types): Ditto.
6256         * print-tree.c (print_node): Ditto.
6257         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
6258         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
6259         * tree.c (first_field): New fn.
6260
6261 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
6262
6263         PR target/42818
6264         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
6265         even when linking statically, for now.
6266
6267 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
6268
6269         PR debug/42715
6270         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
6271         without a cselib val.
6272         (count_uses): Accept MO_VAL_SET with no val on stores.
6273         (add_stores): Likewise.
6274
6275 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6276
6277         * var-tracking.c (check_value_val): Add a compile time assertion.
6278         (dv_is_decl_p): Simplify.
6279         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
6280         gcc_assert if ENABLE_CHECKING.
6281
6282 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
6283
6284         PR debug/42782
6285         * var-tracking.c: Include tree-flow.h.
6286         (mem_dies_at_call): New.
6287         (dataflow_set_preserve_mem_locs): Use it.
6288         (dataflow_set_remove_mem_locs): Likewise.
6289         (dump_var): Renamed from dump_variable.  Adjust all callers.
6290         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
6291         * Makefile.in (var-tracking.o): Adjust deps.
6292
6293 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
6294
6295         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
6296
6297 2010-01-20  Richard Guenther  <rguenther@suse.de>
6298
6299         PR tree-optimization/42717
6300         * tree-ssa-dce.c (get_live_post_dom): Remove.
6301         (forward_edge_to_pdom): Take an arbitrary edge to copy
6302         degenerate PHI args from.
6303         (remove_dead_stmt): Use the first post-dominator even if it
6304         does not contain live statements as redirection destination.
6305
6306 2010-01-20  Richard Guenther  <rguenther@suse.de>
6307
6308         * tree-inline.c (estimate_num_insns): Handle EH builtins.
6309
6310 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6311
6312         * sel-sched.c (create_speculation_check): Remove set but not used
6313         variable twin.
6314         (try_transformation_cache): Remove set but not used variable ds.
6315         (calculate_privileged_insns): Remove set but not used variables
6316         cur_insn and min_spec_insn.
6317         (find_best_expr): Remove set but not used variable avail_n.
6318         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
6319         variable e.
6320         * cgraphunit.c (assemble_thunk): Remove set but not used variable
6321         false_label.
6322         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
6323         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
6324         new_scop_exit_edge.
6325
6326 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
6327
6328         PR bootstrap/42786
6329         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
6330         cpu types.  Add support for *-sse3 cpu types.
6331         (x86_64-*-*): Ditto.
6332
6333 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6334
6335         PR middle-end/42803
6336         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
6337         argument, call initializer_constant_valid_p_1 instead of
6338         initializer_constant_valid_p, pass CACHE to it, return NULL
6339         immediately if first call returns NULL.
6340         (initializer_constant_valid_p_1): New function.
6341         (initializer_constant_valid_p): Use it.
6342
6343 2010-01-20  Thomas Quinot  <quinot@adacore.com>
6344
6345         * tree.def (PLACEHOLDER_EXPR): Fix comment.
6346
6347 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
6348
6349         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
6350         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
6351         (loc_list_from_tree): Don't handle unsigned division.  Handle
6352         signed modulo using DW_OP_{over,over,div,mul,minus}.
6353         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
6354         modulo instead of signed.
6355
6356 2010-01-20  DJ Delorie  <dj@redhat.com>
6357
6358         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
6359         (Fpa): Pass it
6360         (h8300_emit_stack_adjustment): Propogate it.
6361         (push): Pass it.
6362         (h8300_expand_prologue): Likewise.
6363         (h8300_expand_epilogue): Likewise.
6364
6365 2010-01-19  Michael Matz  <matz@suse.de>
6366
6367         PR tree-optimization/41783
6368         * tree-data-ref.c (toplevel): Include flags.h.
6369         (dump_data_dependence_relation):  Also dump the inputs if the
6370         result will be unknown.
6371         (split_constant_offset_1): Look through some conversions.
6372         * tree-predcom.c (determine_roots_comp): Restart a new chain if
6373         the offset from last element is too large.
6374         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
6375         (reassociate_to_the_same_stmt): Handle vector registers.
6376         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
6377         (e.g. conversions).
6378         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
6379         wide_prolog_niters argument, emit widening instructions.
6380         (vect_do_peeling_for_alignment): Adjust caller, use widened
6381         variant of the iteration cound.
6382         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
6383
6384 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6385
6386         PR target/38697
6387         * config/arm/neon-testgen.m (emit_automatics): New parameter
6388         features. Adjust for Fixed_return_reg feature.
6389         (test_intrinsic): Call emit_automatics with new feature.
6390         * config/arm/neon.ml: Update copyright years.
6391         (features): New Fixed_return_reg feature.
6392         (ops): Update feature for Vget_low.
6393
6394 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
6395
6396         PR tree-optimization/42719
6397         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
6398         stmt uses.
6399
6400         PR debug/42728
6401         * fwprop.c (all_uses_available_at): Return false if def_set dest
6402         is a REG that is used in def_insn.
6403
6404 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
6405
6406         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
6407
6408         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
6409         Add argument names.
6410
6411         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
6412
6413         * target.h (struct gcc_target) <secondary_reload>: Change type
6414         of last argument to secondary_reload_info *.
6415
6416 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
6417
6418         PR target/42774
6419         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
6420         memory references with unaligned offsets.  Remove CQImode handling.
6421         (unaligned_memory_operand): Return 1 for memory references with
6422         unaligned offsets.  Remove CQImode handling.
6423
6424 2010-01-18  Richard Guenther  <rguenther@suse.de>
6425
6426         PR middle-end/39954
6427         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
6428         builtin calls.
6429
6430 2010-01-18  Richard Guenther  <rguenther@suse.de>
6431
6432         PR tree-optimization/42781
6433         * tree-ssa-structalias.c (find_what_var_points_to): Skip
6434         restrict processing only if the original variable was artificial.
6435
6436 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
6437
6438         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
6439         find number of popped argument bytes.
6440
6441         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
6442         Fix the text that describes the return value for invalid insns.
6443
6444         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
6445
6446         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
6447         Clarify what 'cost of the -dependence' is.  Fix quoting.
6448
6449         * toplev.c (default_get_pch_validity): Rename argument to "sz".
6450         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
6451
6452 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
6453
6454         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
6455         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
6456
6457 2010-01-17  Richard Guenther  <rguenther@suse.de>
6458
6459         PR middle-end/42248
6460         * function.c (split_complex_args): Take a VEC to modify.
6461         (assign_parms_augmented_arg_list): Build a VEC instead of
6462         a chain of PARM_DECLs.
6463         (assign_parms_unsplit_complex): Take a VEC of arguments.
6464         Do not fixup unmodified parms.
6465         (assign_parms): Deal with the VEC.
6466         (gimplify_parameters): Likewise.
6467
6468 2010-01-17  Richard Guenther  <rguenther@suse.de>
6469
6470         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
6471         node existence check.
6472         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
6473         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
6474         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
6475         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
6476         (gimple_execute_on_growing_pred): Likewise.
6477
6478 2010-01-17  Richard Guenther  <rguenther@suse.de>
6479
6480         PR tree-optimization/42773
6481         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
6482         (compute_antic_aux): Likewise.
6483         (compute_partial_antic_aux): Likewise.
6484
6485 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
6486
6487         PR debug/42767
6488         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
6489         and US_TRUNCATE.
6490
6491 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
6492
6493         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
6494         appearance.
6495
6496         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
6497         Fix markup for strict argument.
6498
6499         (TARGET_SCHED_REORDER2): Fix argument types.
6500
6501         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
6502         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
6503
6504         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
6505         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
6506
6507         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
6508         Add argument name.
6509
6510         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
6511         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
6512         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
6513         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
6514         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
6515
6516         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
6517
6518         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
6519
6520         (TARGET_ASM_RELOC_RW_MASK): Add return type.
6521         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
6522
6523         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
6524
6525         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
6526         Use prototype.
6527
6528         (TARGET_ASM_NAMED_SECTION): Fix argument list.
6529
6530         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
6531         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
6532
6533         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
6534
6535         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
6536
6537         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
6538         referring to it.  Fix language.
6539
6540         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
6541
6542         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
6543
6544         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
6545
6546         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
6547
6548         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
6549         '@var{stream}.  Remove stray 'and'.
6550
6551         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
6552
6553         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
6554
6555         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
6556
6557         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
6558         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
6559
6560         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
6561         Fix description of return value.
6562         Rename argument "sz" to "len."
6563
6564         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
6565         Clarify meaning of 'true' return value.
6566
6567         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
6568
6569         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
6570         rep_mode versus mode_rep.
6571
6572         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
6573
6574         (TARGET_BUILTIN_DECL): Fix name.
6575
6576         (TARGET_COMMUTATIVE_P): Fix type of first argument.
6577
6578         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
6579
6580         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
6581
6582         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
6583
6584         (TARGET_RELAXED_ORDERING): Use @deftypevr.
6585
6586         (TARGET_GET_DRAP_RTX): Note that this is a hook.
6587         Clarify language.
6588
6589         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
6590         Rename argument tm_fn to md_fn.
6591
6592         (TARGET_OPTION_PRINT): Fix argument list.
6593
6594 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
6595
6596         PR target/42664
6597         * config/i386/i386.c (ix86_fixup_binary_operands):
6598         Revert FMA4 fixup of operands.
6599
6600 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6601
6602         PR gcc/42525
6603         * Makefile.in (write_entries_to_file, install-plugin):
6604         Use \012 instead of \n with tr.
6605
6606 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
6607
6608         * configure.ac (HAVE_AS_REF): New C macro.
6609         * configure: Regenerate.
6610         * config.in: Likewise.
6611         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
6612         if HAVE_AS_REF.
6613         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
6614         if HAVE_AS_REF.
6615
6616 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
6617
6618         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
6619
6620         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
6621
6622         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
6623
6624         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
6625
6626         (TARGET_IN_SMALL_DATA_P): Fix argument type.
6627
6628         (TARGET_BINDS_LOCAL_P): Fix argument type.
6629
6630         (TARGET_ASM_FILE_END): Use prototype.
6631
6632         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
6633
6634         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
6635
6636         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
6637
6638         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
6639
6640         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
6641         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
6642
6643         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
6644         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
6645
6646         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
6647         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
6648         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
6649         (TARGET_ADDR_SPACE_CONVERT): Likewise.
6650
6651         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
6652
6653         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
6654
6655         (TARGET_INIT_BUILTINS): Use prototype.
6656
6657         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
6658         Put 'const char *' in braces.  Fix parameter types.
6659         (TARGET_INVALID_CONVERSION): Fix parameter types.
6660         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
6661         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
6662
6663         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
6664         Fix argument type.
6665
6666         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
6667
6668         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
6669
6670 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
6671
6672         * doc/tm.texi (TARGET_HELP): Fix return type.
6673
6674         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
6675         in braces.  Fix argument types.
6676
6677         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
6678
6679         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
6680
6681         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
6682
6683         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
6684         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
6685
6686         (TARGET_MANGLE_TYPE): Fix argument types.
6687
6688         (TARGET_IRA_COVER_CLASSES): Use prototype.
6689
6690         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
6691
6692         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
6693
6694         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
6695
6696         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
6697
6698         (TARGET_CALLEE_COPIES): Fix argument types.
6699
6700         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
6701
6702         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
6703
6704         (TARGET_FUNCTION_VALUE): Fix argument types.
6705
6706         (TARGET_RETURN_IN_MSB): Fix argument type.
6707
6708         (TARGET_RETURN_IN_MEMORY): Fix argument types.
6709
6710         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
6711
6712         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
6713
6714         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
6715         agree with return type.
6716
6717         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
6718
6719 2010-01-15  Jing Yu  <jingyu@google.com>
6720
6721         PR rtl-optimization/42691
6722         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
6723         a pseudo to a constant and are merged, and adjust comments.
6724
6725 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
6726
6727         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
6728
6729 2010-01-15  Richard Guenther  <rguenther@suse.de>
6730
6731         PR middle-end/42739
6732         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
6733         labels of computed or non-local gotos to the destination.
6734         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
6735         landing pad label is the first label.
6736
6737 2010-01-15  Richard Guenther  <rguenther@suse.de>
6738
6739         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
6740
6741 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6742
6743         PR target/42747
6744         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
6745         to allow generation of the xssqrtdp instruction on power7.
6746         (sqrtdf2_fpr): Ditto.
6747
6748 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
6749
6750         PR middle-end/42674
6751         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
6752         functions with noreturn attribute.
6753
6754         PR c++/42608
6755         * varasm.c (declare_weak): Add weak attribute to decl if it
6756         doesn't have one already.
6757         (assemble_external): Only add decls to weak_decls if they also
6758         have weak attribute.
6759
6760 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
6761
6762         * var-tracking.c (var_reg_delete): Don't delete the association
6763         between REGs and values or one-part variables if the register
6764         isn't clobbered.
6765
6766 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
6767
6768         PR debug/42657
6769         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
6770         because its first operand is a non-localized variable.
6771
6772 2010-01-14  Martin Jambor  <mjambor@suse.cz>
6773
6774         PR tree-optimization/42706
6775         * tree-sra.c (encountered_recursive_call): New variable.
6776         (encountered_unchangable_recursive_call): Likewise.
6777         (sra_initialize): Initialize both new variables.
6778         (callsite_has_enough_arguments_p): New function.
6779         (scan_function): Call decl and flags check only for IPA-SRA, check
6780         whether there is a recursive call and whether it has enough arguments.
6781         (all_callers_have_enough_arguments_p): New function.
6782         (convert_callers): Look for recursive calls only when
6783         encountered_recursive_call is set.
6784         (ipa_early_sra): Bail out either if
6785         !all_callers_have_enough_arguments_p or
6786         encountered_unchangable_recursive_call.
6787
6788 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6789
6790         * sel-sched.c: Add 2010 to copyright years.
6791         * sel-sched-ir.c: Likewise.
6792         * sel-sched-ir.h: Likewise.
6793
6794 2010-01-14  Martin Jambor  <mjambor@suse.cz>
6795
6796         PR tree-optimization/42714
6797         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
6798         constructors specially.
6799
6800 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6801
6802         * config/i386/drivers-i386.c (detect_caches_intel):
6803         Add l2sizekb parameter and fill in.
6804         (host_detect_local_cpu): Add l2sizekb, fill in.
6805         Add Atom small cache heuristic.
6806
6807 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6808
6809         * config/i386/drivers-i386.c (detect_caches_cpuid4):
6810         Add level3 parameter and fill in.
6811         (detect_caches_intel): Handle level3 cache.
6812
6813 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6814
6815         * config/i386/drivers-i386.c (host_detect_local_cpu):
6816         Fix core duo detection.
6817
6818 2010-01-14  Andi Kleen  <ak@linux.intel.com>
6819
6820         * config/i386/drivers-i386.c (host_detect_local_cpu):
6821         Fix Atom detection.
6822
6823 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6824
6825         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
6826         (rs6000_variable_issue_1): this.  Use...
6827         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
6828
6829 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6830
6831         * sel-sched-ir.c (sel_restore_other_notes): Rename to
6832         sel_restore_notes.  Update all callers.  Call reemit_notes
6833         for all insns.
6834
6835 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6836
6837         PR rtl-optimization/42246
6838         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
6839         loops.
6840
6841 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6842
6843         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
6844         all successors is the same as number of successors in current region.
6845
6846 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6847
6848         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
6849         to rename is not separable.  Otherwise check that its LHS is not NULL.
6850
6851 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6852
6853         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
6854
6855 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6856
6857         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
6858         available registers when failed to discover LHS register class.
6859         Fix indentation.  Update comment.
6860
6861 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6862             Alexander Monakov  <amonakov@ispras.ru>
6863
6864         PR rtl-optimization/42389
6865         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
6866         to can_issue_more.
6867         (advance_state_on_fence): Likewise.
6868         (sel_target_adjust_priority): Print debug output only when
6869         sched_verbose >= 4, not 2.
6870         (get_expr_cost): Do not issue all unique insns on the next cycle.
6871         (fill_insns): Initialize can_issue_more from the value saved
6872         with the fence.
6873         * sel-sched-ir.c (flist_add): New parameter issue_more.
6874         Init FENCE_ISSUE_MORE with it.
6875         (merge_fences): Likewise.
6876         (init_fences): Update call to flist_add.
6877         (add_to_fences, add_clean_fence_to_fences)
6878         (add_dirty_fence_to_fences): Likewise.
6879         (move_fence_to_fences): Update call to merge_fences.
6880         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
6881         sched groups.
6882         * sel-sched-ir.h (struct _fence): New field issue_more.
6883         (FENCE_ISSUE_MORE): New accessor macro.
6884
6885 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6886
6887         PR rtl-optimization/42388
6888         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
6889         that have no predecessors nor successors.  Do not call move_bb_info
6890         for empty blocks outside of current region.
6891
6892 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6893
6894         PR rtl-optimization/42294
6895         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
6896         * sel-sched.c (move_exprs_to_boundary): Transitively add all
6897         originators' originators.
6898
6899 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
6900
6901         PR rtl-optimization/39453
6902         PR rtl-optimization/42246
6903         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
6904         for pipelining_p.
6905         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
6906
6907 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
6908             Alexander Monakov  <amonakov@ispras.ru>
6909
6910         PR middle-end/42245
6911         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
6912         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
6913         argument.  Update all callers.
6914         (tidy_control_flow): ... and here.  Recompute topological order
6915         of basic blocks in region if necessary.
6916         (sel_redirect_edge_and_branch): Change return type.  Return true
6917         if topological order might have been invalidated.
6918         (purge_empty_blocks): Export and move from...
6919         * sel-sched.c (purge_empty_blocks): ... here.
6920         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
6921         (maybe_tidy_empty_bb): Delete prototype.
6922         (purge_empty_blocks): Declare.
6923
6924 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
6925
6926         PR rtl-optimization/42249
6927         * sel-sched.c (try_replace_dest_reg): When chosen register
6928         and original register is the same, do not bail out early, but
6929         still check all original insns for validity of replacing destination
6930         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
6931         in this case.
6932
6933 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
6934
6935         PR c/42721
6936         Port from no-undefined-overflow branch:
6937         2009-03-09  Richard Guenther  <rguenther@suse.de>
6938
6939         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
6940
6941 2010-01-14  Richard Guenther  <rguenther@suse.de>
6942
6943         PR lto/42665
6944         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
6945
6946 2010-01-14  Ira Rosen  <irar@il.ibm.com>
6947
6948         PR tree-optimization/42709
6949         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
6950         as scalar type in creation of constant vector operand.
6951
6952 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6953
6954         PR testsuite/42414
6955         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
6956         (check-parallel-%): Match `testsuite' directory component only
6957         at the end.
6958
6959 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
6960
6961         PR translation/39521
6962         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
6963         strings with _().
6964
6965 2010-01-13  Richard Guenther  <rguenther@suse.de>
6966
6967         PR tree-optimization/42730
6968         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
6969         offset zero.
6970
6971 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
6972
6973         PR target/pr42542
6974         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
6975         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
6976         them signed.
6977
6978 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
6979
6980         * config/bfin/libgcc-bfin.ver: Regenerate based on current
6981         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
6982         ___umulsi3_highpart.
6983
6984         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
6985         rather than schedule_insns if the pass is enabled.
6986
6987 2010-01-13  Martin Jambor  <mjambor@suse.cz>
6988
6989         PR tree-optimization/42704
6990         * tree-sra.c (sra_modify_assign): Do not delete assignments to
6991         SSA_NAMEs.
6992
6993 2010-01-13  Martin Jambor  <mjambor@suse.cz>
6994
6995         PR tree-optimization/42703
6996         * tree-sra.c (analyze_access_subtree): Check that we can build a
6997         reference to the original data within the aggregate.
6998
6999 2010-01-13  Richard Guenther  <rguenther@suse.de>
7000
7001         PR tree-optimization/42705
7002         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
7003
7004 2010-01-13  Richard Guenther  <rguenther@suse.de>
7005
7006         PR middle-end/42716
7007         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
7008
7009 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
7010
7011         PR debug/41371
7012         * var-tracking.c (values_to_unmark): New variable.
7013         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
7014         values_to_unmark vector.  Moved body to...
7015         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
7016         instead queue it into values_to_unmark vector.
7017         (vt_find_locations): Free values_to_unmark vector.
7018
7019 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
7020
7021         * config/s390/s390.c (override_options): Set
7022         default of max-pending-list-length to 256
7023
7024 2010-01-13  Richard Guenther  <rguenther@suse.de>
7025
7026         PR lto/42678
7027         * tree-pass.h (PROP_gimple_lcx): New.
7028         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
7029         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
7030         before the final cleanup_eh.
7031         (dump_properties): Dump PROP_gimple_lcx.
7032         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
7033         (tree_lower_complex_O0): Remove.
7034         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
7035         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
7036         tree_lower_complex, schedule TODO_update_ssa.
7037         * lto-streamer-out.c (output_function): Stream the functions
7038         properties.
7039         * lto-streamer-in.c (input_function): Likewise.
7040         (lto_read_body): Do not override them here.
7041
7042 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
7043
7044         PR c/42708
7045         * c-typeck.c (build_c_cast): Fold value cast to union type before
7046         wrapping it in a CONSTRUCTOR.
7047
7048 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
7049
7050         PR rtl-optimization/42699
7051         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
7052         involved.
7053
7054 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7055
7056         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
7057         SUBTARGET_WARN_UNUSED_SPEC): Move ...
7058         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
7059         SUBTARGET_WARN_UNUSED_SPEC): ... here
7060         * config/mips/iris5.h (LIBGCC_SPEC): Define.
7061
7062 2010-01-12  Julian Brown  <julian@codesourcery.com>
7063
7064         * config/arm/neon-schedgen.ml (Utils): Don't try to
7065         open missing module.
7066         (find_with_result): New.
7067
7068 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
7069
7070         PR debug/42662
7071         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
7072         sharing when canonicalizing ({lt,ge}u (plus a b) b).
7073
7074         PR tree-optimization/42645
7075         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
7076         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
7077         decl_map, set processing_debug_stmt to -1 and return name without
7078         any remapping.
7079
7080 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
7081
7082         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
7083         binutils version, and reword target configuration description.
7084
7085 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
7086
7087         * config/avr/avr.h (LINKER_NAME): Remove.
7088
7089 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
7090
7091         PR target/42416
7092         * config/rs6000/rs6000.c (rs6000_override_options): On targets
7093         that support VSX, warn for -mno-altivec if vsx is not disabled,
7094         and disable vsx.
7095
7096 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
7097             Shujing Zhao  <pearly.zhao@oracle.com>
7098
7099         PR translation/42469
7100         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
7101         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
7102         character between option name and help text.
7103         * c.opt (imultilib): Likewise.
7104
7105 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
7106
7107         * lto-streamer-out.c (output_unreferenced_globals): Output static
7108         variables.
7109
7110 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
7111
7112         PR rtl-optimization/42621
7113         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
7114         optimizing for size.
7115         (duplicate_computed_gotos): Remove now-redundant check.
7116
7117 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
7118
7119         PR target/37454
7120         * configure.ac: Save and restore LDFLAGS and LIBS
7121         * configure: Regenerate.
7122
7123 2010-01-10  Richard Guenther  <rguenther@suse.de>
7124
7125         PR middle-end/42667
7126         * builtins.c (fold_builtin_strlen): Add type argument and
7127         convert the resulting length to it.
7128         (fold_builtin_1): Adjust.
7129
7130 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
7131
7132         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
7133         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
7134         1 insn.
7135         (num_insns_constant_wide): Adjust for that change.
7136
7137 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7138
7139         PR debug/42631
7140         * web.c (union_defs): Add used argument, to combine uses of
7141         uninitialized regs.
7142         (entry_register): Adjust type and tests of used argument.
7143         (web_main): Widen used for new use.  Pass it to union_defs.
7144         * df.h (union_defs): Adjust prototype.
7145
7146 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7147
7148         PR debug/42630
7149         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
7150         uses in new incoming argument.  Free body.
7151         (reset_debug_uses_in_loop): New.
7152         (analyze_insn_to_expand_var): Call the latter if the former found
7153         anything.  Fix whitespace.  Reject invalid dest overlaps before
7154         going through all insns in the loop.
7155
7156 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7157
7158         PR debug/42629
7159         * haifa-sched.c (dying_use_p): Debug insns don't count.
7160
7161 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7162
7163         PR middle-end/42363
7164         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
7165         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
7166         (verify_gimple_call): Reject LHS in noreturn calls.
7167
7168 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7169
7170         PR debug/42604
7171         PR debug/42395
7172         * tree-vect-loop-manip.c (adjust_info): New type.
7173         (adjust_vec): New pointer to vector.
7174         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
7175         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
7176         (slpeel_update_phis_for_duplicate_loop): Use them.
7177         (slpeel_update_phi_nodes_for_guard1): Likewise.
7178         (slpeel_update_phi_nodes_for_guard2): Likewise.
7179         (slpeel_tree_peel_loop_to_edge): Likewise.
7180         (vect_update_ivs_after_vectorizer): Likewise.
7181
7182 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7183
7184         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
7185         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
7186
7187 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
7188
7189         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
7190         bogus uninitialized warning.
7191
7192 2010-01-09  Richard Guenther  <rguenther@suse.de>
7193
7194         PR middle-end/42512
7195         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
7196         the evolution is compatible with the initial condition.
7197
7198 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
7199
7200         * gcc.c (process_command): Update copyright notice dates.
7201         * gcov.c (print_version): Likewise.
7202         * gcov-dump.c (print_version): Likewise.
7203         * mips-tfile.c (main): Likewise.
7204         * mips-tdump.c (main): Likewise.
7205
7206 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
7207
7208         PR target/41885
7209         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
7210         (rotlhi3): Delete.
7211         (rotlhi3_8): Delete.
7212         (rotlsi3): Delete.
7213         (rotlsi3_8): Delete.
7214         (rotlsi3_16): Delete.
7215         (rotlsi3_24): Delete.
7216         (rotl<mode>3): New.
7217         (*rotw<mode>3): New.
7218         (*rotb<mode>3): New.
7219         * config/avr/avr.c (avr_rotate_bytes): New function.
7220         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
7221
7222 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
7223
7224         PR target/37454
7225         * configure.ac: Modify -rdynamic check.
7226         * configure: Regenerate.
7227
7228 2010-01-08  DJ Delorie  <dj@redhat.com>
7229
7230         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
7231         register popping order.
7232
7233 2010-01-08  Richard Guenther  <rguenther@suse.de>
7234
7235         PR lto/42528
7236         * c.opt (fsigned-char): Also let LTO handle this option.
7237         (funsigned-char): Likewise.
7238
7239 2010-01-07  Richard Guenther  <rguenther@suse.de>
7240
7241         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
7242         (gimple_op): Likewise.
7243         (gimple_op_ptr): Likewise.
7244         (gimple_assign_set_lhs): Remove gcc_assert.
7245         (gimple_assign_set_rhs1): Likewise.
7246         (gimple_assign_set_rhs2): Likewise.
7247         (gimple_call_set_lhs): Likewise.
7248         (gimple_call_set_fn): Likewise.
7249         (gimple_call_set_fndecl): Likewise.
7250         (gimple_call_fndecl): Likewise.
7251         (gimple_call_return_type): Likewise.
7252         (gimple_call_set_chain): Likewise.
7253         (gimple_call_num_args): Likewise.
7254         (gimple_call_set_arg): Likewise.
7255         (gimple_cond_set_code): Likewise.
7256         (gimple_cond_set_lhs): Likewise.
7257         (gimple_cond_set_rhs): Likewise.
7258         (gimple_cond_set_true_label): Likewise.
7259         (gimple_cond_set_false_label): Likewise.
7260         (gimple_label_set_label): Likewise.
7261         (gimple_goto_set_dest): Likewise.
7262         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
7263         (gimple_debug_bind_get_value): Likewise.
7264         (gimple_debug_bind_get_value_ptr): Likewise.
7265         (gimple_debug_bind_set_var): Likewise.
7266         (gimple_debug_bind_set_value): Likewise.
7267         (gimple_debug_bind_reset_value): Likewise.
7268         (gimple_debug_bind_has_value_p): Likewise.
7269         (gimple_return_retval_ptr): Remove gcc_assert.
7270         (gimple_return_retval): Likewise.
7271         (gimple_return_set_retval): Likewise.
7272         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
7273         (safe_referenced_var_iterator): Remove.
7274         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
7275         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
7276         (fill_referenced_var_vec): Remove.
7277         (first_readonly_imm_use): Remove redundant gcc_assert.
7278         (phi_arg_index_from_use): Combine gcc_asserts.
7279         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
7280         (first_imm_use_stmt): Remove redundant gcc_assert.
7281         * tree-cfg.c (verify_gimple_call): Verify function and chain
7282         operands.  Verify arguments.
7283         (verify_types_in_gimple_stmt): Verify condition code and labels.
7284
7285 2010-01-07  Richard Guenther  <rguenther@suse.de>
7286
7287         PR tree-optimization/42641
7288         * sese.c (rename_map_elt_info): Use the SSA name version, do
7289         not hash pointers.
7290
7291 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
7292
7293         PR tree-optimization/42625
7294         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
7295         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
7296
7297 2010-01-07  Duncan Sands  <baldrick@free.fr>
7298
7299         * Makefile.in (PLUGIN_HEADERS): Add version.h.
7300
7301 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
7302
7303         PR target/42511
7304         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
7305         note itself is not function_invariant_p.
7306
7307 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
7308
7309         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
7310         Do not add the DF_NOTE problem.
7311         * store-motion.c (execute_rtl_store_motion): Likewise.
7312
7313 2010-01-07  Martin Jambor  <mjambor@suse.cz>
7314
7315         PR tree-optimization/42157
7316         * tree-sra.c (compare_access_positions): Stabilize sort if both
7317         accesses have integer types, return zero immediately if they are the
7318         same.
7319
7320 2010-01-06  Richard Henderson  <rth@redhat.com>
7321
7322         PR middle-end/41883
7323         * haifa-sched.c (add_to_note_list): Merge into ...
7324         (concat_note_lists): ... here, and ...
7325         (unlink_other_notes, rm_other_notes): Merge into...
7326         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
7327         NOTE_INSN_EPILOGUE_BEG.
7328
7329 2010-01-06  Richard Guenther  <rguenther@suse.de>
7330
7331         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
7332         not inline regular functions into always-inline functions.
7333
7334 2010-01-06  Nick Clifton  <nickc@redhat.com>
7335
7336         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
7337         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
7338         used together.
7339         (OVERRIDE_OPTIONS): Delete.
7340         (OPTIMIZATION_OPTIONS): Define.
7341         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
7342         * config/rx/rx.c (rx_handle_option): Issue an error message if
7343         -mcpu=rx200 and -fpu are used together.
7344         (rx_set_optimization_options): New function.  Issue an error
7345         message if an optimization attribute attempts to reset the FPU/
7346         math optimization pairing.
7347         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
7348         * config/rx/rx.opt: Set the default to 32-bit doubles.
7349         * config/rx/t-rx: Add multilibs for -nofpu option.
7350         * doc/invoke.texi: Update documentation of RX options.
7351
7352 2010-01-06  Richard Guenther  <rguenther@suse.de>
7353
7354         * tree-ssa-pre.c (name_to_id): New global.
7355         (alloc_expression_id): Simplify SSA name handling.
7356         (lookup_expression_id): Likewise.
7357         (init_pre): Zero name_to_id.
7358         (fini_pre): Free it.
7359
7360 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
7361
7362         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
7363
7364 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
7365
7366         PR target/42542
7367         * config/i386/sse.md (smaxv2di3): New.
7368         (umaxv2di3): Likewise.
7369         (sminv2di3): Likewise.
7370         (uminv2di3): Likewise.
7371
7372 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7373
7374         PR target/42564
7375         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
7376         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
7377         (legitimize_tls_address): Likewise.
7378         (sparc_tls_referenced_p): Likewise.
7379         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
7380         and adjust calls to legitimize_pic_address.
7381         (legitimate_constant_p) Use sparc_tls_referenced_p.
7382         (legitimate_pic_operand_p): Likewise.
7383         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
7384         (sparc_tls_symbol_ref_1): Delete.
7385         (sparc_tls_referenced_p): Make static, recognize specific patterns.
7386         (legitimize_tls_address): Make static, handle CONST patterns.
7387         (legitimize_pic_address): Make static, remove unused parameter and
7388         adjust recursive calls.
7389         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
7390         and adjust call to legitimize_pic_address.
7391         (sparc_output_mi_thunk): Likewise.
7392
7393 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
7394             H.J. Lu  <hongjiu.lu@intel.com>
7395
7396         PR target/42542
7397         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
7398         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
7399         operands to make them signed.
7400
7401         Revert:
7402         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7403
7404         PR target/42542
7405         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
7406         GTU to GT for V4SI and V2DI.
7407
7408         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
7409         (umin<mode>3): Removed.
7410         (uminv8hi3): New.
7411         (uminv4si3): Likewise.
7412
7413 2010-01-05  Martin Jambor  <mjambor@suse.cz>
7414
7415         PR tree-optimization/42462
7416         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
7417         current_function_decl to helper functions and macros.
7418
7419 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7420
7421         PR bootstrap/41771
7422         * flags.h: Don't include real.h.
7423         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
7424         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
7425         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
7426         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
7427         * dominance.c: Update copyright.
7428         * gimple.c (walk_gimple_op): Remove inline.
7429         * tree-ssa-reassoc.c: Include real.h.
7430         * Makefile.in (FLAGS_H): Remove $(REAL_H).
7431         (tree-ssa-reassoc.o): Depend on $(REAL_H).
7432
7433 2010-01-05  Nick Clifton  <nickc@redhat.com>
7434
7435         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
7436         register to push into the stack frame when the accumulator has to
7437         be saved during interrupts.
7438
7439 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
7440
7441         * doc/invoke.texi: Remove the documentation about option
7442         -Wunreachable-code.
7443         * common.opt (Wunreachable-code):  Preserved for backward
7444         compatibility.
7445         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
7446         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
7447         the backward compatibility flag section.
7448
7449 2010-01-05  Richard Guenther  <rguenther@suse.de>
7450
7451         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
7452
7453 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
7454
7455         PR other/42611
7456         * cfgexpand.c (expand_one_var): Diagnose too large variables.
7457
7458         PR tree-optimization/42508
7459         * tree-sra.c (convert_callers): Check for recursive call
7460         by comparing cgraph nodes instead of decls.
7461         (modify_function): Call ipa_modify_formal_parameters also
7462         on all same_body aliases.
7463
7464         * cgraphunit.c (cgraph_materialize_all_clones): Compare
7465         cgraph nodes when checking for same_body aliases.
7466
7467 2010-01-05  Richard Guenther  <rguenther@suse.de>
7468
7469         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
7470         allocation and lookup.
7471         (get_or_alloc_expr_for_constant): Likewise.
7472         (phi_translate): Sink allocation.
7473
7474 2010-01-04  Richard Guenther  <rguenther@suse.de>
7475
7476         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
7477         a new entry only if needed.
7478         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
7479         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
7480         hashtable lookup.
7481         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
7482         the result array.
7483         (phi_translate): Handle CONSTANTs early.
7484
7485 2010-01-04  Martin Jambor  <mjambor@suse.cz>
7486
7487         PR tree-optimization/42398
7488         * tree-sra.c (struct access): Removed flag grp_different_types.
7489         (dump_access): Do not dump the removed flag.
7490         (sort_and_splice_var_accesses): Do not set the removed flag.
7491         (sra_modify_expr): Check for type compatibility directly.
7492
7493 2010-01-04  Martin Jambor  <mjambor@suse.cz>
7494
7495         PR tree-optimization/42366
7496         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
7497         edges with variable number of parameters.
7498         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
7499         flag instead of asserting it.
7500         (ipa_read_node_info): Read uses_analysis_done flag.
7501
7502 2010-01-04  Richard Guenther  <rguenther@suse.de>
7503
7504         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
7505         iterative_hash_* as intended.
7506         (vn_reference_compute_hash): Likewise.  Simplify hashing
7507         SSA names.
7508         (vn_reference_lookup_2): Likewise.
7509         (vn_nary_op_compute_hash): Likewise.
7510         (vn_phi_compute_hash): Likewise.
7511         (expressions_equal_p): Remove strange code.
7512         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
7513         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
7514         (bitmap_insert_into_set_1): Take value-id as parameter.
7515         (add_to_value): Pass it.
7516         (bitmap_insert_into_set): Likewise.
7517         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
7518
7519 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
7520
7521         PR driver/42442
7522         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
7523         (do_self_spec): For switches with SWITCH_IGNORE set set also
7524         SWITCH_IGNORE_PERMANENTLY.
7525         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
7526         of SWITCH_IGNORE.
7527
7528 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
7529
7530         * lto-streamer-out.c (output_unreferenced_globals): Output the full
7531         tree of an unreferenced global var.
7532
7533 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7534
7535         PR target/42542
7536         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
7537         GTU to GT for V4SI and V2DI.
7538
7539         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
7540         (umin<mode>3): Removed.
7541         (uminv8hi3): New.
7542         (uminv4si3): Likewise.
7543
7544 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
7545
7546         PR lto/42581
7547         * collect2.c (main): Turn on trace in collect2 if -v is passed
7548         to gcc with LTO.
7549
7550 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
7551
7552         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
7553         description of expression operand.
7554
7555 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
7556
7557         * configure.ac: Add install-html to target_list for Make-hooks.
7558         * configure: Regenerate.
7559         * fortran/Make-lang.in (F95_HTMLFILES): New.
7560         (fortran.html): Use it.
7561         (fortran.install-html): New.
7562         * Makefile.in (install-html): Add lang.install-html.
7563         * java/Make-lang.in (JAVA_HTMLFILES): New.
7564         (java.html): Use it.
7565         (java.install-html): New.
7566         * objc/Make-lang.in (objc.install-html): New.
7567         * objcp/Make-lang.in (obj-c++.install-html): New.
7568         * cp/Make-lang.in (c++.install-html): New.
7569         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
7570         * lto/Make-lang.in (lto.install-html): New.
7571
7572 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
7573
7574         PR lto/42520
7575         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
7576
7577 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
7578
7579         PR rtl-optimization/41862
7580         * store-motion.c (store_killed_in_insn, compute_store_table,
7581         remove_reachable_equiv_notes, replace_store_insn,
7582         build_store_vectors): Ignore all DEBUG_INSNs.
7583
7584 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
7585
7586         PR lto/41564
7587         * common.opt: Add dumpdir.
7588
7589         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
7590         isn't specified.
7591         (option_map): Add --dumpdir.
7592
7593         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
7594
7595         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
7596
7597         * opts.c (decode_options): Try dump_dir_name first if
7598         dump_base_name isn't an absolute path.
7599         (common_handle_option): Handle OPT_dumpdir.
7600
7601         * toplev.c (dump_dir_name): New.
7602         (print_switch_values): Also ignore -dumpdir.
7603
7604         * toplev.h (dump_dir_name): New.
7605
7606 2010-01-03  Richard Guenther  <rguenther@suse.de>
7607
7608         PR tree-optimization/42589
7609         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
7610         double-word expansion of bswap32.
7611
7612 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
7613
7614         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
7615         with BLOCK_FOR_INSN.
7616         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
7617         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
7618         noce_process_if_block): Likewise.
7619         * gcse.c (compute_local_properties, insert_expr_in_table,
7620         insert_set_in_table, canon_list_insert, find_avail_set,
7621         pre_insert_copy_insn): Likewise.
7622
7623         * basic-block.h (BLOCK_NUM): Move from here...
7624         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
7625
7626 2010-01-03  Richard Guenther  <rguenther@suse.de>
7627
7628         PR tree-optimization/42438
7629         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
7630         contains_may_not_return_call flag.
7631         (BB_MAY_NOTRETURN): New.
7632         (valid_in_sets): Trapping nary operations are not valid
7633         in blocks that may not return.
7634         (insert_into_preds_of_block): Remove check for trapping expressions.
7635         (compute_avail): Compute also BB_MAY_NOTRETURN.
7636
7637 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
7638
7639         * doc/invoke.texi: Add 2010 to copyright years.
7640
7641 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
7642
7643         * config/sparc/sparc.c: Fix formatting nits.
7644
7645 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
7646             Alexander Monakov  <amonakov@ispras.ru>
7647
7648         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
7649
7650 2010-01-02  Richard Guenther  <rguenther@suse.de>
7651
7652         PR middle-end/42577
7653         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
7654         (simplify_switch_using_ranges): Mark to be removed edges
7655         as non-executable.
7656
7657 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7658
7659         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
7660
7661         * collect2.c (scan_libraries): Add missing argument in call to
7662         scan_prog_file.
7663
7664 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
7665
7666         PR target/42448
7667         * config/alpha/predicates.md (aligned_memory_operand): Return false
7668         for CQImode.
7669         (unaligned_memory_operand): Return true for CQImode.
7670         * config/alpha/alpha.c (get_aligned_mem): Assert that location
7671         doesn not cross aligned SImode word boundary.
7672
7673 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
7674
7675         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
7676         Remove.
7677         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
7678         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
7679
7680 2010-01-02  Richard Guenther  <rguenther@suse.de>
7681
7682         PR lto/41597
7683         * toplev.c (compile_file): Emit LTO marker properly.  Change
7684         it to __gnu_lto_v1.
7685         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
7686
7687 2010-01-01  Richard Guenther  <rguenther@suse.de>
7688
7689         PR debug/42455
7690         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
7691
7692 2010-01-01  Richard Guenther  <rguenther@suse.de>
7693
7694         PR c/42570
7695         * c-decl.c (grokdeclarator): For zero-size arrays force
7696         structural equality checks as layout_type does.
7697
7698 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
7699
7700         * builtins.c: Update copyright to 2010.
7701
7702 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
7703
7704         PR lto/42531
7705         * lto-streamer-out.c (produce_asm): Revert the last change.
7706         (copy_function): Likewise.
7707
7708         * lto-streamer.c (lto_get_section_name): Skip any leading
7709         asterisk in name.
7710
7711 2010-01-01  Richard Guenther  <rguenther@suse.de>
7712
7713         PR middle-end/42559
7714         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
7715         for LABEL_DECLs.
7716
7717 \f
7718 Copyright (C) 2010 Free Software Foundation, Inc.
7719
7720 Copying and distribution of this file, with or without modification,
7721 are permitted in any medium without royalty provided the copyright
7722 notice and this notice are preserved.