OSDN Git Service

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