OSDN Git Service

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