OSDN Git Service

2011-08-17 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-17  Richard Guenther  <rguenther@suse.de>
2
3         * tree.h (convert_to_ptrofftype_loc): New function.
4         (convert_to_ptrofftype): Define.
5         * builtins.c (expand_builtin_bzero): Use size_type_node.
6         (fold_builtin_bzero): Likewise.
7         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
8         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
9         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
10         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
11         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
12         * fold-const.c (build_range_check): Negate using the original
13         type.
14         (fold_unary_loc): Use fold_build_pointer_plus_loc.
15         * gimple-fold.c (gimple_adjust_this_by_delta): Use
16         convert_to_ptrofftype.
17         * gimplify.c (gimplify_self_mod_expr): Likewise.
18         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
19         (graphite_create_new_loop_guard): Likewise.
20         * graphite-sese-to-poly.c (my_long_long): Remove.
21         (scop_ivs_can_be_represented): Adjust.
22         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
23         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
24         * tree-loop-distribution.c (build_size_arg_loc): Use
25         size_type_node.
26         (generate_memset_zero): Simplify.
27         * tree-mudflap.c: Use fold_convert, not convert.
28         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
29         its own type.
30         (determine_offset): Likewise for DR_STEP.
31         (valid_initializer_p): Likewise.
32         * tree-profile.c (prepare_instrumented_value): Convert the pointer
33         to an integer type of same size.
34         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
35         to sizetype without need.
36         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
37         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
38         * tree-ssa-loop-manip.c (create_iv): Likewise.
39         (determine_exit_conditions): Adjust comment.
40         * tree-ssa-pre.c (create_expression_by_pieces): Use
41         convert_to_ptrofftype.
42         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
43         * varasm.c (array_size_for_constructor): Compute using double_ints.
44
45 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
46
47         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
48         when generating an integer result where possible.  Short-cut
49         comparison against 0 also for QImode.
50
51 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
52
53         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
54         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
55         prototype.
56         * config/spu/spu.c (spu_legitimize_reload_address): New function.
57         (spu_legitimate_address_p): Do not check displacement if the base
58         is an eliminable stack register.
59
60 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
61
62         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
63         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
64         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
65         m32c_preferred_output_reload_class): Remove.
66         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
67         Change rclass argument and return types to reg_class_t. Use
68         reg_class_subset_p instead of class_sizes.
69         (m32c_preferred_output_reload_class): Make static. Change rclass
70         argument and return types to reg_class_t.
71         (TARGET_PREFERRED_RELOAD_CLASS,
72         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
73
74 2011-08-16  Kai Tietz  <ktietz@redhat.com>
75
76         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
77
78 2011-08-16  Richard GUenther  <rguenther@suse.de>
79
80         PR tree-optimization/50082
81         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
82         warnings here, instead of ...
83         (ssa_forward_propagate_and_combine): ... here.
84         (forward_propagate_into_comparison_1): Adjust.
85         (forward_propagate_into_comparison): Likewise.
86         (forward_propagate_into_gimple_cond): Likewise.
87         (forward_propagate_into_cond): Likewise.
88
89 2011-08-16  Andreas Schwab  <schwab@redhat.com>
90
91         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
92         instead of ggc_alloc_zone_vec_rtvec_def.
93
94 2011-08-16  Richard Guenther  <rguenther@suse.de>
95
96         * tree.h (ptrofftype_p): New helper function.
97         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
98         offset verification.
99         (verify_gimple_assign_binary): Likewise.
100         * tree.c (build2_stat): Likewise.
101         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
102         (reset_evolution_in_loop): Likewise.
103         * tree-chrec.h (build_polynomial_chrec): Likewise.
104
105 2011-08-16  Liang Wang  <lwang1@marvell.com>
106
107         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
108         ggc_alloc_zone_vec_rtvec_def.
109
110 2011-08-16  Richard Guenther  <rguenther@suse.de>
111
112         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
113         helper factored out from ...
114         (extract_range_from_binary_expr_1): ... here.  Re-structure
115         to not glob handling too different tree codes.
116
117 2011-08-15  Richard Henderson  <rth@redhat.com>
118
119         PR middle-end/50006
120         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
121         setting out to include allocate_stack named pattern as well.
122         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
123         * stmt.c (expand_stack_restore): Likewise.
124
125 2011-08-15  Richard Guenther  <rguenther@suse.de>
126
127         PR middle-end/50082
128         * fold-const.c (maybe_canonicalize_comparison_1): Properly
129         convert the modified operand to the other operand type.
130         (fold_comparison): Call maybe_canonicalize_comparison_1 with
131         useless conversions stripped from comparison operands.
132
133 2011-08-15  Richard Guenther  <rguenther@suse.de>
134
135         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
136         (extract_range_from_unary_expr_1): Restructure.
137
138 2011-08-15  Richard Guenther  <rguenther@suse.de>
139
140         PR tree-optimization/50058
141         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
142         copy matching.
143
144 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
145
146         PR target/50022
147         * config/arm/arm.c (output_move_double): Add 2 parameters
148         to count the number of insns emitted and whether to emit or not.
149         Use the flag to decide when to emit and count number of instructions
150         that will be emitted.
151         Handle case where output_move_double might be called for calculating
152         lengths with an invalid constant.
153         (arm_count_output_move_double_insns): Define.
154         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
155         (output_move_double): Adjust prototype.
156         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
157         output_move_double.
158         ("*movdi_vfp_cortexa8"): Likewise and add attribute
159         for ce_count.
160         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
161         ("*movdf_soft_insn"): Likewise.
162         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
163         ("*cirrus_thumb2_movdi"): Likewise.
164         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
165         ("*cirrus_movdf_hard_insn"): Likewise.
166         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
167         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
168         ("mov<mode>_internal VMMX"): Likewise.
169         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
170
171 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
172
173         * config/i386/i386.c (ix86_expand_round_sse4): New function.
174         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
175         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
176         for TARGET_ROUND.
177
178         (rint<mode>2): Simplify TARGET_ROUND check.
179         (floor<mode>2): Ditto.
180         (ceil<mode>2): Ditto.
181         (btrunc<mode>2): Ditto.
182
183 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
184
185         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
186         as mmix_preferred_output_reload_class.
187
188 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
189
190         * PR target/49903
191         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
192         (branch_unspec): New insn.
193         (branch): Beauty farm.
194         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
195         to be IF_THEN_ELSE.
196         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
197         New static functions.
198         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
199         Use CONST_INT_P.  Beauty.
200
201 2011-08-12  Richard Henderson  <rth@redhat.com>
202
203         PR rtl-opt/49994
204         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
205         * sched-deps.c (init_deps): Clear it.
206         (deps_analyze_insn): Consume it.
207         (sched_analyze_insn): Fill it.
208
209 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
210
211         PR target/48328
212         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
213         for tbh instructions.
214
215 2011-08-12   Diego Novillo  <dnovillo@google.com>
216
217         * data-streamer.h (streamer_write_zero): Rename from output_zero.
218         (streamer_write_uhwi): Rename from lto_output_uleb128.
219         (streamer_write_hwi): Rename from output_sleb128.
220         (streamer_write_string): Rename from lto_output_string.
221         (streamer_string_index): Rename from lto_string_index.
222         (streamer_write_string_with_length): Rename from
223         lto_output_string_with_length.
224         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
225         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
226         (streamer_read_string): Rename from lto_input_string.
227         (streamer_read_indexed_string): Rename from input_string_internal.
228         (streamer_read_uhwi): Rename from lto_input_uleb128.
229         (streamer_read_hwi): Rename from lto_input_sleb128.
230         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
231         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
232         (streamer_write_enum): Rename from lto_output_enum.
233         (streamer_read_enum): Rename from lto_input_enum.
234         (streamer_write_record_start): Rename from output_record_start.
235         (streamer_read_record_start): Rename from input_record_start.
236         (streamer_write_bitpack): Rename from lto_output_bitpack.
237         (streamer_read_bitpack): Rename from lto_input_bitpack.
238         (streamer_write_char_stream): Rename from lto_output_1_stream.
239         (streamer_read_uchar): Rename from lto_input_1_unsigned.
240         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
241         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
242         (streamer_read_string_cst): Rename from input_string_cst.
243         (streamer_read_chain): Rename from lto_input_chain.
244         (streamer_alloc_tree): Rename from lto_materialize_tree.
245         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
246         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
247         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
248         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
249         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
250         (streamer_write_chain): Rename from lto_output_chain.
251         (streamer_write_tree_header): Rename from lto_output_tree_header.
252         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
253         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
254         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
255         (streamer_write_builtin): Rename from lto_output_builtin_tree.
256         (streamer_check_handled_ts_structures): Rename from
257         check_handled_ts_structures.
258         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
259         (streamer_tree_cache_insert_at): Rename from
260         lto_streamer_cache_insert_at.
261         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
262         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
263         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
264         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
265         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
266         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
267         (write_identifier): Rename from output_identifier.
268         (write_ts_common_tree_pointers): Rename from
269         lto_output_ts_common_tree_pointers.
270         (write_ts_vector_tree_pointers): Rename from
271         lto_output_ts_vector_tree_pointers.
272         (write_ts_complex_tree_pointers): Rename from
273         lto_output_ts_complex_tree_pointers.
274         (write_ts_decl_minimal_tree_pointers): Rename from
275         lto_output_ts_decl_minimal_tree_pointers.
276         (write_ts_decl_common_tree_pointers): Rename from
277         lto_output_ts_decl_common_tree_pointers.
278         (write_ts_decl_non_common_tree_pointers): Rename from
279         lto_output_ts_decl_non_common_tree_pointers.
280         (write_ts_decl_with_vis_tree_pointers): Rename from
281         lto_output_ts_decl_with_vis_tree_pointers.
282         (write_ts_field_decl_tree_pointers): Rename from
283         lto_output_ts_field_decl_tree_pointers.
284         (write_ts_function_decl_tree_pointers): Rename from
285         lto_output_ts_function_decl_tree_pointers.
286         (write_ts_type_common_tree_pointers): Rename from
287         lto_output_ts_type_common_tree_pointers.
288         (write_ts_type_non_common_tree_pointers): Rename from
289         lto_output_ts_type_non_common_tree_pointers.
290         (write_ts_list_tree_pointers): Rename from
291         lto_output_ts_list_tree_pointers.
292         (write_ts_vec_tree_pointers): Rename from
293         lto_output_ts_vec_tree_pointers.
294         (write_ts_exp_tree_pointers): Rename from
295         lto_output_ts_exp_tree_pointers.
296         (write_ts_block_tree_pointers): Rename from
297         lto_output_ts_block_tree_pointers.
298         (write_ts_binfo_tree_pointers): Rename from
299         lto_output_ts_binfo_tree_pointers.
300         (write_ts_constructor_tree_pointers): Rename from
301         lto_output_ts_constructor_tree_pointers.
302         (write_ts_target_option): Rename from lto_output_ts_target_option.
303         (write_ts_translation_unit_decl_tree_pointers): Rename from
304         lto_output_ts_translation_unit_decl_tree_pointers.
305         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
306         Rename from lto_streamer_cache_add_to_node_array.
307         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
308         (record_common_node): Rename from lto_record_common_node.
309
310         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
311         declarations.
312         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
313         function.
314         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
315         unused function.
316         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
317         (ipa-reference.o): Likewise.
318         * lto-section-out.c: Include data-streamer.h.
319         * ipa-reference.c: Include data-streamer.h.
320
321 2011-08-12  Nick Clifton  <nickc@redhat.com>
322
323         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
324         * doc/md.texi (cmpstrn): Note that the comparison stops if both
325         fetched bytes are zero.
326         (cmpstr): Likewise.
327         (cmpmem): Note that the comparison does not stop if both of the
328         fetched bytes are zero.
329
330 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
331
332         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
333         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
334         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
335         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
336         to integer_type_node.
337         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
338         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
339         * builtins.c (expand_builtin_in): Ditto.
340         (mathfn_built_in_1): Ditto.
341         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
342         BUILT_IN_IFLOOR.
343         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
344         BUILT_IN_IROUND.
345         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
346         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
347         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
348
349 2011-08-12  Richard Guenther  <rguenther@suse.de>
350
351         * tree-vrp.c (extract_range_from_unary_expr_1): Implement
352         -X as 0 - X.
353
354 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
355
356         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
357
358 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
359
360         * config/arm/arm.c (get_label_padding): New function.
361         (create_fix_barrier, arm_reorg): Use it.
362
363 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
364
365         PR target/49781
366         * config/i386/i386.md (*lea_5_zext): New.
367         (*lea_6_zext): Ditto.
368         * config/i386/predicates.md (const_32bit_mask): New predicate.
369         (lea_address_operand): Reject AND.
370         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
371         const_32bit_mask immediate.
372         (ix86_print_operand_address): Handle AND.
373         (memory_address_length): Ditto.
374
375 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
376             Brian Hackett  <bhackett1024@gmail.com>
377
378         * plugin.def: Add event for finish_decl.
379         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
380         * c-decl.c (finish_decl): Invoke callbacks on above event.
381         * doc/plugins.texi: Document above event.
382
383 2011-08-11  Richard Guenther  <rguenther@suse.de>
384
385         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
386         lookups, make looking through aggregate copies stronger.
387
388 2011-08-11  Richard Henderson  <rth@redhat.com>
389
390         PR bootstrap/50018
391         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
392
393 2011-08-11  Richard Guenther  <rguenther@suse.de>
394
395         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
396         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
397         (vrp_visit_stmt): Likewise.
398
399 2011-08-11  Richard Guenther  <rguenther@suse.de>
400
401         PR middle-end/50040
402         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
403         load of the other piece with TREE_NO_WARNING.
404         * tree-flow.h (warn_uninit): Adjust prototype.
405         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
406         the base variable and the expression that is used separately.
407         Properly query all TREE_NO_WARNING flags.
408         (struct walk_data): Remove.
409         (warn_uninitialized_var): Likewise.
410         (warn_uninitialized_vars): Do not walk gimple pieces but simply
411         look at all SSA uses of the statement.  Handle unused memory
412         separately.
413         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
414
415 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
416
417         * config/rx/rx.md (movsicc): Allow register to register transfers.
418         (*movsicc): Likewise.
419         (*stcc): Restrict this pattern to EQ and NE compares.
420         (*stcc_reg): New pattern.  Works for any comparison but only for
421         register transfers.
422
423 2011-08-11   Diego Novillo  <dnovillo@google.com>
424
425         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
426         Call stream_write_tree instead of output_record_start.
427         (lto_output_ts_binfo_tree_pointers): Likewise.
428
429         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
430         Convert it to a macro.
431         (stream_read_tree): Likewise.
432
433         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
434         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
435
436         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
437         and tree_read_bitfields.
438         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
439         (lto_write_tree): Call it.
440         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
441         * streamer-hooks.h (struct streamer_hooks): Remove fields
442         name, is_streamable and alloc_tree. Update all users.
443         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
444         (lto_materialize_tree): ... here.
445         Handle CALL_EXPR codes.
446         Remove call to lto_streamer_cache_append.
447         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
448         * tree-streamer.h (tree_read_bitfields): Declare.
449
450         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
451         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
452         * tree-streamer.h (stream_read_tree): New.  Replace all calls
453         to lto_input_tree with it.
454         (stream_write_tree): New.  Replace all calls to lto_output_tree,
455         lto_output_tree_ref and lto_output_tree_or_ref with it.
456         * lto-streamer-in.c (lto_read_tree): Inline code from
457         lto_streamer_read_tree.
458         (lto_input_tree): Move from tree-streamer-in.c.
459         * lto-streamer-out.c (lto_output_tree_ref): Make static.
460         Remove handling of NULL values for EXPR.
461         Do not handle EXPRs that are not indexable.
462         (lto_write_tree): Move from tree-streamer-out.c.
463         Inline lto_streamer_write_tree.
464         (lto_output_tree): Move from tree-streamer-out.c.
465         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
466         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
467         (lto_preload_common_nodes): Likewise.
468         Remove assertions and adjustments for nodes
469         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
470         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
471         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
472         * lto-streamer.h (lto_input_tree): Declare.
473         (lto_output_tree_ref): Remove.
474         * streamer-hooks.h (struct streamer_hooks): Remove fields
475         preload_common_nodes, indexable_with_decls_p,
476         pack_value_fields, unpack_value_fields and output_tree_header.
477         Update all users.
478         * tree-streamer-in.c (lto_materialize_tree): Make extern.
479         (lto_input_tree_pointers): Likewise.
480         (lto_read_tree): Move to lto-streamer-in.c.
481         (lto_input_integer_cst): Make extern.
482         (lto_get_pickled_tree): Likewise.
483         (lto_get_builtin_tree): Likewise.
484         (lto_input_tree): Move to lto-streamer-in.c.
485         * tree-streamer-out.c (pack_value_fields): Make extern.
486         (lto_output_tree_or_ref): Remove.  Replace all callers with
487         calls to stream_write_tree.
488         (lto_output_builtin_tree): Make extern.
489         (lto_streamer_write_tree): Inline into lto_write_tree.
490         (lto_output_tree_pointers): Make extern.
491         (lto_output_tree_header): Likewise.
492         (lto_output_integer_cst): Likewise.
493         (lto_write_tree): Move to lto-streamer-out.c.
494         (lto_output_tree): Likewise.
495         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
496         (preload_common_nodes): Likewise.
497         (lto_streamer_cache_create): Call it.
498         * tree-streamer.h: Include streamer-hooks.h.
499         (stream_write_tree): New.
500         (stream_read_tree): New.
501         (lto_input_tree): Remove.
502         (lto_materialize_tree): Declare.
503         (lto_input_tree_pointers): Declare.
504         (lto_get_pickled_tree): Declare.
505         (lto_get_builtin_tree): Declare.
506         (lto_input_integer_cst): Declare.
507         (lto_output_tree_header): Declare.
508         (pack_value_fields): Declare.
509         (lto_output_tree_pointers): Declare.
510         (lto_output_integer_cst): Declare.
511         (lto_output_builtin_tree): Declare.
512
513 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
514
515         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
516         only if producer writes to the register given by regno.
517
518 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
519             Alexander Monakov  <amonakov@ispras.ru>
520
521         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
522         (sched_get_condition_with_rev_uncached): ... this.  Factor out
523         condition caching logic into ...
524         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
525         attempt to use cache for instructions with zero luid.
526         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
527         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
528
529 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
530
531         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
532         get_seqno_for_a_jump.  Update the caller.
533         (get_seqno_by_succs): New.  Use it ...
534         (get_seqno_for_a_jump): ... here to find a seqno if looking at
535         predecessors was not sufficient.
536         (get_seqno_by_preds): Include head in iteration range, exclude insn.
537
538 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
539
540         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
541
542 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
543
544         * sel-sched-ir.h (register_unavailable_p): Declare.
545         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
546         (set_unavailable_target_for_expr): ... here to properly test
547         availability of a register.
548         (speculate_expr): Ditto.
549         * sel-sched.c (substitute_reg_in_expr): Ditto.
550         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
551
552 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
553
554         * sel-sched.c (verify_target_availability): Fix usage of
555         hard_regno_nregs.
556
557 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
558
559         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
560         recognized by cannot_copy_insn_p hook and volatile instructions.
561
562 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
563
564         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
565
566 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
567
568         * doc/md.texi (define_bypass): Say that the instruction names can
569         be filename-style globs.
570         * Makefile.in (FNMATCH_H): Define.
571         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
572         * genattrtab.c: Include fnmatch.h.
573         (bypass_list): Change field name from "insn" to "pattern".
574         (gen_bypass_1): Update accordingly.
575         (process_bypasses): Use fnmatch to check for matches between
576         insn reservations and define_bypasses.
577         * genautomata.c: Include fnmatch.h.
578         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
579         and out_pattern respectively.
580         (gen_bypass, insert_bypass): Update accordingly.
581         (for_each_matching_insn, process_bypass_2, process_bypass_1)
582         (process_bypass): New functions.
583         (process_decls): Use process_bypass.  Update after field name changes.
584
585 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
586
587         PR target/49687
588         * config/avr/avr.md (smulqi3_highpart): New insn.
589         (umulqi3_highpart): New insn.
590         (*subqi3.ashiftrt7): New insn.
591         (smulhi3_highpart): New expander.
592         (umulhi3_highpart): Nex expander.
593         (*smulhi3_highpart_call): New insn.
594         (*umulhi3_highpart_call): New insn.
595         (extend_u): New code attribute.
596         (extend_prefix): Rename code attribute to extend_su.
597         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
598         widening QI/HI multiply.
599
600 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
601
602         PR tree-optimization/50039
603         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
604         that DEF_STMT has a stmt_vec_info.
605
606 2011-08-10  Richard Guenther  <rguenther@suse.de>
607
608         * tree.h (can_trust_pointer_alignment): Remove.
609         * builtins.c (can_trust_pointer_alignment): Remove.
610
611 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
612
613         * c-typeck.c (scalar_to_vector): New function. Try scalar to
614         vector conversion.
615         (stv_conv): New enum for scalar_to_vector return type.
616         (build_binary_op): Adjust.
617         * doc/extend.texi: Description of scalar to vector expansion.
618
619 2011-08-10  Richard Guenther  <rguenther@suse.de>
620
621         * tree.h (get_pointer_alignment): Remove max-align argument.
622         (get_object_alignment): Likewise.
623         * builtins.c (get_object_alignment_1): Adjust.
624         (get_object_alignment): Remove max-align argument.
625         (get_pointer_alignment): Likewise.
626         (expand_builtin_strlen): Adjust.
627         (expand_builtin_memcpy): Likewise.
628         (expand_builtin_mempcpy_args): Likewise.
629         (expand_builtin_strncpy): Likewise.
630         (expand_builtin_memset_args): Likewise.
631         (expand_builtin_memcmp): Likewise.
632         (expand_builtin_strcmp): Likewise.
633         (expand_builtin_strncmp): Likewise.
634         (get_builtin_sync_mem): Likewise.
635         (fold_builtin_memset): Likewise.
636         (fold_builtin_memory_op): Likewise.
637         (expand_builtin_memory_chk): Likewise.
638         * emit-rtl.c (get_mem_align_offset): Likewise.
639         (set_mem_attributes_minus_bitpos): Likewise.
640         * expr.c (expand_assignment): Likewise.
641         (expand_expr_real_1): Likewise.
642         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
643         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
644         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
645         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
646         * value-prof.c (gimple_stringops_transform): Likewise.
647
648 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
649
650         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
651         * doc/tm.texi: Regenerate.
652
653 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
654
655         PR target/29560
656         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
657         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
658         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
659         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
660         shift target is unused.
661
662 2011-08-10  Richard Guenther  <rguenther@suse.de>
663
664         PR tree-optimization/49937
665         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
666         using get_object_alignment_1.
667
668 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
669
670         * config/i386/i386.c (ix86_emit_i387_round): New function.
671         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
672         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
673         Use ix86_emit_i387_round to expand round function for i387 math.
674         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
675         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
676
677 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
678
679         * config/sync.c: Move to ../libgcc.
680         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
681         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
682         Remove.
683
684 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
685
686         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
687         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
688         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
689         Change 'from' and 'to' arguments type to reg_class_t.
690         (TARGET_REGISTER_MOVE_COST): Define.
691
692 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
693
694         PR target/50026
695         Revert:
696         PR rtl-optimization/49990
697         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
698         ignore classes which can not change mode.
699         (find_costs_and_classes): Ditto.
700
701 2011-08-09  Richard Guenther  <rguenther@suse.de>
702
703         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
704         information for ranges with only negative values.
705         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
706         BIT_AND_EXPR handling to handle ranges with negative values.
707
708 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
709
710         * config/i386/i386.c: Remove traling spaces.
711         * config/i386/sse.md: Likewise.
712         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
713         (*fma_fmsub_<mode>): Likewise.
714         (*fma_fnmadd_<mode>): Likewise.
715         (*fma_fnmsub_<mode>): Likewise.
716
717 2011-08-09  Nick Clifton  <nickc@redhat.com>
718
719         * config/rx/rx.md: Disable extender peepholes at -O3.
720
721 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
722
723         PR target/49781
724         * config/i386/i386.md (reload_noff_load): New.
725         (reload_noff_store): Ditto.
726         * config/i386/i386.c (ix86_secondary_reload): Use
727         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
728         double-word moves from/to non-offsetable addresses instead of
729         generating XMM temporary.
730
731 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
732
733         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
734
735 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
736
737         PR tree-optimization/50014
738         * tree-vect-loop.c (vectorizable_reduction): Get def type before
739         calling vect_get_vec_def_for_stmt_copy ().
740
741 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
742
743         PR rtl-optimization/49990
744         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
745         ignore classes which can not change mode.
746         (find_costs_and_classes): Ditto.
747
748 2011-08-08  Richard Henderson  <rth@redhat.com>
749
750         PR middle-end/49990
751         * config/i386/i386.c (ix86_expand_prologue): Call
752         for SEH target gen_prologue_use instead of gen_blockage
753         at prologue's end.
754
755 2011-08-08  Martin Jambor  <mjambor@suse.cz>
756
757         PR middle-end/49923
758         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
759         memory alignment.
760
761 2011-08-08   Diego Novillo  <dnovillo@google.com>
762
763         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
764         (DATA_STREAMER_H): New.
765         (GIMPLE_STREAMER_H): New.
766         (TREE_STREAMER_H): New.
767         (STREAMER_HOOKS_H): New.
768         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
769         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
770         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
771         (data-streamer.o): New.
772         (data-streamer-in.o): New.
773         (data-streamer-out.o): New.
774         (gimple-streamer-in.o): New.
775         (gimple-streamer-out.o): New.
776         (streamer-hooks.o): New.
777         (tree-streamer.o): New.
778         (tree-streamer-in.o): New.
779         (tree-streamer-out.o): New.
780         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
781         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
782         GIMPLE_STREAMER_H and TREE_STREAMER_H.
783         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
784         GIMPLE_STREAMER_H and TREE_STREAMER_H.
785         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
786         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
787         (ipa-inline-analysis.o): Likewise.
788         (ipa-pure-const.o): Likewise.
789         * data-streamer-in.c: New.
790         * data-streamer-out.c: New.
791         * data-streamer.c: New.
792         * data-streamer.h: New.
793         * gimple-streamer-in.c: New.
794         * gimple-streamer-out.c: New.
795         * gimple-streamer.h: New.
796         * ipa-inline-analysis.c: Include data-streamer.h.
797         * ipa-prop.c: Include data-streamer.h.
798         * ipa-pure-const.c: Include data-streamer.h.
799         * lto-cgraph.c: Include data-streamer.h.
800         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
801         (lto_input_widest_uint_uleb128): Likewise.
802         (lto_input_sleb128): Likewise.
803         (bp_unpack_var_len_unsigned): Likewise.
804         (bp_unpack_var_len_int): Likewise.
805         * lto-section-out.c (lto_output_uleb128_stream): Move to
806         data-streamer-out.c.
807         (lto_output_widest_uint_uleb128_stream): Likewise.
808         (lto_output_sleb128_stream): Likewise.
809         (bp_pack_var_len_unsigned): Likewise.
810         (bp_pack_var_len_int): Likewise.
811         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
812         (struct string_slot): Remove.  Update all users.
813         (lto_tag_check_set): Make extern.
814         (lto_tag_check_range): Move to lto-streamer.h.
815         (lto_tag_check): Likewise.
816         (hash_string_slot_node): Remove.  Update all users.
817         (eq_string_slot_node): Remove.  Update all users.
818         (string_for_index): Move to data-streamer-in.c
819         (input_string_internal): Likewise.
820         (input_string_cst): Move to tree-streamer-in.c.
821         (input_identifier): Likewise.
822         (lto_input_string): Move to data-streamer-in.c
823         (input_record_start): Move to data-streamer.h
824         (canon_file_name): Use new definition of struct string_slot
825         from data-streamer.h.  Set S_SLOT.LEN.
826         (lto_input_location): Make extern.
827         (lto_input_chain): Move to tree-streamer-in.c.
828         (lto_init_eh): Make extern.
829         (input_phi): Move to gimple-streamer-in.c.
830         (input_gimple_stmt): Likewise.
831         (input_bb): Likewise.
832         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
833         (unpack_ts_real_cst_value_fields): Likewise.
834         (unpack_ts_fixed_cst_value_fields): Likewise.
835         (unpack_ts_decl_common_value_fields): Likewise.
836         (unpack_ts_decl_wrtl_value_fields): Likewise.
837         (unpack_ts_decl_with_vis_value_fields): Likewise.
838         (unpack_ts_function_decl_value_fields): Likewise.
839         (unpack_ts_type_common_value_fields): Likewise.
840         (unpack_ts_block_value_fields): Likewise.
841         (unpack_ts_translation_unit_decl_value_fields): Likewise.
842         (unpack_value_fields): Likewise.
843         (lto_materialize_tree): Likewise.
844         (lto_input_ts_common_tree_pointers): Likewise.
845         (lto_input_ts_vector_tree_pointers): Likewise.
846         (lto_input_ts_complex_tree_pointers): Likewise.
847         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
848         (lto_input_ts_decl_common_tree_pointers): Likewise.
849         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
850         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
851         (lto_input_ts_field_decl_tree_pointers): Likewise.
852         (lto_input_ts_function_decl_tree_pointers): Likewise.
853         (lto_input_ts_type_common_tree_pointers): Likewise.
854         (lto_input_ts_type_non_common_tree_pointers): Likewise.
855         (lto_input_ts_list_tree_pointers): Likewise.
856         (lto_input_ts_vec_tree_pointers): Likewise.
857         (lto_input_ts_exp_tree_pointers): Likewise.
858         (lto_input_ts_block_tree_pointers): Likewise.
859         (lto_input_ts_binfo_tree_pointers): Likewise.
860         (lto_input_ts_constructor_tree_pointers): Likewise.
861         (lto_input_ts_target_option): Likewise.
862         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
863         (lto_input_tree_pointers): Likewise.
864         (lto_get_pickled_tree): Likewise.
865         (lto_get_builtin_tree): Likewise.
866         (lto_read_tree): Likewise.
867         (lto_input_integer_cst): Likewise.
868         (lto_input_tree): Likewise.
869         * lto-streamer-out.c: Include data-streamer.h,
870         gimple-streamer.h and streamer-hooks.h.
871         (struct string_slot): Move to data-streamer.h.
872         (hash_string_slot_node): Likewise.
873         (eq_string_slot_node): Likewise.
874         (lto_string_index): Move to data-streamer-out.c.
875         (lto_output_string_with_length): Likewise.
876         (lto_output_string): Likewise.
877         (output_string_cst): Move to tree-streamer-out.c.
878         (output_identifier): Likewise.
879         (output_zero): Move to data-streamer-out.c
880         (output_uleb128): Likewise.
881         (output_sleb128): Likewise.
882         (output_record_start): Move to data-streamer.h
883         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
884         (pack_ts_real_cst_value_fields): Likewise.
885         (pack_ts_fixed_cst_value_fields): Likewise.
886         (pack_ts_decl_common_value_fields): Likewise.
887         (pack_ts_decl_wrtl_value_fields): Likewise.
888         (pack_ts_decl_with_vis_value_fields): Likewise.
889         (pack_ts_function_decl_value_fields): Likewise.
890         (pack_ts_type_common_value_fields): Likewise.
891         (pack_ts_block_value_fields): Likewise.
892         (pack_ts_translation_unit_decl_value_fields): Likewise.
893         (pack_value_fields): Likewise.
894         (lto_output_chain): Likewise.
895         (lto_output_ts_common_tree_pointers): Likewise.
896         (lto_output_ts_vector_tree_pointers): Likewise.
897         (lto_output_ts_complex_tree_pointers): Likewise.
898         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
899         (lto_output_ts_decl_common_tree_pointers): Likewise.
900         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
901         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
902         (lto_output_ts_field_decl_tree_pointers): Likewise.
903         (lto_output_ts_function_decl_tree_pointers): Likewise.
904         (lto_output_ts_type_common_tree_pointers): Likewise.
905         (lto_output_ts_type_non_common_tree_pointers): Likewise.
906         (lto_output_ts_list_tree_pointers): Likewise.
907         (lto_output_ts_vec_tree_pointers): Likewise.
908         (lto_output_ts_exp_tree_pointers): Likewise.
909         (lto_output_ts_block_tree_pointers): Likewise.
910         (lto_output_ts_binfo_tree_pointers): Likewise.
911         (lto_output_ts_constructor_tree_pointers): Likewise.
912         (lto_output_ts_target_option): Likewise.
913         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
914         (lto_output_tree_pointers): Likewise.
915         (lto_output_tree_header): Likewise.
916         (lto_output_builtin_tree): Likewise.
917         (lto_write_tree): Likewise.
918         (lto_output_integer_cst): Likewise.
919         (lto_output_tree): Likewise.
920         (output_phi): Move to gimple-streamer-out.c.
921         (output_gimple_stmt): Likewise.
922         (output_bb): Likewise.
923         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
924         (streamer_hooks): Move to streamer-hooks.c.
925         (check_handled_ts_structures): Move to tree-streamer.c
926         (lto_streamer_cache_add_to_node_array): Likewise.
927         (lto_streamer_cache_insert_1): Likewise.
928         (lto_streamer_cache_insert): Likewise.
929         (lto_streamer_cache_insert_at): Likewise.
930         (lto_streamer_cache_append): Likewise.
931         (lto_streamer_cache_lookup): Likewise.
932         (lto_streamer_cache_get): Likewise.
933         (lto_record_common_node): Likewise.
934         (lto_preload_common_nodes): Likewise.
935         (lto_streamer_cache_create): Likewise.
936         (lto_streamer_cache_delete): Likewise.
937         (streamer_hooks_init): Move to streamer-hooks.c.
938         * lto-streamer.h: Include diagnostic.h
939         (struct output_block, struct lto_input_block,
940         struct data_in, struct bitpack_d): Remove forward declarations.
941         (struct bitpack_d): Move to data-streamer.h.
942         (struct lto_streamer_cache_d): Move to tree-streamer.h.
943         (struct streamer_hooks): Move to streamer-hooks.h.
944         (bp_pack_var_len_unsigned): Move to data-streamer.h.
945         (bp_pack_var_len_int): Likewise.
946         (bp_unpack_var_len_unsigned): Likewise.
947         (bp_unpack_var_len_int): Likewise.
948         (lto_input_location): Declare.
949         (lto_tag_check_set): Declare.
950         (lto_init_eh): Declare.
951         (lto_output_tree_ref): Declare.
952         (lto_output_location): Declare.
953         (bitpack_create): Move to data-streamer.h.
954         (bp_pack_value): Likewise.
955         (lto_output_bitpack): Likewise.
956         (lto_input_bitpack): Likewise.
957         (bp_unpack_value): Likewise.
958         (lto_output_1_stream): Likewise.
959         (lto_input_1_unsigned): Likewise.
960         (lto_output_int_in_range): Likewise.
961         (lto_input_int_in_range): Likewise.
962         (bp_pack_int_in_range): Likewise.
963         (bp_unpack_int_in_range): Likewise.
964         (lto_output_enum): Likewise.
965         (lto_input_enum): Likewise.
966         (bp_pack_enum): Likewise.
967         (bp_unpack_enum): Likewise.
968         * streamer-hooks.c: New.
969         * streamer-hooks.h: New.
970         * tree-streamer-in.c: New.
971         * tree-streamer-out.c: New.
972         * tree-streamer.c: New.
973         * tree-streamer.h: New.
974
975 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
976
977         * gthr-posix95.h: Remove.
978         * gthr.h [_PTHREADS95]: Remove.
979         * configure.ac (enable_threads): Remove posix95.
980         * configure: Regenerate.
981         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
982
983 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
984
985         PR target/49781
986         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
987         SImode addresses.
988         (ix86_print_operand_address): Handle zero-extended addresses.
989         (memory_address_length): Add length of addr32 prefix for
990         zero-extended addresses.
991         (ix86_secondary_reload): Handle moves to/from double-word general
992         registers from/to zero-extended addresses.
993         * config/i386/predicates.md (lea_address_operand): Reject
994         zero-extended operands.
995
996 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
997
998         PR other/48007
999         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
1000
1001         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
1002         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
1003
1004         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
1005         (_Unwind_Context_Reg_Val): Likewise.
1006         (_Unwind_Get_Unwind_Word): Likewise.
1007         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
1008         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
1009         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
1010         for EXTENDED_CONTEXT_BIT.
1011         (__frame_state_for): Likewise.
1012         (uw_init_context_1): Likewise.
1013         (_Unwind_GetGR): Updated.
1014         (_Unwind_SetGR): Likewise.
1015         (_Unwind_GetGRPtr): Likewise.
1016         (_Unwind_SetGRPtr): Likewise.
1017         (_Unwind_SetGRValue): Likewise.
1018         (_Unwind_GRByValue): Likewise.
1019         (uw_install_context_1): Likewise.
1020
1021         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
1022         ASSUME_EXTENDED_UNWIND_CONTEXT.
1023         * doc/tm.texi: Regenerated.
1024
1025 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1026
1027         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
1028
1029 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1030
1031         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
1032         Linux/GNU-specific.
1033         (DEC Alpha Options, -mtune): Likewise.
1034         (MIPS Options, -march): native is supported on IRIX.
1035
1036 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1037
1038         * config/sparc/driver-sparc.c: New file.
1039         * config/sparc/x-sparc: New file.
1040         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
1041         * config/sparc/sparc.opt (native): New value for enum processor_type.
1042         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
1043         * config/sparc/sparc.c (sparc_option_override): Abort if
1044         PROCESSOR_NATIVE gets here.
1045         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
1046         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
1047         DRIVER_SELF_SPECS): Define.
1048         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
1049         (SPARC Options, -mtune): Likewise.
1050         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
1051         Substitute result.
1052         * configure: Regenerate.
1053         * Makefile.in (EXTRA_GCC_LIBS): Set.
1054         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
1055         (cpp$(exeext)): Likewise.
1056
1057 2011-08-08  Richard Guenther  <rguenther@suse.de>
1058
1059         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
1060         split out from ...
1061         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
1062         by composition.
1063
1064 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
1065
1066         PR tree-optimization/50005
1067         * ipa-inline-analysis (remap_predicate): Add cast to
1068         silence signed/unsigned comparison warning.
1069
1070 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
1071
1072         * modulo-sched.c (get_sched_window): Use a table for the debug output.
1073         Print the current ii.
1074         (sms_schedule_by_order): Reduce whitespace in dump line.
1075
1076 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
1077
1078         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
1079         and one loop for successors.  Fix upper bound of memory range.
1080
1081 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
1082
1083         PR target/50001
1084         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
1085         (TARGET_INSTANTIATE_DECLS): New define.
1086
1087 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
1088             Mikael Morin   <mikael.morin@sfr.fr>
1089
1090         * Makefile.in (INCLUDES_FOR_TARGET): New.
1091         (LIBGCC2_CFLAGS): Use it.
1092         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
1093
1094 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
1095
1096         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
1097         frame->save_regs_using_mov calculation.
1098
1099 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
1100
1101         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
1102         * config/i386/sse.md (castmode): New mode attribute.
1103         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
1104         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
1105
1106 2011-08-05  Jan Hubicka  <jh@suse.cz>
1107
1108         PR middle-end/49494
1109         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
1110
1111 2011-08-05  Jan Hubicka  <jh@suse.cz>
1112
1113         PR middle-end/49500
1114         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
1115         handle aliases.
1116         (create_emultls_var):New function.
1117         (ipa_lower_emutls): Handle aliases correctly.
1118
1119 2011-08-05  Jan Hubicka  <jh@suse.cz>
1120
1121         PR middle-end/49735
1122         * ipa-inline.c (recursive_inlining): Look through aliases.
1123
1124 2011-08-05  Jason Merrill  <jason@redhat.com>
1125
1126         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
1127         declarations to beginning of function.
1128
1129 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
1130
1131         PR rtl-optimization/49900
1132         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
1133         ensure basic blocks stay in the same order.
1134
1135 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
1136
1137         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
1138         store_bit_field.
1139         (s390_expand_atomic): Same.
1140
1141 2011-08-05  Richard Henderson  <rth@redhat.com>
1142
1143         PR rtl-opt/49977
1144         * dwarf2cfi.c (scan_insn_after): Split out of ...
1145         (scan_trace): ... here.  Correctly place notes wrt sequences.
1146
1147 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1148             Richard Henderson  <rth@redhat.com>
1149
1150         PR rtl-opt/49982
1151         * expr.c (fixup_args_size_notes): Look through no-op moves.
1152
1153 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1154
1155         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
1156         of "m" for operand 0.  Add type and mode attribute.
1157         (*pushxf_nointeger"): Use "<" constraint for operand 0.
1158         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
1159         constraint instead of "o" for opreand 1.
1160         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
1161         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
1162         operand 0, alternative 4.
1163         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
1164
1165 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1166
1167         * config/i386/predicates.md (lea_address_operand): Rename from
1168         no_seg_address_operand.
1169         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
1170         (*lea_1_zext): Ditto.
1171         (*lea_2): Ditto.
1172         (*lea_2_zext): Ditto.
1173
1174 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1175
1176         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
1177         parts.base and parts.index.
1178         * config/i386/predicates.md (aligned_operand): Ditto.
1179         (cmpxchg8b_pic_memory_operand): Ditto.
1180
1181 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1182
1183         * config/soft-fp: Move to ../libgcc.
1184         * Makefile.in (SFP_MACHINE): Remove.
1185         (libgcc-support): Remove $(SFP_MACHINE) dependency.
1186         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
1187         * config/arm/t-arm-softfp: Move to
1188         ../libgcc/config/arm/t-softfp.
1189         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
1190         * config/c6x/t-c6x-softfp: Remove.
1191         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
1192         * config/i386/t-fprules-softfp: Move to
1193         ../libgcc/config/t-softfp-tf.
1194         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
1195         * config/ia64/t-fprules-softfp: Remove.
1196         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
1197         * config/lm32/t-fprules-softfp: Remove.
1198         * config/moxie/sfp-machine.h: Remove.
1199         * config/moxie/t-moxie-softfp: Remove.
1200         * config/rs6000/darwin-ldouble-format: Move to
1201         ../libgcc/config/rs6000/ibm-ldouble-format.
1202         * config/rs6000/darwin-ldouble.c: Move to
1203         ../libgcc/config/rs6000/ibm-ldouble.c
1204         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
1205         * config/rs6000/libgcc-ppc64.ver: Likewise.
1206         * config/rs6000/sfp-machine.h: Likewise.
1207         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
1208         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
1209         (LIB2FUNCS_EXTRA): Remove.
1210         (TARGET_LIBGCC2_CFLAGS): Remove.
1211         * config/rs6000/t-aix52: Likewise
1212         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1213         $(srcdir)/config/rs6000/darwin-ldouble.c.
1214         (SHLIB_MAPFILES): Remove.
1215         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
1216         $(srcdir)/config/rs6000/darwin-ldouble.c.
1217         * config/rs6000/t-fprules-softfp: Move to
1218         ../libgcc/config/t-softfp-sfdf.
1219         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
1220         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
1221         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
1222         $(srcdir)/config/rs6000/darwin-ldouble.c.
1223         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
1224         * config/score/t-score-softfp: Remove.
1225         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
1226         soft-fp/t-softfp from tmake_file.
1227         (arm*-*-uclinux*): Likewise.
1228         (arm*-*-ecos-elf): Likewise.
1229         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
1230         (arm*-*-rtems*): Likewise.
1231         (arm*-*-elf): Likewise.
1232         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
1233         tmake_file.
1234         (moxie-*-uclinux*): Likewise.
1235         (moxie-*-rtems*): Likewise.
1236         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
1237         tmake_file.
1238         (lm32-*-rtems*): Likewise.
1239         (lm32-*-uclinux*): Likewise.
1240         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
1241         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1242         (powerpc-*-linux*, powerpc64-*-linux*): Remove
1243         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1244         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
1245         tmake_file.
1246         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
1247         tmake_file.
1248         (tic6x-*-uclinux): Likewise.
1249         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
1250         soft-fp/t-softfp from tmake_file.
1251         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
1252         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
1253         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
1254         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
1255         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
1256
1257 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1258
1259         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
1260         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
1261         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
1262         TPBIT, TPBIT_FUNCS.
1263         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
1264         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
1265         Remove.
1266         * config/arm/t-vxworks: Likewise.
1267         * config/arm/t-wince-pe: Likewise.
1268         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
1269         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1270         * config/bfin/t-bfin-elf: Likewise.
1271         * config/bfin/t-bfin-linux: Likewise.
1272         * config/bfin/t-bfin-uclinux: Likewise.
1273         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
1274         Remove.
1275         * config/fr30/t-fr30: Likewise.
1276         * config/frv/t-frv: Likewise.
1277         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
1278         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1279         * config/m32c/t-m32c: Likewise.
1280         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
1281         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1282         * config/mcore/t-mcore: Likewise.
1283         * config/mep/t-mep: Likewise.
1284         * config/microblaze/t-microblaze: Likewise.
1285         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
1286         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1287         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
1288         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1289         * config/mn10300/t-linux: Remove.
1290         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1291         * config/pdp11/t-pdp11: Likewise.
1292         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
1293         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
1294         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1295         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
1296         * config/rs6000/t-aix52: Likewise.
1297         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1298         $(srcdir)/config/rs6000/ppc64-fp.c.
1299         * config/rs6000/t-fprules-fpbit: Remove.
1300         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
1301         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1302         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
1303         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1304         * config/sparc/t-elf: Likewise.
1305         * config/sparc/t-leon: Likewise.
1306         * config/sparc/t-leon3: Likewise.
1307         * config/spu/t-spu-elf: Likewise.
1308         (DPBIT_FUNCS): Remove.
1309         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1310         * config/v850/t-v850: Likewise.
1311         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
1312         (avr-*-*): Likewise.
1313         (h8300-*-rtems*): Set libgcc_tm_file.
1314         (h8300-*-elf*): Likewise.
1315         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
1316         tmake_file.
1317         (powerpc-*-eabisim*): Likewise.
1318         (powerpc-*-elf*): Likewise.
1319         (powerpc-*-eabialtivec*): Likewise.
1320         (powerpc-xilinx-eabi*): Likewise.
1321         (powerpc-*-eabi*): Likewise.
1322         (powerpc-*-rtems*): Likewise.
1323         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
1324         (powerpcle-*-elf*): Likewise.
1325         (powerpcle-*-eabisim*): Likewise.
1326         (powerpcle-*-eabi*): Likewise.
1327         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
1328         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
1329         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
1330         Remove.
1331
1332 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1333
1334         * Makefile.in (UNWIND_H): Remove.
1335         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
1336         ../libgcc/Makefile.in.
1337         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
1338         (LIBUNWINDDEP): Remove.
1339         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
1340         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
1341         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
1342         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
1343         Don't copy $(UNWIND_H).
1344         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
1345         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
1346         * aclocal.m4: Regenerate.
1347         * configure: Regenerate.
1348         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
1349         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
1350         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
1351         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
1352         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
1353         * config/arm/libunwind.S, config/arm/pr-support.c,
1354         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
1355         ../libgcc/config/arm.
1356         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1357         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1358         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1359         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1360         ($(T)frvend$(objext)): Likewise.
1361         * config/ia64/t-glibc (LIB2ADDEH): Remove.
1362         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1363         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1364         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1365         ../libgcc/config/ia64.
1366         * config/ia64/t-hpux (LIB2ADDEH): Remove.
1367         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1368         * config/ia64/t-vms (LIB2ADDEH): Remove.
1369         * config/ia64/vms.h (UNW_IVMS_MODE,
1370         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1371         * config/picochip/t-picochip (LIB2ADDEH): Remove.
1372         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1373         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1374         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1375         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1376         $(srcdir)/../libgcc to refer to unwinder sources.
1377         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1378         * config/t-darwin (LIB2ADDEH): Remove.
1379         * config/t-freebsd (LIB2ADDEH): Remove.
1380         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1381         * config/t-libunwind-elf: Move to ../libgcc/config.
1382         * config/t-linux (LIB2ADDEH): Remove.
1383         * config/t-sol2 (LIB2ADDEH): Remove.
1384         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1385         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1386
1387 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
1388
1389         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1390
1391         * doc/invoke.texi: Document core-avx-i.
1392
1393 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1394
1395         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1396
1397 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
1398
1399         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1400         result of multiple results reduction when extracting the final
1401         value using scalar code.
1402
1403 2011-08-05  Richard Guenther  <rguenther@suse.de>
1404
1405         PR tree-optimization/49984
1406         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1407
1408 2011-08-05  Richard Guenther  <rguenther@suse.de>
1409
1410         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1411         return true for constant integer ranges.
1412         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1413         BIT_IOR_EXPR handling.
1414
1415 2011-08-04  Kai Tietz  <ktietz@redhat.com>
1416
1417         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1418         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1419
1420 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
1421
1422         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1423         pattern def statement, and its access macro.
1424         (NUM_PATTERNS): Set to 5.
1425         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1426         pattern def statement.
1427         (vect_transform_loop): Likewise.
1428         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1429         function vect_recog_over_widening_pattern ().
1430         (vect_operation_fits_smaller_type): New function.
1431         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1432         Likewise.
1433         (vect_pattern_recog_1): Move the code that marks pattern
1434         statements to vect_mark_pattern_stmts (), and call it.  Update
1435         documentation.
1436         * tree-vect-stmts.c (vect_supportable_shift): New function.
1437         (vect_analyze_stmt): Handle pattern def statement.
1438         (new_stmt_vec_info): Initialize pattern def statement.
1439
1440 2011-08-04  Richard Henderson  <rth@redhat.com>
1441
1442         PR target/49964
1443         * config/i386/i386.c (ix86_expand_call): Don't create nested
1444         PARALLELs for TARGET_VZEROUPPER.
1445         (ix86_split_call_vzeroupper): Fix extraction of the original call.
1446         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1447         recognize nested PARALLELs.
1448         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1449         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1450         *sibcall_value_pop_vzeroupper): Likewise.
1451
1452 2011-08-04  Richard Henderson  <rth@redhat.com>
1453
1454         PR middle-end/49968
1455         * calls.c (expand_call): Use fixup_args_size_notes for
1456         emit_stack_restore.
1457         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1458         in non-standard modes.
1459
1460 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1461
1462         * gcc.c (self_spec): New variable.
1463         (static_specs): Add self_spec.
1464         (main): Call do_self_spec on "self_spec" specs after reading
1465         user specs files.  Move compare_debug handling right after that.
1466
1467 2011-08-04  Richard Guenther  <rguenther@suse.de>
1468
1469         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1470         (value_range_nonnegative_p): New function.
1471         (ssa_name_nonnegative_p): Use it.
1472         (value_range_constant_singleton): New function.
1473         (op_with_constant_singleton_value_range): Use it.
1474         (extract_range_from_binary_expr_1): New function, split out from ...
1475         (extract_range_from_binary_expr): ... this.  Remove fallback
1476         constant folding done here.
1477
1478 2011-08-04  Richard Guenther  <rguenther@suse.de>
1479
1480         PR tree-optimization/49806
1481         * tree-vrp.c (op_with_boolean_value_range_p): New function.
1482         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
1483         a new statement for a final conversion to bool.
1484
1485 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
1486
1487         * gengtype-state.c: Include "bconfig.h" if
1488         GENERATOR_FILE is defined, "config.h" otherwise.
1489         * gengtype.c: Likewise.
1490         * gengtype-lex.l: Likewise.
1491         * gengtype-parse.c: Likewise.
1492         * Makefile.in (gengtype-lex.o-warn): New variable.
1493         (plugin_resourcesdir): Likewise.
1494         (plugin_bindir): Likewise.
1495         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1496         (MOSTLYCLEANFILES): Add gengtype$(exeext).
1497         (native): Depend on gengtype$(exeext) is $enable_plugin
1498         is set to "yes".
1499         (gtype.state): Depend on s-gtype. Use temporary file.
1500         (gengtype-lex.o): New rule.
1501         (gengtype-parse.o): Likewise.
1502         (gengtype-state.o): Likewise.
1503         (gengtype$(exeext)): Likewise.
1504         (install-gengtype): Likewise.
1505         (gengtype.o): Likewise.
1506         (build/gengtype.o): Depend on version.h.
1507         (build/gengtype-state): Depend on double-int.h, version.h,
1508         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1509         (install-plugin): Depend on install-gengtype.
1510
1511 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1512
1513         PR middle-end/49905
1514         * tree.h (init_attributes): New prototype.
1515         * attribs.c (init_attributes): No longer static.
1516
1517 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1518
1519         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1520         maybe_suffix.
1521
1522 2011-08-03   David Li  <davidxl@google.com>
1523
1524         * tree-optimize.c (execute_fixup_cfg): Fix up entry
1525         outgoing edge counts after inlining.
1526
1527 2011-08-03   David Li  <davidxl@google.com>
1528
1529         * profile.c (compute_branch_probabilities): Compute
1530         function frequency after profile annotation.
1531
1532 2011-08-04  Alan Modra  <amodra@gmail.com>
1533
1534         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1535         use_backchain_to_restore_sp initialisation.
1536         (rs6000_legitimate_offset_address_p): Simplify offset test.
1537
1538 2011-08-03  Richard Henderson  <rth@redhat.com>
1539
1540         * config/spu/spu.md: Use define_c_enum instead of define_constants.
1541         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1542         (UNSPECV_NOP): New.
1543
1544 2011-08-03  Richard Henderson  <rth@redhat.com>
1545
1546         PR target/34888
1547         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1548
1549 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
1550
1551         PR tree-optimization/49948
1552         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1553
1554 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
1555
1556         * config/m32c/m32c.c (class_sizes): Remove.
1557         (reduce_class): Change arguments and return type to reg_class_t.
1558         Change type cc var to HARD_REG_SET. Change type best var to
1559         reg_class_t. Change type best_size var to unsigned int. Remove
1560         initialization class_sizes var. Use reg_class_size array instead
1561         of class_sizes. Use reg_class_contents array instead
1562         of class_contents.
1563
1564 2011-08-03  Richard Guenther  <rguenther@suse.de>
1565
1566         PR middle-end/49958
1567         * fold-const.c (fold_binary_loc): Only associate
1568         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1569         overflow wraps.
1570
1571 2011-08-03  Alan Modra  <amodra@gmail.com>
1572
1573         PR rtl-optimization/49941
1574         * jump.c (mark_jump_label): Comment.
1575         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1576         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1577         (mark_used_flags): Don't mark RETURN.
1578
1579 2011-08-03  Richard Guenther  <rguenther@suse.de>
1580
1581         PR tree-optimization/49938
1582         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1583         deal with a POLYNOMIAL_CHREC.
1584
1585 2011-08-03  Revital Eres  <revital.eres@linaro.org>
1586
1587         * modulo-sched.c (calculate_stage_count,
1588         calculate_must_precede_follow, get_sched_window,
1589         try_scheduling_node_in_cycle, remove_node_from_ps): Add
1590         declaration.
1591         (update_node_sched_params, set_must_precede_follow, optimize_sc):
1592         New functions.
1593         (reset_sched_times): Call update_node_sched_params.
1594         (sms_schedule): Call optimize_sc.
1595         (get_sched_window): Change function arguments.
1596         (sms_schedule_by_order): Update call to get_sched_window.
1597         Call set_must_precede_follow.
1598         (calculate_stage_count): Add function argument.
1599
1600 2011-08-02  Richard Henderson  <rth@redhat.com>
1601
1602         PR target/49864
1603         PR target/49879
1604         * reg-notes.def (REG_ARGS_SIZE): New.
1605         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1606         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1607         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1608         different stack levels.
1609         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1610         (maybe_move_args_size_note): New.
1611         (combine_stack_adjustments_for_block): Use it.
1612         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1613         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1614         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1615         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1616         (cur_cfa): New.
1617         (queued_args_size): Remove.
1618         (add_cfi_args_size): Assert size is non-negative.
1619         (stack_adjust_offset, dwarf2out_args_size): Remove.
1620         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1621         (notice_args_size, notice_eh_throw): New.
1622         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1623         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1624         (dwarf2out_frame_debug_cfa_offset): Likewise.
1625         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
1626         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1627         (change_cfi_row): Don't emit args_size.
1628         (maybe_record_trace_start_abnormal): Split out from ...
1629         (maybe_record_trace_start): Here.  Set args_size_undefined.
1630         (create_trace_edges): Update to match.
1631         (scan_trace): Handle REG_ARGS_SIZE.
1632         (connect_traces): Connect args_size between EH insns.
1633         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1634         * explow.c (suppress_reg_args_size): New.
1635         (adjust_stack_1): Split out from ...
1636         (adjust_stack): ... here.
1637         (anti_adjust_stack): Use it.
1638         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1639         * expr.c (mem_autoinc_base): New.
1640         (fixup_args_size_notes): New.
1641         (emit_single_push_insn_1): Rename from emit_single_push_insn.
1642         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
1643         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1644         * reload1.c (reload_as_needed): Likewise.
1645         * rtl.h (fixup_args_size_notes): Declare.
1646
1647 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1648
1649         PR bootstrap/49914
1650         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1651         of abs.
1652         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1653         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1654
1655 2011-08-02  Richard Henderson  <rth@redhat.com>
1656
1657         * config/h8300/h8300.c (push, pop): Return the insn.
1658         (h8300_swap_into_er6): Generate correct unwind info.
1659         (h8300_swap_out_of_er6): Likewise.
1660         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1661         complex cfa expression.
1662         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1663
1664 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1665
1666         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1667
1668 2011-08-02  Richard Henderson  <rth@redhat.com>
1669
1670         PR target/49878
1671         * config/h8300/h8300.c (h8300_move_ok): New.
1672         * config/h8300/h8300-protos.h: Declare it.
1673         * config/h8300/h8300.md (P): New mode iterator.
1674         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1675         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1676         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1677         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1678         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1679         and pushqi1_h8300hs_normal; use PRE_MODIFY and
1680         register_no_sp_elim_operand.
1681         (*pushhi1_h8300hs_<P>): Similarly.
1682         (pushqi1, pushhi1, pushhi1_h8300): Remove.
1683         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1684
1685 2011-08-02  Richard Henderson  <rth@redhat.com>
1686
1687         PR target/49881
1688         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1689
1690 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1691
1692         * c-parser.c (enum c_parser_prec): New enum, moved from within
1693         c_parser_binary_expression.
1694         (c_parser_binary_expression): Add PREC argument.  Stop parsing
1695         if operator has lower or equal precedence than PREC.
1696         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1697         callers.
1698         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1699         Adjust c_finish_omp_atomic caller.
1700         (c_parser_omp_taskyield): New function.
1701         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1702         (c_parser_omp_clause_name): Handle final and mergeable clauses.
1703         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1704         functions.
1705         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1706         and PRAGMA_OMP_CLAUSE_MERGEABLE.
1707         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1708         (c_parser_omp_clause_reduction): Handle min and max.
1709         * c-typeck.c (c_finish_omp_clauses): Don't complain about
1710         const qualified predetermined vars in firstprivate clause.
1711         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1712         Handle MIN_EXPR and MAX_EXPR.
1713         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1714         and OMP_CLAUSE_MERGEABLE.
1715         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1716         and OMP_ATOMIC_CAPTURE_NEW.
1717         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1718         OMP_CLAUSE_MERGEABLE.
1719         (omp_clause_code_name): Likewise.
1720         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1721         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1722         and OMP_CLAUSE_MERGEABLE.
1723         (OMP_CLAUSE_FINAL_EXPR): Define.
1724         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
1725         OMP_CLAUSE_MERGEABLE.
1726         (expand_task_call): Likewise.
1727         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
1728         (expand_omp_atomic_fetch_op): Handle cases where old or new
1729         value is needed afterwards.
1730         (expand_omp_atomic): Call expand_omp_atomic_load resp.
1731         expand_omp_atomic_store.
1732         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
1733         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
1734         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
1735         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1736         * tree-nested.c (convert_nonlocal_omp_clauses,
1737         convert_local_omp_clauses): Likewise.
1738         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
1739         OMP_ATOMIC_CAPTURE_NEW): New.
1740         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
1741         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
1742         New inlines.
1743         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
1744         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
1745         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1746
1747 2011-08-02  Kai Tietz  <ktietz@redhat.com>
1748
1749         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
1750         boolean-type.
1751         (ssa_forward_propagate_and_combine): Interprete result of
1752         forward_propagate_comparison.
1753         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
1754         boolean-typed operands for comparisons.
1755
1756 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
1757
1758         * config/avr/libgcc.S: Gather related function in the
1759         same input section.
1760         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
1761         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
1762         references.
1763         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
1764         __udivmodsi4, __divmodsi4, __prologue_saves__,
1765         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
1766         __do_copy_data, __do_clear_bss, __do_global_ctors,
1767         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
1768
1769 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
1770
1771         PR target/47766
1772         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
1773         (stack_protect_test): The pattern compares ptr_mode value.
1774
1775 2011-08-02  Alan Modra  <amodra@gmail.com>
1776
1777         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
1778         note for save_LR_around_toc_setup sequence.
1779
1780 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1781
1782         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
1783
1784 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
1785             Joseph Myers  <joseph@codesourcery.com>
1786
1787         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
1788         * hwint.c: Include diagnostic-core.h.
1789         (abs_hwi): New.
1790         (gcd): Moved here...
1791         (pos_mul_hwi): New.
1792         (mul_hwi): New.
1793         (least_common_multiple): Moved here...
1794         * hwint.h (gcd): ... from here.
1795         (least_common_multiple): ... from here.
1796         (HOST_WIDE_INT_MIN): New.
1797         (HOST_WIDE_INT_MAX): New.
1798         (abs_hwi): Declared.
1799         (gcd): Declared.
1800         (pos_mul_hwi): Declared.
1801         (mul_hwi): Declared.
1802         (least_common_multiple): Declared.
1803         * omega.c (check_pos_mul): Removed.
1804         (check_mul): Removed.
1805         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
1806         mul_hwi instead of check_mul.
1807
1808 2011-08-01  Richard Henderson  <rth@redhat.com>
1809
1810         PR target/49881
1811         * config/avr/avr.h (PUSH_ROUNDING): New.
1812         * config/avr/avr.md (pushqi1): Rename from *pushqi.
1813         (*pushhi, *pushsi, *pushsf): Remove.
1814         (MPUSH): New mode iterator.
1815         (push<MPUSH>1): New expander.
1816
1817 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
1818
1819         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
1820         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
1821         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
1822         mmix_preferred_output_reload_class): Remove.
1823         * config/mmix/mmix.c (mmix_preferred_reload_class,
1824         mmix_preferred_output_reload_class): Make static. Change rclass
1825         argument and return type to reg_class_t.
1826         (TARGET_PREFERRED_RELOAD_CLASS,
1827         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
1828
1829 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
1830
1831         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
1832         handling.
1833
1834 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1835
1836         PR target/47766
1837         * config/i386/i386.md (PTR): New.
1838         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
1839         (stack_protect_test): Likewise.
1840         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
1841         (stack_tls_protect_set_<mode>): Likewise.
1842         (stack_tls_protect_test_<mode>): Likewise.
1843
1844 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
1845
1846         PR target/49927
1847         * config/i386/i386.c (ix86_address_subreg_operand): New.
1848         (ix86_decompose_address): Use ix86_address_subreg_operand.
1849         (ix86_legitimate_address_p): Do not assert that subregs satisfy
1850         register_no_elim_operand in DImode.
1851
1852 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
1853
1854         PR tree-optimization/49926
1855         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
1856         in a chain doesn't have uses both inside and outside the loop.
1857
1858 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1859
1860         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
1861         * config/avr/avr-devices.c (avr_mcu_types): Use it.
1862         * config/avr/avr-mcus.def (AVR_MCU): Use it.
1863         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
1864         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
1865         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
1866         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
1867         to detect if XJMP must not be skipped.
1868
1869 2011-08-02  Alan Modra  <amodra@gmail.com>
1870
1871         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
1872         Delete.
1873         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
1874         (rs6000_emit_prologue): Don't prematurely return when
1875         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
1876         save_toc_in_prologue case.
1877         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
1878         calls_alloca.
1879
1880 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
1881
1882         * config/avr/avr-devices.c: Delete SVN property svn:executable.
1883         * config/avr/predicates.md: Ditto.
1884         * config/avr/driver-avr.c: Ditto.
1885         * config/avr/genopt.sh: Set SVN property svn:executable to *.
1886
1887 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
1888
1889         * calls.c (emit_library_call_value_1): Declare size only if
1890         BLOCK_REG_PADDING is defined.
1891
1892 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
1893
1894         PR target/49547
1895         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
1896         (x86_64-*-*): Likewise.
1897         * config/i386/i386.opt (mlzcnt): New.
1898         * config/i386/abmintrin.h: File removed.
1899         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
1900         * config/i386/lzcntintrin.h: ... here.  New file.
1901         (__lzcnt): Rename to ...
1902         (__lzcnt32): ... this.
1903         * config/i386/bmiintrin.h (head): Update copyright year.
1904         (__lzcnt_u16): Removed.
1905         (__lzcnt_u32): Likewise.
1906         (__lzcnt_u64): Likewise.
1907         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
1908         is defined, remove abmintrin.h.
1909         * config/i386/cpuid.h (bit_LZCNT): New.
1910         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1911         LZCNT feature.
1912         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1913         __LZCNT__ if needed.
1914         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
1915         (ix86_option_override_internal): Handle LZCNT option.
1916         (ix86_valid_target_attribute_inner_p): Likewise.
1917         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
1918         * config/i386/i386.h (TARGET_LZCNT): New.
1919         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
1920         * config/i386/i386.md (clz<mode>2): Update insn constraint.
1921         (clz<mode>2_lzcnt): Likewise.
1922         * doc/invoke.texi: Mention -mlzcnt option.
1923         * doc/extend.texi: Likewise.
1924
1925 2011-08-01  Julian Brown  <julian@codesourcery.com>
1926
1927         * configure.ac (fixed-point): Add ARM support.
1928         * configure: Regenerate.
1929         * config/arm/arm.c (arm_fixed_mode_set): New struct.
1930         (arm_set_fixed_optab_libfunc): New.
1931         (arm_set_fixed_conv_libfunc): New.
1932         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
1933         ARM-specific names.
1934         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
1935         return values in SImode.
1936         (arm_return_in_msb): Return fixed-point types in the msb.
1937         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
1938         upwards.
1939         (arm_scalar_mode_supported_p): Support fixed-point modes.
1940         (arm_vector_mode_supported_p): Support vector fixed-point modes.
1941         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
1942         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
1943         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
1944         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
1945         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
1946         New mode iterators.
1947         (qaddsub_suf): New mode attribute.
1948         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
1949         vector modes.
1950         * config/arm/predicates.md (sat_shift_operator): New predicate.
1951         * config/arm/arm-fixed.md: New.
1952         * config/arm/arm.md: Include arm-fixed.md.
1953         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
1954
1955 2011-08-01  Julian Brown  <julian@codesourcery.com>
1956
1957         * calls.c (emit_library_call_value_1): Support padding for libcall
1958         arguments and return values.
1959         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
1960         downwards in big-endian mode.
1961
1962 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1963
1964         PR debug/49887
1965         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
1966         * config/sol2-protos.h: Likewise.
1967         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
1968         solaris_code_end.
1969         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
1970         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
1971         solaris_file_end.
1972         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
1973
1974 2011-08-01  Julian Brown  <julian@codesourcery.com>
1975
1976         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
1977
1978 2011-08-01  Julian Brown  <julian@codesourcery.com>
1979
1980         * final.c (output_addr_const): Print fixed-point constants as
1981         decimal not hex.
1982
1983 2011-08-01  Richard Guenther  <rguenther@suse.de>
1984
1985         * stor-layout.c (initialize_sizetypes): Properly sign-extend
1986         bitsiztype TYPE_MAX_VALUE.
1987
1988 2011-08-01  Julian Brown  <julian@codesourcery.com>
1989
1990         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
1991         comparison helpers.
1992
1993 2011-07-31  Richard Henderson  <rth@redhat.com>
1994
1995         * config/h8300/crti.asm: Add flags to .section directive.
1996         * config/h8300/crtn.asm: Likewise.
1997
1998 2011-07-31  Richard Henderson  <rth@redhat.com>
1999
2000         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
2001         * tree.c (build_common_tree_nodes): Likewise.
2002
2003 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2004
2005         PR target/49880
2006         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
2007         (divsi3_i1): Likewise.
2008
2009 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2010
2011         PR tree-optimization/49749
2012         * tree-ssa-reassoc.c (get_rank): New forward declaration.
2013         (PHI_LOOP_BIAS): New macro.
2014         (phi_rank): New function.
2015         (loop_carried_phi): Likewise.
2016         (propagate_rank): Likewise.
2017         (get_rank): Add calls to phi_rank and propagate_rank.
2018
2019 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2020
2021         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
2022         of TARGET_64BIT.
2023         (PTRDIFF_TYPE): Likewise.
2024
2025 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
2026
2027         PR target/49920
2028         * config/i386/i386.md (strset): Do not expand strset_singleop
2029         when %eax or $edi are fixed.
2030         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
2031         (*strsetsi_1): Ditto.
2032         (*strsethi_1): Ditto.
2033         (*strsetqi_1): Ditto.
2034         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
2035         (*rep_stossi): Ditto.
2036         (*rep_stosqi): Ditto.
2037         (*strlenqi_1): Ditto.
2038         (cmpstrnsi): Also fail when %ecx is fixed.
2039         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
2040         (*cmpstrnqi_1): Ditto.
2041         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
2042         (*strmovsi_1): Ditto.
2043         (*strmovhi_1): Ditto.
2044         (*strmovqi_1): Ditto.
2045         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
2046         (*rep_movsi): Ditto.
2047         (*rep_movqi): Ditto.
2048
2049 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
2050
2051         PR target/47908
2052         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
2053         Disable instruction scheduling for non-ColdFire targets.
2054         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2055
2056 2011-07-31  Revital Eres  <revital.eres@linaro.org>
2057
2058         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
2059         of anti-dep edge from a branch.
2060         (add_cross_iteration_register_deps): Create anti-dep edge from
2061         a branch.
2062
2063 2011-07-31  Revital Eres  <revital.eres@linaro.org>
2064
2065         * modulo-sched.c: Change comment.
2066         (reset_sched_times): Fix print message.
2067         (print_partial_schedule): Add print info.
2068
2069 2011-07-31  Tom de Vries  <tom@codesourcery.com>
2070
2071         PR middle-end/43513
2072         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
2073         get_object_alignment and TYPE_ALIGN.
2074
2075 2011-07-30  Tom de Vries  <tom@codesourcery.com>
2076
2077         PR middle-end/43513
2078         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
2079         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
2080
2081 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2082
2083         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
2084         <sys/sbd.h>.
2085         (cpu_types): New array.
2086         (cputype): New function.
2087         (host_detect_local_cpu): Only define buf, f if !__sgi__.
2088         Use scaninvent instead of /proc/cpuinfo if __sgi__.
2089         * config.host: Also use driver-native.o, mips/x-native on
2090         mips-sgi-irix*.
2091         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
2092         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
2093         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
2094
2095 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
2096
2097         PR middle-end/49897
2098         PR middle-end/49898
2099         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
2100         in nested parallel and outer is a gimple_reg, mark it as addressable
2101         and set its bit in task_shared_vars bitmap too.
2102
2103 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
2104
2105         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
2106
2107 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2108
2109         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
2110         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
2111         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
2112         AMASK_LOCKPFTCHOK): Define.
2113         (host_detect_local_cpu): Remove buf, f, cpu_names.
2114         Define cpu_types, implver, amask.
2115         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
2116         native CPU.
2117         * config.host: Also use driver-alpha.o, alpha/x-alpha on
2118         alpha*-dec-osf*.
2119         * config/alpha/osf5.h [__alpha__ || __alpha]
2120         (host_detect_local_cpu): Declare.
2121         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
2122         (DRIVER_SELF_SPECS): Define.
2123
2124 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
2125
2126         PR target/47715
2127         * config/i386/i386.md (*load_tp_x32): New.
2128         (*load_tp_x32_zext): Ditto.
2129         (*add_tp_x32): Ditto.
2130         (*add_tp_x32_zext): Ditto.
2131         (*load_tp_<mode>): Disable for TARGET_X32 targets.
2132         (*add_tp_<mode>): Ditto.
2133         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
2134         ptr_mode and convert to Pmode if needed.
2135
2136 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
2137
2138         PR target/49687
2139         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
2140         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
2141         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
2142         Add X to register footprint: Clobber r26/r27.
2143
2144 2011-07-29  Richard Guenther  <rguenther@suse.de>
2145
2146         * builtins.c (fold_builtin_signbit): Build the comparison
2147         with a proper type.
2148
2149 2011-07-29  Richard Guenther  <rguenther@suse.de>
2150
2151         PR tree-optimization/49893
2152         * tree-predcom.c (suitable_reference_p): Volatile references
2153         are not suitable.
2154
2155 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
2156
2157         PR target/49313
2158         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2159         (__ctzsi2): Result for 0 may be undefined.
2160         (__ctzhi2): Result for 0 may be undefined.
2161         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2162         (__popcountsi2): Ditto. And don't clobber r26.
2163         (__popcountdi2): Ditto. And don't clobber r27.
2164         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2165         (parityhi2): New expand.
2166         (paritysi2): New expand.
2167         (popcounthi2): New expand.
2168         (popcountsi2): New expand.
2169         (clzhi2): New expand.
2170         (clzsi2): New expand.
2171         (ctzhi2): New expand.
2172         (ctzsi2): New expand.
2173         (ffshi2): New expand.
2174         (ffssi2): New expand.
2175         (copysignsf3): New insn.
2176         (bswapsi2): New expand.
2177         (*parityhi2.libgcc): New insn.
2178         (*parityqihi2.libgcc): New insn.
2179         (*paritysihi2.libgcc): New insn.
2180         (*popcounthi2.libgcc): New insn.
2181         (*popcountsi2.libgcc): New insn.
2182         (*popcountqi2.libgcc): New insn.
2183         (*popcountqihi2.libgcc): New insn-and-split.
2184         (*clzhi2.libgcc): New insn.
2185         (*clzsihi2.libgcc): New insn.
2186         (*ctzhi2.libgcc): New insn.
2187         (*ctzsihi2.libgcc): New insn.
2188         (*ffshi2.libgcc): New insn.
2189         (*ffssihi2.libgcc): New insn.
2190         (*bswapsi2.libgcc): New insn.
2191
2192 2011-07-29  Richard Guenther  <rguenther@suse.de>
2193
2194         * tree-vrp.c (get_value_range): Only set parameter default
2195         definitions to varying, leave others at undefined.
2196         (extract_range_from_binary_expr): Fix undefined handling.
2197         (vrp_visit_phi_node): Handle merged undefined state.
2198
2199 2011-07-29  Wei Guozhi  <carrot@google.com>
2200
2201         PR rtl-optimization/49799
2202         * combine.c (make_compound_operation): Check if the bit field is valid
2203         before change it to bit field extraction.
2204
2205 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
2206
2207         PR rtl-optimization/49891
2208         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
2209         newly created returnjumps.
2210
2211 2011-07-28  DJ Delorie  <dj@redhat.com>
2212
2213         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
2214         local frame in a naked function, and produce a suitable error for
2215         that specific case.
2216
2217         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
2218         registers to be reloaded in HI classes when the target is HI.
2219
2220 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2221
2222         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
2223         bound_one, bound_two.
2224
2225 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2226
2227         PR middle-end/48648
2228         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
2229         CLAST assignments.
2230         (translate_clast): Same.
2231         (translate_clast_assignment): New.
2232
2233 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2234
2235         PR tree-optimization/49876
2236         * sese.c (rename_uses): Do not return false on gloog_error: set
2237         the new_expr to integer_zero_node and continue code generation.
2238         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
2239
2240 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2241
2242         PR debug/49846
2243         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
2244         arguments also check if they aren't initialized with a MODE_INT
2245         mode of the same size.
2246
2247 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
2248
2249         * expr.c (get_bit_range): Handle *MEM_REF's.
2250
2251 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
2252
2253         * rtlanal.c (tablejump_p): False for returns.
2254         * reorg.c (first_active_target_insn): New static function.
2255         (find_end_label): Set JUMP_LABEL for a new returnjump.
2256         (optimize_skip, get_jump_flags, rare_destination,
2257         mostly_true_jump, get_branch_condition,
2258         steal_delay_list_from_target, own_thread_p,
2259         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
2260         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
2261         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
2262         * jump.c (delete_related_insns): Likewise.
2263         (jump_to_label_p): New function.
2264         (redirect_target): New static function.
2265         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
2266         (redirect_jump_1): Assert that the new label is nonnull.
2267         (redirect_jump): Likewise.
2268         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
2269         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
2270         exit block.
2271         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
2272         changed.  Ensure that the right label is passed to redirect_jump.
2273         * function.c (emit_return_into_block,
2274         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
2275         ret_rtx in their JUMP_LABEL.
2276         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
2277         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
2278         pass ret_rtx as label.
2279         * cfglayout.c (fixup_reorder_chain): Use
2280         force_nonfallthru_and_redirect rather than force_nonfallthru.
2281         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
2282         * rtl.h (ANY_RETURN_P): New macro.
2283         (jump_to_label_p): Declare.
2284         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
2285         JUMP_LABELs.
2286         (mark_target_live_regs): Likewise.
2287         * basic-block.h (force_nonfallthru_and_redirect): Declare.
2288         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
2289         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
2290         alpha_tablejump_best_label): Remove functions.
2291         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
2292         alpha_tablejump_best_label): Remove declarations.
2293         * config/sh/sh.c (barrier_align, split_branches): Adjust for
2294         ret_rtx in JUMP_LABELs.
2295         * config/arm/arm.c (is_jump_table): Likewise.
2296
2297 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2298
2299         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
2300         special predicate.  Remove explicit mode checks.
2301
2302 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2303
2304         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
2305         DW_AT_data_member_location containing just DW_OP_plus_uconst.
2306
2307         PR debug/49871
2308         * dwarf2out.c (size_of_die, value_format, output_die): Use
2309         DW_FORM_udata instead of DW_FORM_data[48] for
2310         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
2311
2312 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2313
2314         * config/i386/i386.md (*tls_global_dynamic_64): Update
2315         length attribute.
2316
2317 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2318
2319         PR target/47715
2320         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
2321         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
2322         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
2323         (tls_dynamic_gnu2_64): Ditto.
2324         (*tls_dynamic_gnu2_lea_64): Ditto.
2325         (*tls_dynamic_gnu2_call_64): Ditto.
2326         (*tls_dynamic_gnu2_combine_64): Ditto.
2327
2328 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2329
2330         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
2331
2332 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2333
2334         PR target/47364
2335         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
2336
2337 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2338
2339         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
2340         before the core constraints. Adjust attributes.
2341         ("*thumb2_movdf_vfp"): Likewise.
2342
2343 2011-07-28  Kai Tietz  <ktietz@redhat.com>
2344
2345         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
2346         (simplify_truth_ops_using_ranges): Likewise.
2347         (build_assert_expr_for): Likewise.
2348         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
2349         and handle BIT_NOT_EXPR for truth-operation.
2350
2351 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2352
2353         PR target/49313
2354         Undo r176835 from trunk
2355         2011-07-27  Georg-Johann Lay
2356
2357 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2358
2359         PR target/49687
2360         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2361         Add _muluhisi3, _mulshisi3, _usmulhisi3.
2362         * config/avr/libgcc.S (__mulsi3): Rewrite.
2363         (__mulhisi3): Rewrite.
2364         (__umulhisi3): Rewrite.
2365         (__usmulhisi3): New.
2366         (__muluhisi3): New.
2367         (__mulshisi3): New.
2368         (__mulohisi3): New.
2369         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2370         declare.
2371         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2372         (pseudo_register_or_const_int_operand): New.
2373         (combine_pseudo_register_operand): New.
2374         (u16_operand): New.
2375         (s16_operand): New.
2376         (o16_operand): New.
2377         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2378         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2379         (any_extend, any_extend2): New code iterators.
2380         (extend_prefix): New code attribute.
2381         (mulsi3): Rewrite. Turn insn to expander.
2382         (mulhisi3): Ditto.
2383         (umulhisi3): Ditto.
2384         (usmulhisi3): New expander.
2385         (*mulsi3): New insn-and-split.
2386         (mulu<mode>si3): New insn-and-split.
2387         (muls<mode>si3): New insn-and-split.
2388         (mulohisi3): New insn-and-split.
2389         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2390         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2391         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2392         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2393         insn-and-split.
2394         (*mulsi3_call): Rewrite.
2395         (*mulhisi3_call): Rewrite.
2396         (*umulhisi3_call): Rewrite.
2397         (*usmulhisi3_call): New insn.
2398         (*muluhisi3_call): New insn.
2399         (*mulshisi3_call): New insn.
2400         (*mulohisi3_call): New insn.
2401         (extendqihi2): Use combine_pseudo_register_operand as predicate
2402         for operand 1.
2403         (extendqisi2): Ditto.
2404         (zero_extendqihi2): Ditto.
2405         (zero_extendqisi2): Ditto.
2406         (zero_extendhisi2): Ditto.
2407         (extendhisi2): Ditto. Don't early-clobber operand 0.
2408
2409 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2410
2411         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2412
2413 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2414
2415         PR tree-optimization/49471
2416         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2417         iv only when the largest type is unsigned.  Do not call
2418         lang_hooks.types.type_for_size.
2419
2420 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2421
2422         PR middle-end/45450
2423         * graphite-poly.c (apply_poly_transforms): Disable legality check
2424         after an openscop read.
2425
2426 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2427
2428         PR middle-end/47691
2429         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2430         copy_bb_and_scalar_dependences.
2431         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
2432         (graphite_copy_stmts_from_block): Update call to rename_uses.
2433         (copy_bb_and_scalar_dependences): Update call to
2434         graphite_copy_stmts_from_block.
2435         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2436
2437 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
2438
2439         PR target/49313
2440         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2441         (__ctzsi2): Result for 0 may be undefined.
2442         (__ctzhi2): Result for 0 may be undefined.
2443         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2444         (__popcountsi2): Ditto. And don't clobber r26.
2445         (__popcountdi2): Ditto. And don't clobber r27.
2446         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2447         (parityhi2): New expand.
2448         (paritysi2): New expand.
2449         (popcounthi2): New expand.
2450         (popcountsi2): New expand.
2451         (clzhi2): New expand.
2452         (clzsi2): New expand.
2453         (ctzhi2): New expand.
2454         (ctzsi2): New expand.
2455         (ffshi2): New expand.
2456         (ffssi2): New expand.
2457         (copysignsf3): New insn.
2458         (bswapsi2): New expand.
2459         (*parityhi2.libgcc): New insn.
2460         (*parityqihi2.libgcc): New insn.
2461         (*paritysihi2.libgcc): New insn.
2462         (*popcounthi2.libgcc): New insn.
2463         (*popcountsi2.libgcc): New insn.
2464         (*popcountqi2.libgcc): New insn.
2465         (*popcountqihi2.libgcc): New insn-and-split.
2466         (*clzhi2.libgcc): New insn.
2467         (*clzsihi2.libgcc): New insn.
2468         (*ctzhi2.libgcc): New insn.
2469         (*ctzsihi2.libgcc): New insn.
2470         (*ffshi2.libgcc): New insn.
2471         (*ffssihi2.libgcc): New insn.
2472         (*bswapsi2.libgcc): New insn.
2473
2474 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2475
2476         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2477         the mode of symbolic_opreand RTXes.
2478
2479 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2480
2481         * config/i386/predicates.md (x86_64_movabs_operand): Return false
2482         for pic_32bit_operand RTXes.
2483         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2484         in DImode.
2485
2486 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2487
2488         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2489         for 32-bit, too.
2490         (ix86_handle_abi_attribute): Allow function attributes
2491         ms_abi/sysv_abi in 32-bit mode, too.
2492         * doc/extend.texi: Adjust attribute documentation.
2493
2494         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2495         expression handling.
2496         (and_var_with_comparison_1): Likewise.
2497
2498 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
2499
2500         * params.h (ALLOW_STORE_DATA_RACES): New.
2501         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2502         * Makefile.in (expr.o): Depend on PARAMS_H.
2503         * machmode.h (get_best_mode): Add argument.
2504         * fold-const.c (optimize_bit_field_compare): Add argument to
2505         get_best_mode.
2506         (fold_truthop): Same.
2507         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2508         * expr.c (emit_group_store): Same.
2509         (copy_blkmode_from_reg): Same.
2510         (write_complex_part): Same.
2511         (optimize_bitfield_assignment_op): Add argument.
2512         Add argument to get_best_mode.
2513         (get_bit_range): New.
2514         (expand_assignment): Calculate maxbits and pass it down accordingly.
2515         (store_field): New argument.
2516         (expand_expr_real_2): New argument to store_field.  Include params.h.
2517         * expr.h (store_bit_field): New argument.
2518         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2519         into account maxbits.
2520         * calls.c (store_unaligned_arguments_into_pseudos): New argument
2521         to store_bit_field.
2522         * expmed.c (store_bit_field_1): New argument.  Use it.
2523         (store_bit_field): Same.
2524         (store_fixed_bit_field): Same.
2525         (store_split_bit_field): Same.
2526         (extract_bit_field_1): Pass new argument to get_best_mode.
2527         (extract_bit_field): Same.
2528         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2529         * doc/invoke.texi: Document parameter allow-store-data-races.
2530
2531 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
2532
2533         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2534
2535 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2536
2537         * tree-vrp.c (extract_range_from_binary_expr): Remove
2538         TRUTH-binary cases and add new bitwise-cases.
2539         (extract_range_from_assignment): Likewise.
2540         (register_edge_assert_for_1): Likeiwise.
2541         (register_edge_assert_for): Likewise.
2542         (simplify_truth_ops_using_ranges): Likewise.
2543         (simplify_stmt_using_ranges): Likewise.
2544
2545 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2546
2547         PR target/47372
2548         * config/i386/i386.c (ix86_delegitimize_address): Call
2549         simplify_gen_subreg for PIC with mode of x only if modes of
2550         x and orig_x are different.
2551
2552 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
2553
2554         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2555         to GC allocated copy of the string.
2556         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2557         before .debug_line, not after it.
2558
2559 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2560
2561         PR middle-end/47046
2562         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2563         evolution_function_is_affine_p on CHREC_RIGHT.
2564
2565 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2566
2567         * tree-data-ref.c (max_stmt_executions_tree): Do not call
2568         lang_hooks.types.type_for_size.
2569
2570 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2571
2572         PR middle-end/47653
2573         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2574         loops using wrapping semantics.
2575
2576 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2577
2578         PR middle-end/48805
2579         * tree-scalar-evolution.c (instantiate_scev_r): Return
2580         chrec_dont_know for ADDR_EXPR.
2581
2582 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2583             H.J. Lu  <hongjiu.lu@intel.com>
2584
2585         PR target/47369
2586         PR target/49853
2587         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2588         if legitimize_tls_address returned operand in wrong mode. Allow
2589         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
2590         if legitimize_pic_address returned operand in wrong mode.
2591
2592 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2593
2594         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2595         return false for invariants.
2596
2597 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2598
2599         * config/i386/i386.md (add->lea splitter): Implement using SWI
2600         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
2601         (add->lea zext splitter): Change operand 2 predicate to
2602         x86_64_nonmemory_operand.
2603
2604 2011-07-26  Richard Guenther  <rguenther@suse.de>
2605
2606         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2607         frequency makes everything hot.
2608
2609 2011-07-26  Richard Guenther  <rguenther@suse.de>
2610
2611         PR tree-optimization/49840
2612         * tree-vrp.c (range_fits_type_p): Properly handle full
2613         double-int precision.
2614
2615 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2616
2617         PR bootstrap/49786
2618         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2619         counts.
2620         (update_specialized_profile): Likewise.
2621
2622 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2623             H.J. Lu  <hongjiu.lu@intel.com>
2624
2625         PR target/47381
2626         PR target/49832
2627         PR target/49833
2628         * config/i386/i386.md (i): Change SImode attribute to "e".
2629         (g): Change SImode attribute to "rme".
2630         (di): Change SImode attribute to "nF".
2631         (general_operand): Change SImode attribute to x86_64_general_operand.
2632         (general_szext_operand): Change SImode attribute to
2633         x86_64_szext_general_operand.
2634         (immediate_operand): Change SImode attribute to
2635         x86_64_immediate_operand.
2636         (nonmemory_operand): Change SImode attribute to
2637         x86_64_nonmemory_operand.
2638         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2639         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
2640         (*lea_1): Use SWI48 mode iterator.
2641         (*lea_1_zext): New insn pattern.
2642         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2643         (*bt<mode>): Ditto.
2644         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2645         Update operand constraints.
2646         (addsi_1_zext): Ditto.
2647         (*add<mode>2): Ditto.
2648         (*addsi_3_zext): Ditto.
2649         (*subsi_1_zext): Ditto.
2650         (*subsi_2_zext): Ditto.
2651         (*subsi_3_zext): Ditto.
2652         (*addsi3_carry_zext): Ditto.
2653         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2654         (*mulsi3_1_zext): Ditto.
2655         (*andsi_1): Ditto.
2656         (*andsi_1_zext): Ditto.
2657         (*andsi_2_zext): Ditto.
2658         (*<any_or:code>si_1_zext): Ditto.
2659         (*<any_or:code>si_2_zext): Ditto.
2660         (*test<mode>_1): Use <general_operand> predicate for operand 1.
2661         (*and<mode>_2): Ditto.
2662         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
2663         (add->lea splitter): Check operand modes in insn constraint.  Extend
2664         operands less than SImode wide to SImode.
2665         (add->lea zext splitter): Do not extend input operands to DImode.
2666         (*lea_general_1): Handle only QImode and HImode operands.
2667         (*lea_general_2): Ditto.
2668         (*lea_general_3): Ditto.
2669         (*lea_general_1_zext): Remove.
2670         (*lea_general_2_zext): Ditto.
2671         (*lea_general_3_zext): Ditto.
2672         (*lea_general_4): Check operand modes in insn constraint.  Extend
2673         operands less than SImode wide to SImode.
2674         (ashift->lea splitter): Ditto.
2675         * config/i386/i386.c (ix86_print_operand_address): Print address
2676         registers with 'q' modifier on 64bit targets.
2677         * config/i386/predicates.md (pic_32bit_opreand): Define as special
2678         predicate.  Reject non-SI and non-DI modes.
2679
2680 2011-07-25  Andrew Pinski  <apinski@cavium.com>
2681
2682         PR tree-opt/49671
2683         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2684         TREE_THIS_NOTRAP into the inner most MEM_REF.
2685         Always copy TREE_THIS_VOLATILE.
2686         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2687         arguments are not volatile references.
2688
2689 2011-07-25  Richard Henderson  <rth@redhat.com>
2690
2691         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2692         * final.c (final_scan_insn): Don't test for it.
2693         (rest_of_clean_state): Likewise.
2694
2695 2011-07-25  Richard Henderson  <rth@redhat.com>
2696
2697         PR debug/49841
2698         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2699         (emit_frame_save): Likewise.
2700         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2701         insn onto a dummy blockage insn after the join label.
2702
2703 2011-07-25  Richard Henderson  <rth@redhat.com>
2704
2705         * dwarf2cfi.c (dw_trace_info): Add ID member.
2706         (get_trace_index): Remove.  Change users to use ID member.
2707         (before_next_cfi_note): New.
2708         (connect_traces): Remove unreachable traces before the main loop.
2709         Look across one trace and generate remember/restore_state if needed.
2710
2711 2011-07-25  Richard Henderson  <rth@redhat.com>
2712
2713         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2714
2715 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
2716
2717         * genattr.c (write_upcase, gen_attr <enum definition writing>):
2718         Move to ...
2719         * genattr-common.c ... here.
2720         (main): Call gen_attr.
2721         * optc-gen.awk: Make generated program include insn-attr-common.h .
2722         * Makefile.in (oprions.o): Depend on insn-attr-common.h
2723
2724 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2725
2726         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2727         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2728         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
2729         m32c_print_operand, m32c_print_operand_address): Remove.
2730         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
2731         Change return type to bool. Change argument type to bool.
2732         (m32c_print_operand, m32c_print_operand_address): Make static.
2733         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2734         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2735
2736 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2737
2738         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2739         attributes): Document mmap.
2740
2741 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
2742
2743         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
2744         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
2745         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
2746         mmix_print_operand, mmix_print_operand_address): Remove.
2747         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
2748         Change return type to bool. Change argument type to bool.
2749         (mmix_print_operand, mmix_print_operand_address): Make static.
2750         (mmix_intval, mmix_output_condition): Change 'x' argument type
2751         to const_rtx.
2752         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
2753         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2754
2755 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
2756
2757         PR target/39386
2758         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
2759         shift counter for x << x and x >> x shifts.
2760
2761 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2762
2763         PR target/47124
2764         * config.gcc: Reject *-*-solaris2 configuration.
2765
2766 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
2767
2768         PR tree-optimization/49809
2769         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
2770         gimple_get_lhs instead of gimple_assign_lhs.
2771
2772 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2773
2774         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
2775
2776 2011-07-25  Richard Guenther  <rguenther@suse.de>
2777
2778         PR tree-optimization/49822
2779         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
2780         more.  Make sure to preserve stmts with side-effects.  Properly
2781         handle virtual defs, follow a longer def chain.
2782
2783 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
2784
2785         PR plugins/45348
2786         PR plugins/48425
2787         PR plugins/46577
2788         * Makefile.in: Do not flatten c-family directory when installing
2789         plugin headers.
2790
2791 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
2792
2793         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
2794         original nodes if we are dealing with virtual clones.
2795
2796 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
2797
2798         * common/config/c6x/c6x-common.c: New file.
2799
2800 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
2801
2802         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
2803
2804 2011-07-25  Richard Guenther  <rguenther@suse.de>
2805
2806         PR tree-optimization/49715
2807         * tree-vrp.c: Include expr.h and optabs.h.
2808         (range_fits_type_): New function.
2809         (simplify_float_conversion_using_ranges): Likewise.
2810         (simplify_stmt_using_ranges): Call it.
2811         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
2812         * optabs.c (can_float_p): Export.
2813         * optabs.h (can_float_p): Declare.
2814
2815 2011-07-25  Richard Guenther  <rguenther@suse.de>
2816
2817         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
2818         (get_value_range): For out-of-range SSA names or names created
2819         after propagation return a read-only varying range.
2820         (dump_all_value_ranges): Adjust.
2821         (vrp_initialize): Likewise.
2822         (vrp_finalize): Likewise.
2823
2824 2011-07-24  Richard Henderson  <rth@redhat.com>
2825
2826         PR debug/49831
2827         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
2828         them entirely.
2829
2830 2011-07-24  Richard Henderson  <rth@redhat.com>
2831
2832         PR debug/49825
2833         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
2834         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
2835
2836 2011-07-24  Richard Henderson  <rth@redhat.com>
2837
2838         PR debug/49827
2839         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
2840
2841 2011-07-24  Richard Henderson  <rth@redhat.com>
2842
2843         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
2844         Zero args_size for abnormal edges.  Adjust all callers.
2845
2846 2011-07-24  Richard Henderson  <rth@redhat.com>
2847
2848         PR debug/49825
2849         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
2850
2851 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
2852
2853         PR bootstrap/49835
2854         * collect2.c (demangle_flag): Removed.
2855
2856 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
2857
2858         * configure.ac (demangler_in_ld): Default to yes.
2859         * configure: Regenerated.
2860         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
2861         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
2862         --no-demangle options straight through to ld.  When
2863         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
2864         way that has the intended effect on Windows.
2865
2866 2011-07-23  Richard Henderson  <rth@redhat.com>
2867
2868         * dwarf2cfi.c: Include basic-block.h.
2869         (dw_label_info): Remove.
2870         (trace_work_list, trace_index): New.
2871         (remember_row, emit_cfa_remember): Remove.
2872         (dw_trace_info_hash, dw_trace_info_eq): New.
2873         (get_trace_index, get_trace_info): New.
2874         (save_point_p): New.
2875         (free_cfi_row): Remove.
2876         (add_cfi): Do not emit DW_CFA_remember_state.
2877         (cfa_row_equal_p): New.
2878         (barrier_args_size): Remove.
2879         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
2880         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
2881         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
2882         (dwarf2out_cfi_begin_epilogue): Remove.
2883         (dwarf2out_frame_debug_restore_state): Remove.
2884         (connect_traces, create_pseudo_cfg): New.
2885         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
2886         * Makefile.in (dwarf2cfi.o): Update.
2887
2888 2011-07-23  Richard Henderson  <rth@redhat.com>
2889
2890         * dwarf2cfi.c (dw_trace_info): New.
2891         (dw_label_info): New.
2892         (cie_return_save): New.
2893         (cur_trace): New.
2894         (queued_args_size): Rename from args_size.  Update all users.
2895         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
2896         (def_cfa_1): Use cur_trace instead of cfa_*.
2897         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
2898         (clobbers_queued_reg_save, reg_saved_in): Likewise.
2899         (dwarf2out_frame_debug_expr): Likewise.
2900         (create_cie_data): Split out from ...
2901         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
2902
2903 2011-07-23  Richard Henderson  <rth@redhat.com>
2904
2905         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
2906         Update all users to match.
2907         (execute_dwarf2_frame): Free reg_saved_in_data.
2908
2909 2011-07-23  Richard Henderson  <rth@redhat.com>
2910
2911         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
2912         (queued_reg_saves): Don't GTY.  Change to a VEC.
2913         (queue_reg_save): Update to match.
2914         (dwarf2out_flush_queued_reg_saves): Likewise.
2915         (clobbers_queued_reg_save): Likewise.
2916         (reg_saved_in): Likewise.
2917         (execute_dwarf2_frame): Free queued_reg_saves.
2918
2919 2011-07-23  Richard Henderson  <rth@redhat.com>
2920
2921         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
2922
2923 2011-07-23  Richard Henderson  <rth@redhat.com>
2924
2925         * dwarf2cfi.c (add_cfi_args_size): Split out from...
2926         (dwarf2out_args_size): ... here.
2927         (add_cfi_restore): Split out from ...
2928         (dwarf2out_frame_debug_cfa_restore): ... here.
2929         (def_cfa_0): Split out from ...
2930         (def_cfa_1): ... here.
2931         (cfi_oprnd_equal_p, cfi_equal_p): New.
2932         (change_cfi_row): New.
2933         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
2934         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
2935         (output_cfis): Remove.
2936         * dwarf2out.c (output_fde): Simplify output_cfi loop.
2937         (dwarf2out_switch_text_section): Don't call output_cfis.
2938         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
2939         * dwarf2out.h: Update decls.
2940         (enum dw_val_class): Add dw_val_class_none.
2941
2942 2011-07-23  Richard Henderson  <rth@redhat.com>
2943
2944         * dwarf2cfi.c (update_row_reg_save): New.
2945         (dwarf2out_frame_debug_cfa_expression): Use it.
2946         (dwarf2out_frame_debug_cfa_restore): Likewise.
2947         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
2948
2949 2011-07-23  Richard Henderson  <rth@redhat.com>
2950
2951         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
2952
2953 2011-07-23  Richard Henderson  <rth@redhat.com>
2954
2955         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
2956         (cie_cfi_row): New.
2957         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
2958         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
2959         (cur_row, remember_row): New.
2960         (def_cfa_1): Use cur_row instead of the old_* variables.
2961         (dwarf2out_frame_debug_restore_state): Similarly.
2962         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
2963         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
2964         (dwarf2out_frame_debug_adjust_cfa): Likewise.
2965         (dwarf2out_frame_debug_cfa_offset): Likewise.
2966         (dwarf2out_frame_debug_expr): Likewise.
2967         (execute_dwarf2_frame): Set up cur_row.
2968         * dwarf2out.h (struct cfa_loc): Mark for GTY.
2969
2970 2011-07-23  Richard Henderson  <rth@redhat.com>
2971
2972         * basic-block.h (EDGE_PRESERVE): New.
2973         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
2974         * bb-reorder.c: Include except.h.
2975         (fix_up_crossing_landing_pad): New.
2976         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
2977         landing pads in the right partition.  Duplicate as necessary.
2978         (partition_hot_cold_basic_blocks): Fix up DF info after
2979         duplicating landing pads.
2980         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
2981         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
2982         is set properly.  Validate that EH edges are not CROSSING.
2983         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
2984         (dw2_build_landing_pads): ... here.
2985         (convert_to_eh_region_ranges): Remove code to fixup crossing
2986         landing pads.
2987         * except.h (expand_dw2_landing_pad_for_region): Declare.
2988         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
2989
2990 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
2991
2992         PR target/49816
2993         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
2994
2995 2011-07-22  Jason Merrill  <jason@redhat.com>
2996
2997         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
2998
2999 2011-07-22  Richard Henderson  <rth@redhat.com>
3000
3001         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
3002
3003 2011-07-22  Richard Henderson  <rth@redhat.com>
3004
3005         * jump.c (maybe_propagate_label_ref): Split out of...
3006         (mark_all_labels): ... here.  Do not attempt label_ref
3007         propagation while in cfglayout mode.
3008
3009 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
3010
3011         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
3012         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
3013         (dwarf_attr_name): Handle DW_AT_GNU_macros.
3014         (dwarf2out_define): If the vector is empty and
3015         lineno is 0, emit a dummy entry first.
3016         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
3017         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
3018         optimize_macinfo_range): New functions.
3019         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
3020         mergeable, optimize longer strings using
3021         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
3022         optimize longer sequences of define/undef ops from headers
3023         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
3024         emit a section headers.
3025         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
3026         and macinfo_section_label to DEBUG_MACRO_SECTION
3027         resp. DEBUG_MACRO_SECTION_LABEL.
3028         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
3029         instead of DW_AT_macro_info.
3030
3031         PR other/32998
3032         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
3033         options.
3034         * dwarf2out.c: Include opts.h.
3035         (dchar_p): New typedef.  Define heap VEC for it.
3036         (producer_string): New variable.
3037         (gen_producer_string): New function.
3038         (gen_compile_unit_die): Use it.
3039         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
3040         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
3041         * doc/invoke.texi: Document -grecord-gcc-switches and
3042         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
3043         to -frecord-gcc-switches description.
3044
3045 2011-07-22  Jason Merrill  <jason@redhat.com>
3046
3047         PR c++/30112
3048         * c-decl.c (c_linkage_bindings): Define.
3049
3050 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3051
3052         PR debug/49815
3053         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
3054
3055 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
3056
3057         * config/i386/i386.c (ix86_option_override_internal): Disallow
3058         MS ABI in x32 mode.
3059         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
3060         only for TARGET_LP64.
3061         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3062
3063 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3064
3065         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
3066         avoid warnings when GCC is built with a C++ compiler.
3067
3068 2011-07-22  Martin Jambor  <mjambor@suse.cz>
3069
3070         PR lto/49796
3071         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
3072         if decl node is in another partition, call cgraph_get_node only once.
3073
3074 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
3075
3076         * config.gcc (x86_64-*-linux*): Set
3077         default_gnu_indirect_function to yes.
3078
3079 2011-07-22  Richard Guenther  <rguenther@suse.de>
3080
3081         PR tree-optimization/45819
3082         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
3083         preserve volatile and notrap flags.
3084
3085 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3086             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3087
3088         PR bootstrap/49794
3089         * configure.ac: Test AM_ICONV with CXX.
3090         * configure: Regenerate.
3091         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
3092
3093 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3094
3095         PR bootstrap/49797
3096         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
3097         (set_cloog_options): Use it.
3098
3099 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
3100
3101         PR c++/49756
3102         * gcc.c (main): Call stack_limit_increase (64MB).
3103         * toplev.c (toplev_main): Likewise.
3104
3105 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3106
3107         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
3108         instead of force_reg.
3109
3110 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3111
3112         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
3113         needed and use force_reg after convert.
3114         (ix86_expand_call): Likewise.
3115         (ix86_expand_special_args_builtin): Likewise.
3116         (ix86_expand_builtin): Likewise.
3117
3118 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3119
3120         PR middle-end/47654
3121         PR middle-end/49649
3122         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
3123         in parameter.  Initialize v1 and v2 based on the values returned
3124         by clast_name_to_lb_ub.
3125         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
3126         values.
3127         (type_for_clast_bin): Same.
3128         (type_for_clast_expr): Same.
3129         (type_for_clast_eq): Update calls to type_for_clast_expr.
3130         (type_for_clast_for): Same.
3131         (build_iv_mapping): Same.
3132         * graphite-ppl.h (value_min): New.
3133
3134 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3135
3136         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
3137         types whenever possible.
3138
3139 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3140
3141         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
3142         and ub fields.
3143         (new_clast_name_index): Add lb and ub parameters.
3144         (free_clast_name_index): New.
3145         (clast_name_to_lb_ub): New.
3146         (save_clast_name_index): Add lb and ub parameters.
3147         (compute_bounds_for_param): New.
3148         (type_for_level): Removed.
3149         (type_for_clast_for): Removed level parameter.  Do not call
3150         type_for_level.
3151         (graphite_create_new_loop): Store the lb and ub for the clast_name
3152         of the iterator of the loop that has been generated.
3153         (graphite_create_new_loop_guard): Remove parameter level.
3154         (create_params_index): Store the lb and ub of each parameter.
3155         (gloog): Use free_clast_name_index.  Pass to create_params_index
3156         the current scop.
3157
3158 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3159
3160         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
3161         (max_precision_type): Inline max_signed_precision_type.
3162         (type_for_clast_red): Use max_precision_type.
3163         (type_for_clast_bin): Same.
3164         (type_for_clast_for): Same.
3165
3166 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3167
3168         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
3169         type_for_interval.
3170         (gcc_type_for_value): Renamed type_for_value.
3171         (gcc_type_for_clast_term): Renamed type_for_clast_term.
3172         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
3173         (gcc_type_for_clast_red): Renamed type_for_clast_red.
3174         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
3175         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
3176         (graphite_translate_clast_equation): Update calls.
3177         (compute_type_for_level): Renamed type_for_level.
3178         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
3179         (build_iv_mapping): Update calls.
3180         (graphite_create_new_loop_guard): Same.
3181
3182 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3183
3184         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
3185         comment.
3186
3187 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3188
3189         * graphite-clast-to-gimple.c (struct ivs_params): New.
3190         (clast_name_to_gcc): Use ivs_params to pass around parameters.
3191         (clast_to_gcc_expression): Same.
3192         (clast_to_gcc_expression_red): Same.
3193         (gcc_type_for_clast_term): Same.
3194         (gcc_type_for_clast_expr): Same.
3195         (gcc_type_for_clast_red): Same.
3196         (gcc_type_for_clast_bin): Same.
3197         (gcc_type_for_clast_eq): Same.
3198         (graphite_translate_clast_equation): Same.
3199         (graphite_create_guard_cond_expr): Same.
3200         (graphite_create_new_guard): Same.
3201         (graphite_create_new_loop): Same.
3202         (build_iv_mapping): Same.
3203         (translate_clast_user): Same.
3204         (graphite_create_new_loop_guard): Same.
3205         (translate_clast): Same.
3206         (translate_clast_for_loop): Same.
3207         (translate_clast_for): Same.
3208         (translate_clast_guard): Same.
3209         (initialize_cloog_names): Fix typo.
3210         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
3211
3212 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3213
3214         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
3215         (new_clast_name_index): Add level parameter.
3216         (clast_name_to_level): New.
3217         (save_clast_name_index): Add level parameter.
3218         (newivs_to_depth_to_newiv): Removed.
3219         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
3220         (graphite_create_new_loop): Add level parameter.  Pass level to
3221         save_clast_name_index.
3222         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
3223         (create_params_index): Pass level to save_clast_name_index.
3224
3225 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3226
3227         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
3228         recompute type, lb, and ub.  Get them from...
3229         (graphite_create_new_loop_guard): ...here.  Pass in parameter
3230         pointers to type, lb, and ub.
3231         (translate_clast_for_loop): Update function calls.
3232         (translate_clast_for): Same.
3233
3234 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3235
3236         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
3237         psct_dynamic_dim.
3238         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
3239         (gcc_type_for_iv_of_clast_loop): Update use of level.
3240         (gloog): Start counting nesting level from 0.
3241         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
3242         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
3243         psct_dynamic_dim on level.
3244
3245 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3246
3247         * config/i386/i386.c (ix86_legitimize_address): Convert to
3248         Pmode if needed.
3249
3250 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3251
3252         * config/i386/i386.c (function_value_64): Always return pointers
3253         in Pmode.
3254         (ix86_promote_function_mode): New.
3255         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
3256
3257 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3258
3259         PR tree-optimization/49749
3260         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
3261         remove no-longer-used maxrank variable.
3262
3263 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
3264
3265         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
3266
3267 2011-07-21  Jason Merrill  <jason@redhat.com>
3268
3269         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
3270         * recog.h (struct insn_data_d): Check it instead of
3271         HAVE_DESIGNATED_INITIALIZERS.
3272         * genoutput.c (output_insn_data): Likewise.
3273
3274 2011-07-21  Richard Guenther  <rguenther@suse.de>
3275
3276         PR tree-optimization/49770
3277         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
3278         valueized any operand.  Renamed from ...
3279         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
3280         (valueize_shared_reference_ops_from_ref): Return whether we
3281         valueized any operand.
3282         (vn_reference_lookup): Only when we valueized any operand
3283         use the valueized reference for alias analysis.  Do not preserve
3284         the original reference tree in this case.
3285
3286 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
3287
3288         * config/i386/i386.c (ix86_decompose_address): Reject all but
3289         register operands and subregs of DImode hard registers in index.
3290
3291 2011-07-21  Kai Tietz  <ktietz@redhat.com>
3292
3293         * fold-const.c (fold_unary_loc): Preserve indirect
3294         comparison cast to none-boolean type.
3295         * tree-ssa.c (useless_type_conversion_p): Preserve cast
3296         from/to boolean-type.
3297         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
3298         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
3299         * tree-cfg.c (verify_gimple_comparison): Check result
3300         type of comparison expression.
3301         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
3302         of condition result and disallow type-cast sinking into comparison.
3303
3304 2011-07-21  Richard Guenther  <rguenther@suse.de>
3305
3306         * tree-ssa-forwprop.c (combine_conversions): Return whether
3307         we have to run cfg-cleanup.  Properly remove dead stmts.
3308         (ssa_forward_propagate_and_combine): Adjust.
3309
3310 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
3311
3312         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
3313
3314 2011-07-21  Kai Tietz  <ktietz@redhat.com>
3315
3316         * tree-ssa-propagate.c (substitute_and_fold): Use
3317         do_dce flag to deside, if BB's statements are scanned
3318         in last to first, or first to last order.
3319
3320 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
3321
3322         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
3323
3324 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
3325             Uros Bizjak  <ubizjak@gmail.com>
3326             Richard Henderson  <rth@redhat.com>
3327
3328         * config/i386/constraints.md (w): New.
3329
3330         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
3331         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
3332
3333         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
3334         instead of TARGET_64BIT.
3335
3336         * config/i386/i386.md (indirect_jump): Replace
3337         nonimmediate_operand with indirect_branch_operand.
3338         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
3339         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
3340         Convert operand 0 to Pmode for x32 if not PIC.
3341         (*tablejump_1): Replace nonimmediate_operand with
3342         indirect_branch_operand.  Replace constraint "m" with "w".
3343         (*call_vzeroupper): Replace constraint "m" with "w".
3344         (*call): Likewise.
3345         (*call_rex64_ms_sysv_vzeroupper): Likewise.
3346         (*call_rex64_ms_sysv): Likewise.
3347         (*call_value_vzeroupper): Likewise.
3348         (*call_value): Likewise.
3349         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
3350         (*call_value_rex64_ms_sysv): Likewise.
3351         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
3352
3353         * config/i386/predicates.md (indirect_branch_operand): New.
3354         (call_insn_operand): Support x32.
3355
3356 2011-07-20  Michael Eager  <eager@eagercon.com>
3357
3358         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3359
3360 2011-07-20  Richard Henderson  <rth@redhat.com>
3361
3362         * cfg.c (dump_bb_info): Dump basic_block->flags.
3363         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3364
3365 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3366
3367         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3368         of DImode hard registers in index.
3369         (ix86_legitimate_address_p): Allow subregs of base and index to span
3370         more than a word.  Assert that subregs of base and index satisfy
3371         register_no_elim_operand predicates.  Reject addresses where
3372         base and index have different modes.
3373
3374 2011-07-20  Robert Millan  <rmh@gnu.org>
3375
3376         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3377
3378 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3379
3380         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3381         removing now-unnecessary assignment.
3382
3383 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3384
3385         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3386         memory address space to the type's address space.
3387
3388 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3389
3390         PR target/36467
3391         PR target/49687
3392         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3393         and expand appropriately if there is a CONST_INT in operand2.
3394         (usmulqihi3): New insn.
3395         (*sumulqihi3): New insn.
3396         (*osmulqihi3): New insn.
3397         (*oumulqihi3): New insn.
3398         (*muluqihi3.uconst): New insn_and_split.
3399         (*muluqihi3.sconst): New insn_and_split.
3400         (*mulsqihi3.sconst): New insn_and_split.
3401         (*mulsqihi3.uconst): New insn_and_split.
3402         (*mulsqihi3.oconst): New insn_and_split.
3403         (*ashifthi3.signx.const): New insn_and_split.
3404         (*ashifthi3.signx.const7): New insn_and_split.
3405         (*ashifthi3.zerox.const): New insn_and_split.
3406         (mulsqihi3): New insn.
3407         (muluqihi3): New insn.
3408         (muloqihi3): New insn.
3409         * config/avr/predicates.md (const_2_to_7_operand): New.
3410         (const_2_to_6_operand): New.
3411         (u8_operand): New.
3412         (s8_operand): New.
3413         (o8_operand): New.
3414         (s9_operand): New.
3415         (register_or_s9_operand): New.
3416
3417 2011-07-20  Kai Tietz  <ktietz@redhat.com>
3418
3419         * builtins.c (fold_builtin_expect): See through the cast
3420         from truthvalue_type_node to long.
3421
3422 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3423
3424         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3425         where we can use them from the standard and altivec instruction
3426         sets, instead of always using the 3 operand VSX forms that require
3427         the destination to overlap one of the inputs.
3428         (vsx_fms*): Ditto.
3429         (vsx_fnma*): Ditto.
3430         (vsx_fnms*): Ditto.
3431
3432         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3433         for DF types.
3434         (fmsdf4_fpr): Ditto.
3435         (nfmadf4_fpr): Ditto.
3436         (nfmsdf4_fpr): Ditto.
3437
3438 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
3439
3440         * genrecog.c (make_insn_sequence): Correct position numbering
3441         when filtering out match_scratch and match_dup.
3442
3443 2011-07-20  Richard Guenther  <rguenther@suse.de>
3444
3445         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3446         against already removed statements.
3447         (forward_propagate_into_comparison): Remove dead defining stmts.
3448         (forward_propagate_into_gimple_cond): Likewise.
3449         (forward_propagate_into_cond): Simplify.
3450         (ssa_forward_propagate_and_combine): Handle changed cfg from
3451         forward_propagate_into_comparison.
3452         * tree-ssa-phiopt.c (conditional_replacement): Use proper
3453         locations for newly built statements.
3454
3455 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3456
3457         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3458
3459 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3460
3461         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3462         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3463
3464 2011-07-20  Richard Guenther  <rguenther@suse.de>
3465
3466         PR middle-end/18908
3467         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3468         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3469         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
3470
3471 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
3472
3473         * config/frv/frv.c (frv_register_move_cost): Define explicitly
3474         costs for subclasses of GR_REGS.
3475
3476 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3477
3478         PR target/49780
3479         * config/i386/predicates.md (no_seg_addres_operand): No more special.
3480         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3481         of DImode hard registers in base.
3482         (ix86_legitimate_address_p): Allow SImode and DImode base and index
3483         registers.
3484
3485 2011-07-20  Richard Guenther  <rguenther@suse.de>
3486
3487         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3488         (unify_nodes): Deal with that.
3489         (solve_graph): Likewise.
3490
3491 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
3492
3493         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3494         canonicalize left operand from ZERO_EXTEND to AND.
3495
3496 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
3497
3498         * target.def (class_max_nregs): New hook.
3499         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3500         * doc/tm.texi: Regenerate.
3501         * targhooks.c (default_class_max_nregs): New function.
3502         * targhooks.h (default_class_max_nregs): Declare.
3503         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3504         x_ira_reg_class_min_nregs arrays to unsigned char.
3505         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3506         hook instead of CLASS_MAX_NREGS macro.
3507         * reginfo.c (restore_register_info): Ditto.
3508         * ira-conflicts.c (process_regs_for_copy): Use
3509         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3510         Change type rclass and aclass vars to reg_class_t.
3511         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3512         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3513         reg_class_t.
3514         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3515         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3516
3517         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3518         * config/i386/i386.c (ix86_class_max_nregs): New function.
3519         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3520         instead of CLASS_MAX_NREGS macro.
3521         (TARGET_CLASS_MAX_NREGS): Define.
3522         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3523         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3524         * config/avr/avr.c (class_max_nregs): Remove function.
3525         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3526         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3527         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3528         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3529         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3530         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3531         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3532         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3533         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3534         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3535         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3536         * config/score/score.h (CLASS_MAX_NREGS): Remove.
3537         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3538         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3539         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3540
3541 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3542
3543         * cif-code.def (OVERWRITABLE): Fix typo and move around.
3544         (TARGET_OPTIMIZATION_MISMATCH): Delete.
3545         (EH_PERSONALITY): Fix typo.
3546         (NON_CALL_EXCEPTIONS): Fix message.
3547         (OPTIMIZATION_MISMATCH): Adjust message.
3548         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3549
3550 2011-07-19  Ian Lance Taylor  <iant@google.com>
3551
3552         * doc/install.texi (Configuration): Document
3553         --enable-build-poststage1-with-cxx.
3554
3555 2011-07-19  Robert Millan  <rmh@gnu.org>
3556
3557         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
3558         (GLIBC_DYNAMIC_LINKER): Remove.
3559
3560         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
3561         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3562         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3563         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
3564         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
3565         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
3566
3567         * config/mips/linux.h: Remove everything except for ...
3568         (GLIBC_DYNAMIC_LINKER): ... this macro.
3569
3570         * config/mips/linux64.h: Remove everything except for ...
3571         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
3572         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
3573         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
3574         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
3575         (GNU_USER_LINK_EMULATIONN32): New macros.
3576
3577         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
3578         Use the new headers.
3579
3580 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3581
3582         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
3583         Add offset_known_p and size_known_p fields.
3584         (MEM_OFFSET_KNOWN_P): Update accordingly.
3585         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
3586         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
3587         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
3588         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
3589         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
3590         (init_emit_regs): Likewise.
3591
3592 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3593
3594         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
3595         (MEM_OFFSET): Change from returning an rtx to returning a
3596         HOST_WIDE_INT.
3597         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
3598         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
3599         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3600         (clear_mem_offset): Declare.
3601         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
3602         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
3603         MEM_OFFSET to get a HOST_WIDE_INT offset.
3604         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
3605         (adjust_offset_for_component_ref): Take a bool "known_p"
3606         parameter and a HOST_WIDE_INT "offset" parameter.
3607         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
3608         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
3609         than an rtx.  Use clear_mem_offset to clear the offset.
3610         * cfgcleanup.c (merge_memattrs): Likewise.
3611         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
3612         * function.c (assign_parm_find_stack_rtl): Likewise.
3613         (assign_parm_setup_stack): Likewise.
3614         * print-rtl.c (print_rtx): Likewise.
3615         * reload.c (find_reloads_subreg_address): Likewise.
3616         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
3617         * var-tracking.c (INT_MEM_OFFSET): Likewise.
3618         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
3619         (get_mem_align_offset): Likewise.
3620         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
3621         (clear_mem_offset): New function.
3622         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
3623         offset rather than an rtx.  Assume both the expressio and offset
3624         are available.
3625         (r10k_needs_protection_p_1): Update accordingly, checking the
3626         expression and offset availability here instead.
3627
3628 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3629
3630         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
3631         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
3632         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
3633         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
3634         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3635         (clear_mem_size): Declare.
3636         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
3637         (clear_mem_size): New function.
3638         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
3639         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
3640         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
3641         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
3642         to clear the size.
3643         (nonoverlapping_memrefs_p): Likewise.
3644         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
3645         (expand_builtin_init_trampoline): Likewise.
3646         * calls.c (compute_argument_addresses): Likewise.
3647         * cfgcleanup.c (merge_memattrs): Likewise.
3648         * dce.c (find_call_stack_args): Likewise.
3649         * dse.c (record_store, scan_insn): Likewise.
3650         * dwarf2out.c (dw_sra_loc_expr): Likewise.
3651         * expr.c (emit_block_move_hints): Likewise.
3652         * function.c (assign_parm_find_stack_rtl): Likewise.
3653         * print-rtl.c (print_rtx): Likewise.
3654         * reload.c (find_reloads_subreg_address): Likewise.
3655         * rtlanal.c (may_trap_p_1): Likewise.
3656         * var-tracking.c (track_expr_p): Likewise.
3657         * varasm.c (assemble_trampoline_template): Likewise.
3658         * config/arm/arm.c (arm_print_operand): Likewise.
3659         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
3660         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
3661         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
3662         (expand_constant_setmem_prologue): Likewise.
3663         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
3664         * config/rs6000/rs6000.c (expand_block_move): Likewise.
3665         (adjacent_mem_locations): Likewise.
3666         * config/s390/s390.c (s390_expand_setmem): Likewise.
3667         (s390_expand_insv): Likewise.
3668         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
3669         (*extendqi<mode>2_short_displ): Likewise.
3670         * config/sh/sh.c (expand_block_move): Likewise.
3671         * config/sh/sh.md (extv, extzv): Likewise.
3672
3673 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3674
3675         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
3676         (mem_attrs_htab_eq): ...here.
3677         (find_mem_attrs): Replace with...
3678         (set_mem_attrs): ...this function.  Take a mem_attrs structure
3679         rather than individual fields.
3680         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3681         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3682         (set_mem_size, change_address, adjust_address_1, offset_address)
3683         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3684         Update accordingly.
3685
3686 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
3687
3688         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
3689         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
3690         Provide a dummy definition of MEM_ADDR_SPACE for generators.
3691         (target_rtl): Add x_mode_mem_attrs.
3692         (mode_mem_attrs): New macro.
3693         (get_mem_attrs): New function.
3694         * emit-rtl.c (get_mem_attrs): Rename to...
3695         (find_mem_attrs): ...this.
3696         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
3697         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
3698         (set_mem_size, change_address, adjust_address_1, offset_address)
3699         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
3700         Update accordingly.
3701         (init_emit_regs): Initialize mode_mem_attrs.
3702
3703 2011-07-19  Richard Guenther  <rguenther@suse.de>
3704
3705         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
3706         TRUTH_*_EXPR handling.
3707         * tree-ssa-operands.c (get_expr_operands): Likewise.
3708         * tree-ssa-pre.c (fully_constant_expression): Likewise.
3709         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
3710         Likewise.
3711         (is_and_or_or): Likewise.
3712         (is_norm_cond_subset_of): Likewise.
3713
3714 2011-07-19  Richard Guenther  <rguenther@suse.de>
3715
3716         * tree.h (fold_build_pointer_plus_loc): New helper function.
3717         (fold_build_pointer_plus_hwi_loc): Likewise.
3718         (fold_build_pointer_plus): Define.
3719         (fold_build_pointer_plus_hwi): Likewise.
3720         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
3721         (fold_builtin_memory_op): Likewise.
3722         (fold_builtin_stpcpy): Likewise.
3723         (fold_builtin_memchr): Likewise.
3724         (fold_builtin_strstr): Likewise.
3725         (fold_builtin_strchr): Likewise.
3726         (fold_builtin_strrchr): Likewise.
3727         (fold_builtin_strpbrk): Likewise.
3728         (fold_builtin_strcat): Likewise.
3729         (expand_builtin_memory_chk): Likewise.
3730         (fold_builtin_memory_chk): Likewise.
3731         * c-typeck.c (build_unary_op): Likewise.
3732         * cgraphunit.c (thunk_adjust): Likewise.
3733         * fold-const.c (build_range_check): Likewise.
3734         (fold_binary_loc): Likewise.
3735         * omp-low.c (extract_omp_for_data): Likewise.
3736         (expand_omp_for_generic): Likewise.
3737         (expand_omp_for_static_nochunk): Likewise.
3738         (expand_omp_for_static_chunk): Likewise.
3739         * tree-affine.c (add_elt_to_tree): Likewise.
3740         * tree-data-ref.c (split_constant_offset_1): Likewise.
3741         * tree-loop-distribution.c (generate_memset_zero): Likewise.
3742         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
3743         * tree-predcom.c (ref_at_iteration): Likewise.
3744         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3745         (add_to_parts): Likewise.
3746         (create_mem_ref): Likewise.
3747         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
3748         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
3749         (number_of_iterations_le): Likewise.
3750         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
3751         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
3752         (vect_create_addr_base_for_vector_ref): Likewise.
3753         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
3754         (vect_create_cond_for_alias_checks): Likewise.
3755         * tree-vrp.c (extract_range_from_assert): Likewise.
3756         * config/alpha/alpha.c (alpha_va_start): Likewise.
3757         (alpha_gimplify_va_arg_1): Likewise.
3758         * config/i386/i386.c (ix86_va_start): Likewise.
3759         (ix86_gimplify_va_arg): Likewise.
3760         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
3761         * config/mep/mep.c (mep_expand_va_start): Likewise.
3762         (mep_gimplify_va_arg_expr): Likewise.
3763         * config/mips/mips.c (mips_va_start): Likewise.
3764         (mips_gimplify_va_arg_expr): Likewise.
3765         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
3766         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
3767         (rs6000_gimplify_va_arg): Likewise.
3768         * config/s390/s390.c (s390_va_start): Likewise.
3769         (s390_gimplify_va_arg): Likewise.
3770         * config/sh/sh.c (sh_va_start): Likewise.
3771         (sh_gimplify_va_arg_expr): Likewise.
3772         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
3773         * config/spu/spu.c (spu_va_start): Likewise.
3774         (spu_gimplify_va_arg_expr): Likewise.
3775         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
3776         Likewise.
3777         (xstormy16_gimplify_va_arg_expr): Likewise.
3778         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
3779         (xtensa_gimplify_va_arg_expr): Likewise.
3780
3781 2011-07-19  Richard Guenther  <rguenther@suse.de>
3782
3783         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
3784         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
3785         handling.
3786
3787         PR middle-end/18908
3788         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
3789         result of BIT_*_EXPR to bitfield precision.
3790
3791 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
3792
3793         PR tree-optimization/49742
3794         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
3795         as a potential write.
3796
3797 2011-07-19  Richard Guenther  <rguenther@suse.de>
3798
3799         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
3800         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
3801         (forward_propagate_comparison): Simplify, remove obsolete code.
3802
3803 2011-07-19  Richard Guenther  <rguenther@suse.de>
3804
3805         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
3806         BIT_XOR_EXPR, same as the RTL expander does.
3807         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
3808         (verify_gimple_assign_unary): Likewise.
3809         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
3810         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
3811         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
3812
3813 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
3814
3815         PR tree-optimization/49768
3816         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
3817         if offset is smaller than bitoffset, but offset+size is bigger
3818         than bitoffset.
3819
3820 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
3821
3822         PR tree-optimization/49771
3823         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
3824         zero step, set segment length to the size of the data-ref's type.
3825
3826 2011-07-18  Martin Jambor  <mjambor@suse.cz>
3827
3828         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
3829         comments.
3830         (ipcp_values_pool): Declare.
3831         (ipcp_sources_pool): Likewise.
3832         (ipcp_lattice): Changed to forward declaration.
3833         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
3834         cannot_devirtualize.
3835         (ipa_node_params): New fields descriptors, lattices, known_vals,
3836         clone_for_all_contexts and node dead, removed fields params and
3837         count_scale.
3838         (ipa_set_param_count): Removed.
3839         (ipa_get_param_count): Made to work with descriptors vector.
3840         (ipa_get_param): Updated.
3841         (ipa_param_cannot_devirtualize_p): Removed.
3842         (ipa_param_types_vec_empty): Likewise.
3843         (ipa_set_param_used): New function.
3844         (ipa_get_param_used): Updated to use descriptors vector.
3845         (ipa_func_list): Removed.
3846         (ipa_init_func_list): Removed declaration.
3847         (ipa_push_func_to_list_1): Likewise.
3848         (ipa_pop_func_from_list): Likewise.
3849         (ipa_push_func_to_list): Removed.
3850         (ipa_lattice_from_jfunc): Remove declaration.
3851         (ipa_get_jf_pass_through_result): Declare.
3852         (ipa_get_jf_ancestor_result): Likewise.
3853         (ipa_value_from_jfunc): Likewise.
3854         (ipa_get_lattice): Update.
3855         (ipa_lat_is_single_const): New function.
3856         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
3857         (ipa_init_func_list): Likewise.
3858         (ipa_pop_func_from_list): Likewise.
3859         (ipa_get_param_decl_index): Fix coding style.
3860         (count_formal_params): Removed.
3861         (count_formal_params_1): Renamed to count_formal_params.
3862         (ipa_populate_param_decls): Update to use descriptors vector.
3863         (ipa_initialize_node_params): Likewise.
3864         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
3865         (ipa_analyze_params_uses): Likewise.
3866         (ipa_free_node_params_substructures): Likewise and free also lattices
3867         and known values.
3868         (duplicate_array): Removed.
3869         (ipa_edge_duplication_hook): Add the new edge to the list of edge
3870         clones.
3871         (ipa_node_duplication_hook): Update to use new lattices.
3872         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
3873         (ipa_free_all_structures_after_iinln): Likewise.
3874         (ipa_write_node_info): Update to use new lattices.
3875         (ipa_read_node_info): Likewise.
3876         (ipa_get_jf_pass_through_result): New function.
3877         (ipa_get_jf_ancestor_result): Likewise.
3878         (ipa_value_from_jfunc): Likewise.
3879         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
3880         * ipa-cp.c: Reimplemented.
3881         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
3882         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
3883         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
3884         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
3885         * doc/invoke.texi (devirt-type-list-size): Removed description.
3886         (ipa-cp-value-list-size): Added description.
3887
3888 2011-07-18  Richard Henderson  <rth@redhat.com>
3889
3890         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
3891         before calling create_basic_block.
3892
3893 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
3894
3895         PR middle-end/49675
3896         * tree.c (build_common_builtin_nodes): Register
3897         __builtin_return_address, __cyg_profile_func_enter
3898         and __cyg_profile_func_exit.
3899
3900 2011-07-18  Richard Henderson  <rth@redhat.com>
3901
3902         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
3903         (add_labels_and_missing_jumps): ... here.
3904         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
3905
3906 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
3907
3908         PR target/47744
3909         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3910         of DImode hard registers in PLUS address chains.
3911
3912 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3913
3914         PR bootstrap/49769
3915         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
3916         (alpha*-*-freebsd*): Likewise.
3917         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
3918         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
3919         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
3920         crtprec80.o, crtfastmath.o to extra_parts for all targets.
3921         (ia64*-*-elf*): Remove extra_parts.
3922         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
3923         (sparc64-*-linux*): Likewise.
3924         (sparc64-*-freebsd*): Likewise.
3925
3926         Revert:
3927         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
3928         (ia64*-*-linux*): Likewise.
3929         (mips64*-*-linux*): Likewise.
3930         (mips*-*-linux*): Likewise.
3931
3932 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
3933
3934         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
3935
3936 2011-07-18  Richard Guenther  <rguenther@suse.de>
3937
3938         * gimplify.c (gimplify_expr): Use input_location, not saved_location
3939         when building new trees.
3940
3941 2011-07-18  Richard Guenther  <rguenther@suse.de>
3942
3943         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
3944         expansion result to bitfield precision if required.
3945
3946 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3947
3948         * config.gcc (i[3456x]86-*-netware*): Remove.
3949
3950         * gthr-nks.h: Remove.
3951         * configure.ac (enable_threads): Remove nks.
3952         * configure: Regenerate.
3953
3954         * config/i386/i386.c (ix86_encode_section_info): Remove netware
3955         reference.
3956         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
3957         <netware.h> reference.
3958
3959         * config/i386/netware-libgcc.c,
3960         gcc/config/i386/netware-libgcc.def,
3961         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
3962         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
3963         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
3964         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
3965
3966         * doc/extend.texi (Function Attributes,
3967         callee_pop_aggregate_return): Remove i?86-netware reference.
3968         * doc/install.texi (Configuration, --enable-threads): Remove nks.
3969
3970 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3971
3972         PR target/49746
3973         Revert:
3974         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3975
3976         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
3977         patterns.
3978
3979 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
3980
3981         PR middle-end/49732
3982         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
3983
3984 2011-07-16  Matthias Klose  <doko@ubuntu.com>
3985
3986         * doc/install.texi: Document --enable-static-libjava.
3987
3988 2011-07-15  Richard Henderson  <rth@redhat.com>
3989
3990         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3991         Replace all three arguments by returning a VEC of edges.
3992         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
3993         pointers and counts.
3994         (fix_edges_for_rarely_executed_code): Merge ...
3995         (rest_of_handle_partition_blocks): ... into...
3996         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
3997         any work was performed.
3998         (pass_partition_blocks): Clear todo_flags_finish.
3999
4000 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
4001             Jakub Jelinek  <jakub@redhat.com>
4002             Jonathan Wakely  <jwakely.gcc@gmail.com>
4003
4004         PR libstdc++/49745
4005         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
4006         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
4007
4008 2011-07-15  Jason Merrill  <jason@redhat.com>
4009
4010         PR testsuite/49741
4011         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
4012         rather than --tool_opts.
4013
4014 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
4015
4016         * doc/plugins.texi (Building GCC plugins): gengtype needs its
4017         corresponding gtype.state.
4018
4019 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4020
4021         PR target/49723
4022         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
4023
4024 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
4025
4026         PR target/48220
4027         * doc/md.texi (Standard Names): Document window_save.
4028         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
4029         expand_debug_expr and expand_debug_source_expr.  If the target has
4030         a window_save instruction, adjust the ENTRY_VALUE_EXP.
4031         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
4032         SSA_NAME_VAR is a parameter.
4033         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
4034         * var-tracking.c (parm_reg_t): New type and associated vector type.
4035         (windowed_parm_regs): New variable.
4036         (adjust_insn): If the target has a window_save instruction and this
4037         is the instruction, make its effect on parameter registers explicit.
4038         (next_non_note_insn_var_location): New function.
4039         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
4040         (vt_add_function_parameter): If the target has a window_save insn,
4041         adjust the incoming RTL and record that in windowed_parm_regs.
4042         (vt_finalize): Free windowed_parm_regs.
4043
4044 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
4045
4046         * doc/invoke.texi (C6X Options): New section.
4047         * doc/md.texi (TI C6X family): New section.
4048         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
4049         tic6x-*-uclinux.
4050         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
4051         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
4052         Provide C6X definitions.
4053         * config/c6x/c6x.md: New file.
4054         * config/c6x/constraints.md: New file.
4055         * config/c6x/predicates.md: New file.
4056         * config/c6x/c6x-sched.md.in: New file.
4057         * config/c6x/c6x-sched.md: New file.
4058         * config/c6x/gensched.sh: New file.
4059         * config/c6x/c6x-mult.md.in: New file.
4060         * config/c6x/genmult.sh: New file.
4061         * config/c6x/c6x-mult.md: New file.
4062         * config/c6x/sync.md: New file.
4063         * config/c6x/c6x-protos.h: New file.
4064         * config/c6x/sfp-machine.h: New file.
4065         * config/c6x/c6x.c: New file.
4066         * config/c6x/c6x.h: New file.
4067         * config/c6x/crti.s: New file.
4068         * config/c6x/crtn.s: New file.
4069         * config/c6x/lib1funcs.asm: New file.
4070         * config/c6x/c6x-modes.def: New file.
4071         * config/c6x/genopt.sh: New file.
4072         * config/c6x/c6x.opt: New file.
4073         * config/c6x/c6x-tables.opt: New file.
4074         * config/c6x/c6x-opts.h: New file.
4075         * config/c6x/c6x-isas.def: New file.
4076         * config/c6x/elf.h: New file.
4077         * config/c6x/elf-common.h: New file.
4078         * config/c6x/uclinux-elf.h: New file.
4079         * config/c6x/t-c6x: New file.
4080         * config/c6x/t-c6x-elf: New file.
4081         * config/c6x/t-c6x-uclinux: New file.
4082         * config/c6x/t-c6x-softfp: New file.
4083         * config/c6x/gtd.c: New file.
4084         * config/c6x/gtf.c: New file.
4085         * config/c6x/ltd.c: New file.
4086         * config/c6x/ltf.c: New file.
4087         * config/c6x/ged.c: New file.
4088         * config/c6x/gef.c: New file.
4089         * config/c6x/led.c: New file.
4090         * config/c6x/lef.c: New file.
4091         * config/c6x/eqd.c: New file.
4092         * config/c6x/eqf.c: New file.
4093         * config/c6x/libgcc-c6xeabi.ver: New file.
4094
4095         Revert
4096         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
4097         PR rtl-optimization/11320
4098         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
4099         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
4100         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
4101         current_sched_info->compute_jump_reg_dependencies. Record which
4102         registers are used and which registers are set by the jump.
4103         Clear deps->reg_conditional_sets after a barrier.
4104         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
4105         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
4106         (init_deps): Initialize reg_conditional_sets.
4107         (free_deps): Clear reg_conditional_sets.
4108         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
4109         Mark registers live on entry of the fallthrough block and conditionally
4110         set as set by the jump. Mark registers live on entry of non-fallthrough
4111         blocks as used by the jump.
4112         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
4113         Mark new parameters as unused.
4114
4115 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
4116
4117         PR tree-opt/49309
4118         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
4119         Use fold_build2_loc instead of build2.
4120         Use the correct type for the new tree.
4121
4122 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4123
4124         PR rtl-optimization/11320
4125         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
4126         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
4127
4128 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
4129
4130         PR target/49487
4131         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
4132         of REG.
4133         (*rotw<mode>): Use const_int_operand for operand2.
4134         Use match_scatch for operand3.
4135         (*rotb<mode>): Ditto
4136         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
4137
4138 2011-07-14  Richard Guenther  <rguenther@suse.de>
4139
4140         PR tree-optimization/49651
4141         * tree-ssa-structalias.c (get_constraint_for_1): Properly
4142         handle dereferences with subvariables.
4143
4144 2011-07-14  Richard Guenther  <rguenther@suse.de>
4145
4146         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
4147         (fold_stmt_1): Do it here directly on gimple and as a first thing.
4148
4149 2011-07-14  Richard Guenther  <rguenther@suse.de>
4150
4151         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
4152         not bool_var when folding bool_var != 1 or bool_var == 0.
4153
4154 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4155
4156         * haifa-sched.c (schedule_insns): Remove outdated comment.
4157         (schedule_block): When computing a known value for TODO_SPEC,
4158         just set it rather than using logical operations.
4159         (try_ready): Likewise.  Use a local variable rather than a
4160         pointer to TODO_SPEC.  Reorder an if statement to move the
4161         easy case to the then block.
4162         * sched-deps.c (dep_spec_p): New static function.
4163         (update_dep): Use it to decide whether to call
4164         change_spec_dep_to_hard.
4165         (get_back_and_forw_lists): Use it.
4166         (sd_resolve_dep): Likewise.
4167         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
4168         (haifa_note_mem_dep): Likewise.
4169         (check_dep): Likewise.
4170         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
4171         (sched_free_deps): Free in two passes.
4172
4173 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
4174
4175         PR middle-end/49736
4176         * expr.c (all_zeros_p): Undo bogus part of last change.
4177
4178 2011-07-14  Matthias Klose <doko@ubuntu.com>
4179
4180         * doc/extend.texi (optimize attribute): Fix typo.
4181
4182 2011-07-14  Richard Guenther  <rguenther@suse.de>
4183
4184         * gimplify.c (gimplify_expr): Only do required conversions.
4185
4186 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
4187
4188         PR target/43746
4189         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
4190         i.e. use default_elf_select_section.
4191         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
4192         (READONLY_DATA_SECTION_ASM_OP): Remove.
4193         (TARGET_ASM_NAMED_SECTION): Move from here...
4194         * config/avr/avr.c: ...to here.
4195         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
4196         (avr_asm_named_section): Make static.
4197
4198 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4199
4200         PR bootstrap/49739
4201         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
4202         and crtfastmath.o for Linux/x86.
4203
4204 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
4205
4206         * haifa-sched.c: Include "hashtab.h"
4207         (sched_no_dce): New global variable.
4208         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
4209         SHADOW_P): New macros.
4210         (last_clock_var, cycle_issued_insns): Move declarations.
4211         (must_backtrack): New static variable.
4212         (struct delay_pair): New structure.
4213         (delay_htab, delay_htab_i2): New static variables.
4214         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
4215         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
4216         functions.
4217         (dep_cost_1): If delay pairs exist, try to look up the insns and
4218         use the correct pair delay if we find them.
4219         (rank-for_schedule): Tweak priority for insns that must be scheduled
4220         soon to avoid backtracking.
4221         (queue_insn): Detect conditions which force backtracking.
4222         (ready_add): Likewise.
4223         (struct sched_block_state): Add member shadows_only_p.
4224         (struct haifa_save_data): New structure.
4225         (backtrack_queue): New static variable.
4226         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
4227         unschedule_insns_until, restore_last_backtrack_point,
4228         free_topmost_backtrack_point, free_backtrack_queue,
4229         estimate_insn_tick, estimate_shadow_tick): New functions.
4230         (prune_ready_list): New arg shadows_only_p.  All callers changed.
4231         If true, remove everything that isn't SHADOW_P.  Look up delay
4232         pairs and estimate ticks to avoid scheduling the first insn too early.
4233         (verify_shadows): New function.
4234         (schedule_block): Add machinery to enable backtracking.
4235         (sched_init): Take sched_no_dce into account when setting
4236         DF_LR_RUN_DCE.
4237         (free_delay_pairs): New function.
4238         (init_h_i_d): Initialize INSN_EXACT_TICK.
4239         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
4240         * sched-deps.c (sd_unresolve_dep): New function.
4241         * sched-int. (struct haifa_sched_info): New fields save_state
4242         and restore_state.
4243         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
4244         feeds_backtrack_insn and shadow_p.
4245         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
4246         (sched_no_dce): Declare variable.
4247         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
4248         sd_unresolve_dep): Declare functions.
4249         * modulo-sched.c (sms_sched_info): Clear the two new fields.
4250         * sched-rgn.c (rgn_const_sched_info): Likewise.
4251         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
4252         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
4253         (ebb_sched_info): Add them for the two new fields.
4254         (add_deps_for_risky_insns): Call add_delay_dependencies.
4255
4256 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
4257
4258         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
4259         Rename -mr11.
4260         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
4261         (rs6000_call_indirect_aix): Ditto.
4262         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
4263         (call_indirect_aix<ptrsize>_internal): Ditto.
4264         (call_indirect_aix<ptrsize>_nor11): Ditto.
4265         (call_indirect_aix<ptrsize>_internal2): Ditto.
4266         (call_value_indirect_aix<ptrsize>): Ditto.
4267         (call_value_indirect_aix<ptrsize>_internal): Ditto.
4268         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
4269         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
4270         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
4271
4272 2011-07-13  Jason Merrill  <jason@redhat.com>
4273
4274         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
4275
4276 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4277
4278         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
4279         * config/spu/spu.md ("clrsb<mode>2"): New expander.
4280
4281 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
4282
4283         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
4284         * configure: Regenerate.
4285
4286 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4287
4288         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
4289         (asm_file_start): Remove.
4290         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
4291         free_bb_for_insn around code that modifies insns before
4292         restarting df analysis.
4293
4294 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4295
4296         PR target/49541
4297         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
4298         (LINK_SPEC): ... here.
4299
4300 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4301
4302         * haifa-sched.c (struct sched_block_state): New.
4303         (schedule_block): Move some local variables into such a structure.
4304
4305 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4306
4307         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
4308         * config/i386/t-crtpc: Remove.
4309         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4310         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
4311         tmake_file.
4312         (x86_64-*-darwin*): Likewise.
4313         (i[34567]86-*-linux*): Likewise.
4314         (x86_64-*-linux*): Likewise.
4315
4316         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
4317         Handle -mpc32, -mpc64, -mpc80.
4318
4319 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4320
4321         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
4322         * config/alpha/t-crtfm: Remove.
4323         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
4324         * config/i386/t-crtfm: Remove.
4325         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
4326         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
4327         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
4328         * config/sparc/t-crtfm: Remove.
4329
4330         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
4331         (alpha*-*-freebsd*): Likewise.
4332         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
4333         (x86_64-*-darwin*): Likewise.
4334         (i[34567]86-*-linux*): Likewise.
4335         (x86_64-*-linux*): Likewise.
4336         (x86_64-*-mingw*): Likewise.
4337         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
4338         (ia64*-*-freebsd*): Likewise.
4339         (ia64*-*-linux*): Likewise.
4340         (mips64*-*-linux*): Likewise.
4341         (mips*-*-linux*): Likewise.
4342         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
4343         (sparc64-*-linux*): Likewise.
4344         (sparc64-*-freebsd*): Likewise.
4345
4346 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4347
4348         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
4349         * config/darwin-crt3.c: Move to ../libgcc/config.
4350         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
4351         ($(T)crt3$(objext)): Remove.
4352         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
4353         ($(T)crt2$(objext)): Remove.
4354         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
4355         (powerpc64-*-darwin*): Likewise.
4356
4357 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4358
4359         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
4360
4361         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
4362         (addsi_1_zext): This.
4363
4364 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4365
4366         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
4367         * doc/tm.texi: Regenerate.
4368         * target.def (mergeable_rodata_prefix): New defhookpod.
4369         * varasm.c (mergeable_string_section, mergeable_constant_section):
4370         Use it. Allocate name with alloca.
4371
4372 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
4373
4374         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
4375
4376 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4377
4378         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
4379         overlap check.
4380
4381 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
4382
4383         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
4384         (count_type_elements): Delete.
4385         (complete_ctor_at_level_p): Declare.
4386         * expr.c (flexible_array_member_p): New function, split out from...
4387         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
4388         parameter with for_ctor_p.  When for_ctor_p is true, return the
4389         number of elements that should appear in the top-level constructor,
4390         otherwise return an estimate of the number of scalars.
4391         (categorize_ctor_elements): Replace p_must_clear with p_complete.
4392         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
4393         (complete_ctor_at_level_p): New function, borrowing union logic
4394         from old categorize_ctor_elements_1.
4395         (mostly_zeros_p): Return true if the constructor is not complete.
4396         (all_zeros_p): Update call to categorize_ctor_elements.
4397         * gimplify.c (gimplify_init_constructor): Update call to
4398         categorize_ctor_elements.  Don't call count_type_elements.
4399         Unconditionally prevent clearing for variable-sized types,
4400         otherwise rely on categorize_ctor_elements to detect
4401         incomplete initializers.
4402
4403 2011-07-13  Richard Guenther  <rguenther@suse.de>
4404
4405         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
4406         the final type is integral.
4407
4408 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
4409
4410         * sched-int.h (struct _dep): Add member cost.
4411         (DEP_COST, UNKNOWN_DEP_COST): New macros.
4412         * sched-deps.c (init_dep_1): Initialize DEP_COST.
4413         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
4414         (sched_change_pattern): Reset it for dependent insns.
4415
4416 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4417
4418         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
4419         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
4420         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
4421         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
4422         (CRT0_S, MCRT0_S): Remove.
4423         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
4424         Remove.
4425         (s-crt0): Remove.
4426         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
4427
4428 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
4429
4430         * cse.c (insert_with_costs): Put semi-colon after empty loop body
4431         on the next line.
4432         * emit-rtl.c (push_to_sequence): Likewise.
4433         * haifa-sched.c (max_issue): Likewise.
4434         * matrix-reorg.c (add_allocation_site): Likewise.
4435         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
4436         * reload.c (alternative_allows_const_pool_ref): Likewise.
4437         * sched-rgn.c (rgn_add_block): Likewise.
4438         (rgn_fix_recovery_cfg): Likewise.
4439         * tree.c (attribute_list_contained): Likewise.
4440
4441 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
4442
4443         * config/i386/i386.c: Tidy processor feature bitmasks.
4444         (m_P4_NOCONA): New.
4445
4446 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
4447
4448         PR rtl-opt/49474
4449         * cprop.c (find_implicit_sets): Correct the condition.
4450
4451 2011-07-12  Richard Henderson  <rth@redhat.com>
4452
4453         PR target/49713
4454         * dwarf2out.h (dwarf_frame_regnum): Remove.
4455         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
4456         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
4457         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
4458         (execute_dwarf2_frame): Initialize them.
4459         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
4460         users of the macros with the variables.
4461         (expand_builtin_dwarf_sp_column): Revert last change.
4462         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
4463         result of DWARF_FRAME_REGNUM into a local variable.
4464
4465 2011-07-12  Richard Henderson  <rth@redhat.com>
4466
4467         PR target/49714
4468         * config/i386/i386.c (x86_output_mi_thunk): Use
4469         machopic_indirect_call_target instead of machopic_indirection_name
4470         directly.
4471
4472 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
4473             Eric Botcazou  <ebotcazou@adacore.com>
4474
4475         * prefix.h: Wrap up in extern "C" block.
4476
4477 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
4478
4479         AMD bdver2 Enablement
4480         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
4481         (case ${target}): Add bdver2.
4482         * config/i386/driver-i386.c (host_detect_local_cpu): Let
4483         -march=native recognize bdver2 processors.
4484         * config/i386/i386-c.c (ix86_target_macros_internal): Add
4485         bdver2 def_and_undef
4486         * config/i386/i386.c (struct processor_costs bdver2_cost): New
4487         bdver2 cost table.
4488         (m_BDVER2): New definition.
4489         (m_AMD_MULTIPLE): Includes m_BDVER2.
4490         (initial_ix86_tune_features): Add bdver2 tuning.
4491         (processor_target_table): Add bdver2 entry.
4492         (static const char *const cpu_names): Add bdver2 entry.
4493         (ix86_option_override_internal): Add bdver2 instruction sets.
4494         (ix86_issue_rate): Add bdver2.
4495         (ix86_adjust_cost): Add bdver2.
4496         (has_dispatch): Add bdver2.
4497         * config/i386/i386.h (TARGET_BDVER2): New definition.
4498         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
4499         (enum processor_type): Add PROCESSOR_BDVER2.
4500         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
4501         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
4502         description.
4503
4504 2011-07-12  Richard Henderson  <rth@redhat.com>
4505
4506         PR target/49714
4507         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
4508         destination address in memory on some paths.
4509
4510 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
4511
4512         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
4513         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
4514         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
4515         * function.c (locate_and_pad_parm): Take it into account.
4516         * target.def (function_arg_round_boundary): New hook.
4517         * targhooks.c (default_function_arg_round_boundary): New function.
4518         * targhooks.h (default_function_arg_round_boundary): Declare.
4519         * doc/tm.texi: Regenerate.
4520
4521 2011-07-12  Richard Guenther  <rguenther@suse.de>
4522
4523         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
4524         Do not perform no-op changes.
4525
4526 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
4527
4528         * config/arm/predicates.md (neon_struct_operand): Make a normal
4529         predicate.
4530         (neon_struct_or_register_operand): New predicate.
4531         * config/arm/neon.md (movmisalign<mode>): Replace predicates
4532         with neon_struct_or_register_operand.
4533         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
4534         neon_struct_operand instead of memory_operand.
4535
4536 2011-07-12  Martin Jambor  <mjambor@suse.cz>
4537
4538         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
4539         * cgraph.c (cgraph_get_node_or_alias): Removed.
4540         (change_decl_assembler_name): Changed all calls to
4541         cgraph_get_node_or_alias to a call to cgraph_get_node.
4542         (cgraph_make_decl_local): Likewise.
4543         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
4544         * varasm.c (default_binds_local_p_1): Likewise.
4545         (decl_binds_to_current_def_p): Likewise.
4546
4547 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
4548
4549         PR tree-optimization/49712
4550         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
4551
4552 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
4553
4554         * genautomata.c (add_arc): Return void.  All callers changed.
4555         (make_automaton): Remove dead code.
4556
4557 2011-07-11  Richard Henderson  <rth@redhat.com>
4558
4559         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
4560         (DW_FRAME_POINTER_REGNUM): New.
4561         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
4562         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
4563         (dwf_regno): New.
4564         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
4565         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
4566         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
4567         Use it.
4568         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
4569         * dwarf2out.h (dwarf_frame_regnum): New.
4570         (struct cfa_loc): Document the domain of the reg member.
4571
4572 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
4573
4574         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
4575         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
4576
4577 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
4578
4579         PR debug/49676
4580         * dwarf2out.c (int_shift_loc_descriptor): New function.
4581         (int_loc_descriptor): If shorter, emit i as
4582         (i >> shift), shift, DW_OP_shl for suitable shift value.
4583         Similarly, try to optimize large negative values using
4584         DW_OP_neg of a positive value if shorter.
4585         (size_of_int_shift_loc_descriptor): New function.
4586         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
4587         changes.
4588         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
4589         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
4590         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
4591         is shorter.
4592         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
4593         addend as added DW_OP_plus if it is shorter.
4594
4595 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4596
4597         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
4598         (DTORS_SECTION_ASM_OP): Define.
4599
4600 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4601
4602         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
4603         * config/t-dfprules: Move to ../libgcc/config.
4604         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
4605         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
4606         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
4607         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
4608         Likewise.
4609         (i[34567]86-*-cygwin*): Likewise.
4610         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
4611         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
4612         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
4613         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
4614         D64PBIT_FUNCS, D128PBIT_FUNCS.
4615
4616 2011-07-11  Richard Guenther  <rguenther@suse.de>
4617
4618         * tree-vrp.c (simplify_conversion_using_ranges): Manually
4619         translate the source value-range through the conversion chain.
4620
4621 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
4622
4623         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
4624
4625 2011-07-11  Arthur Loiret  <aloiret@debian.org>
4626
4627         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
4628         a bi-arch compiler defaulting to 31-bit. In this case:
4629         (tmake_file): Add s390/t-linux64.
4630         * doc/install.texi: Add s390-linux to the list of targets supporting
4631         --enable-targets=all.
4632
4633 2011-07-11  Arthur Loiret  <aloiret@debian.org>
4634             Matthias Klose <doko@debian.org>
4635
4636         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
4637         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
4638         (tm_file): Add mips/linux64.h.
4639         (tmake_file): Add mips/t-linux64.
4640         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
4641         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
4642         instead of hardcoded mabi=n32.
4643         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
4644         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
4645         convention.
4646
4647 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4648
4649         * passes.c (init_optimization_passes): Add invariant motion pass
4650         after induction variable optimization.
4651
4652 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
4653
4654         PR target/39633
4655         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
4656         offsets 1..5 set cc0 in a usable way.
4657
4658 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
4659
4660         * tree.h (call_expr_arg): Remove.
4661         (call_expr_argp): Likewise.
4662
4663 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
4664
4665         * config/sparc/sparc.md (save_register_window_1): Rename to...
4666         (window_save): ...this.
4667         * config/sparc/sparc.c (emit_save_register_window): Rename to...
4668         (emit_window_save): ...this.
4669         (sparc_expand_prologue): Adjust to above renaming.
4670
4671 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
4672
4673         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
4674         of movabs for x32.
4675
4676 2011-07-10  Richard Henderson  <rth@redhat.com>
4677
4678         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
4679         run final, instead of emitting text directly.
4680
4681 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
4682
4683         * config/i386/i386.c (ix86_option_override_internal): Turn on
4684         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
4685         small PIC models for TARGET_X32.
4686
4687 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
4688
4689         PR target/49684
4690         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
4691         $(LIBGCC2_CFLAGS).
4692
4693         PR bootstrap/49680
4694         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
4695         stray notes and debug insns by using prev_nonnote_nondebug_insn
4696         instead of PREV_INSN.
4697
4698 2011-07-09  Richard Henderson  <rth@redhat.com>
4699
4700         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
4701         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
4702         * dwarf2out.c: ... here.
4703         (output_all_cfis): Remove.
4704         (dwarf2out_switch_text_section): Use output_cfis directly.
4705         (size_of_locs): Export.
4706         (output_loc_sequence, output_loc_sequence_raw): Export.
4707         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
4708         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
4709         output_cfa_loc_raw): Move to ...
4710         * dwarfcfi.c: ... here.
4711         * dwarf2out.h: Update decls.
4712
4713 2011-07-09  Richard Henderson  <rth@redhat.com>
4714
4715         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
4716         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
4717         * dwarf2cfi.c: ... here.
4718         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
4719         (DWARF_ROUND, DWARF_CIE_ID): Remove.
4720         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
4721         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
4722         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
4723
4724 2011-07-09  Richard Henderson  <rth@redhat.com>
4725
4726         * dwarf2cfi.c (cie_return_save): New.
4727         (queue_reg_save): Use compare_reg_or_pc.
4728         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
4729         (dwarf2out_frame_debug_expr): Likewise.
4730         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
4731         (initial_return_save): Likewise.
4732         (execute_dwarf2_frame): Save and restore initial return save from
4733         the cie to the fde.
4734         * config/mips/mips.c (mips_frame_set): Remove special case for
4735         DWARF_FRAME_RETURN_COLUMN.
4736
4737 2011-07-09  Richard Henderson  <rth@redhat.com>
4738
4739         * dwarf2cfi.c (lookup_cfa): Remove.
4740         (execute_dwarf2_frame): Assert queues are empty on entry.
4741         Setup initial cfa directly, not via lookup_cfa.
4742         Don't clear args_size state here.
4743
4744 2011-07-09  Richard Henderson  <rth@redhat.com>
4745
4746         * dwarf2cfi.c (add_cfi_vec): New.
4747         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
4748         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
4749         (execute_dwarf2_frame): Set add_cfi_vec.
4750
4751 2011-07-09  Richard Henderson  <rth@redhat.com>
4752
4753         * defaults.h (ASM_COMMENT_START): Move here...
4754         * dwarf2asm.c: ... from here.
4755         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
4756         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
4757         * varasm.c: Likewise.
4758
4759 2011-07-09  Richard Henderson  <rth@redhat.com>
4760
4761         PR debug/49686
4762         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
4763         (create_cfi_notes): ... do it here instead.
4764
4765 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
4766
4767         PR debug/49676
4768         * dwarf2out.c (size_of_int_loc_descriptor): New function.
4769         (address_of_int_loc_descriptor): Use it.
4770         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
4771
4772 2011-07-09  Richard Henderson  <rth@redhat.com>
4773
4774         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
4775         (prologue, epilogue): New.
4776         (return, *rts): New.
4777         (blockage, setd, seti): New.
4778         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
4779         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
4780         (pdp11_saved_regno): New.
4781         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
4782         generate rtl instead of text.
4783         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
4784         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
4785         * config/pdp11/pdp11-protos.h: Update.
4786
4787 2011-07-09  Richard Henderson  <rth@redhat.com>
4788
4789         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
4790         try to insert an rtl prologue here.
4791         (rs6000_output_function_epilogue): Similarly.
4792         * config/rs6000/rs6000.md (prologue): Emit a barrier to
4793         satisfy !TARGET_SCHED_PROLOG.
4794         (epilogue, sibcall_epilogue): Likewise.
4795
4796 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4797
4798         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
4799         (FP_REG_P): Delete.
4800         (IN_OR_GLOBAL_P): Likewise.
4801
4802 2011-07-08  Jason Merrill  <jason@redhat.com>
4803
4804         PR c++/45437
4805         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
4806         compound assignment.
4807
4808         * cgraph.c (cgraph_add_to_same_comdat_group): New.
4809         * cgraph.h: Declare it.
4810         * ipa.c (function_and_variable_visibility): Make sure thunks
4811         have the right visibility.
4812
4813 2011-07-08  Richard Henderson  <rth@redhat.com>
4814
4815         PR bootstrap/49680
4816         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
4817         any tablejump vector.
4818
4819         PR bootstrap/49680
4820         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
4821         end of the prologue.
4822
4823 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
4824
4825         PR target/49621
4826         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
4827         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
4828         * config/rs6000/vector.md (vector_select_<mode>,
4829         vector_select_<mode>_uns): Change second operand of NE to
4830         CONST0_RTX (<MODE>mode) instead of const0_rtx.
4831         * config/rs6000/altivec.md (*altivec_vsel<mode>,
4832         *altivec_vsel<mode>_uns): Expect second operand of NE to be
4833         zero_constant of the corresponding vector mode.
4834         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
4835         Likewise.
4836
4837 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
4838
4839         * graphite-dependences.c (build_alias_set_powerset): Remove
4840         continue from loop, add one more assert.
4841
4842 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
4843
4844         PR target/46779
4845         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4846         In particular, allow 8-bit values in r28 and r29.
4847         (avr_hard_regno_scratch_ok): Disallow any register that might be
4848         part of the frame pointer.
4849         (avr_hard_regno_rename_ok): Same.
4850         (avr_legitimate_address_p): Don't allow SUBREGs.
4851
4852 2011-07-08  Julian Brown  <julian@codesourcery.com>
4853
4854         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
4855         big-endian mode.
4856         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
4857         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
4858         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
4859         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
4860         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
4861         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
4862         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
4863         registers in big-endian mode.
4864
4865 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
4866
4867         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
4868         in terms of another.
4869         (write_attr_value): Write a cast if necessary.
4870
4871         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
4872         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
4873         (REG_WORDS_BIG_ENDIAN): Document.
4874         * doc/tm.texi: Regenerate.
4875         * reload.c (operands_match_p): Take it into account.
4876         (reload_adjust_reg_for_mode): Likewise.
4877         * rtlanal.c (subreg_get_info): Likewise.
4878
4879 2011-07-08  Richard Guenther  <rguenther@suse.de>
4880
4881         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
4882         folding.
4883
4884 2011-07-08  Kai Tietz  <ktietz@redhat.com>
4885
4886         * fold-const.c (fold_truth_andor): Factored out truth_andor
4887         label from fold_binary as function.
4888         (fold_binary_loc): Replace truth_andor lable
4889         by function fold_truth_andor.
4890
4891 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
4892
4893         PR middle-end/49519
4894         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
4895         check if address is stored in register. If so - give up.
4896         (check_sibcall_argument_overlap_1): Do not perform check of
4897         overlapping when it is call to address.
4898
4899 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
4900
4901         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
4902         of magic '31'.
4903
4904 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
4905
4906         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
4907         GET_MODE_BITSIZE where appropriate.
4908         (widen_leading, expand_parity, expand_ctz, expand_ffs,
4909         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
4910         expand_float, expand_fix): Likewise.
4911         * expr.c (convert_move, convert_modes, expand_expr_real_2,
4912         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
4913         * stor-layout.c (get_mode_bounds): Likewise.
4914         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
4915         Likewise.
4916         * convert.c (convert_to_integer): Likewise.
4917         * expmed.c (expand_shift_1): Likewise.
4918
4919         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
4920         a bitsize.
4921
4922         * optabs.c (expand_binop): Tighten conditions for doubleword
4923         expansions.
4924         (widen_bswap): Assert that mode bitsize and precision are the same.
4925         * stor-layout.c (get_best_mode): Skip modes that have lower
4926         precision than bitsize.
4927         * recog.c (simplify_while_replacing): Assert that bitsize and
4928         precision are the same.
4929
4930 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4931
4932         * Makefile.in (LIBGCOV): Remove.
4933         (libgcc.mvars): Remove LIBGCOV.
4934         * libgov.c: Move to ../libgcc.
4935
4936 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4937
4938         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
4939
4940 2011-07-08  Martin Jambor  <mjambor@suse.cz>
4941
4942         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
4943         is too big for total scalarization.
4944
4945 2011-07-07  Richard Henderson  <rth@redhat.com>
4946
4947         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
4948         (DBX_DEBUGGING_INFO): Undef.
4949
4950 2011-07-07  Richard Henderson  <rth@redhat.com>
4951
4952         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
4953         Handle some opcodes specially for debugging.
4954         * print-rtl.c: Include dwarf2out.h
4955         (print_rtx): Handle NOTE_INSN_CFI.
4956         * Makefile.in (print-rtl.o): Update.
4957
4958 2011-07-07  Richard Henderson  <rth@redhat.com>
4959
4960         * tree-pass.h (pass_dwarf2_frame): Declare.
4961         * passes.c (init_optimization_passes): Add it.
4962         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
4963         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
4964         make static, do not call add_cfis_to_fde.
4965         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
4966         dwarf2out_frame_init): Merge into...
4967         (execute_dwarf2_frame): ... here.  New function.
4968         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
4969         saved_do_cfi_asm to a tri-state variable.
4970         (gate_dwarf2_frame, pass_dwarf2_frame): New.
4971         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
4972         if it has yet to be done.  Don't call dwarf2cfi_function_init.
4973         * dwarf2out.h, debug.h: Update decls.
4974         * final.c (final_start_function): Don't call
4975         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
4976         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
4977         * toplev.c (lang_dependent_init): Likewise.
4978
4979 2011-07-07  Richard Henderson  <rth@redhat.com>
4980
4981         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
4982         FDE_TABLE_INCREMENT): Replace with...
4983         (fde_vec): ... this, a new vector.
4984         (current_fde): Remove.  Replace all users with cfun->fde.
4985         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
4986         (size_of_aranges, dwarf2out_finish): Likewise.
4987         (dwarf2out_alloc_current_fde): Break out from ...
4988         (dwarf2out_begin_prologue): ... here.
4989         (dwarf2out_frame_init): Remove.
4990         * dwarf2cfi.c: Update all users of current_fde.
4991         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
4992         * dwarf2out.h: Update decls.
4993         (dw_fde_node): Add fde_index member.
4994         * function.h (struct function): Add fde member.
4995
4996 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
4997             Richard Henderson  <rth@redhat.com>
4998
4999         * dwarf2cfi.c (add_cfi): Remove.
5000         (dwarf2out_cfi_label): Remove force argument.  Only generate the
5001         label name.
5002         (add_fde_cfi): Simplify the different code paths.
5003         (add_cie_cfi): New.
5004         (old_cfa, old_cfa_remember): New.
5005         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
5006         (last_reg_save_label): Remove.
5007         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
5008         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
5009         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
5010         dwarf2out_frame_debug_cfa_expression,
5011         dwarf2out_frame_debug_cfa_restore,
5012         dwarf2out_frame_debug_cfa_window_save,
5013         dwarf2out_frame_debug_expr): Remove label parameter.
5014         (cfi_label_required_p, add_cfis_to_fde): New.
5015         (dwarf2out_frame_debug_after_prologue): New.
5016         (dwarf2cfi_frame_init): Initialize old_cfa.
5017         (dwarf2out_frame_debug_restore_state): Likewise.
5018         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
5019         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
5020         * final.c (final_start_function): Call
5021         dwarf2out_frame_debug_after_prologue.
5022
5023 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
5024             Richard Henderson  <rth@redhat.com>
5025
5026         * dwarf2cfi.c (cfi_insn): New.
5027         (dwarf2out_cfi_label): Don't emit cfi label here.
5028         (add_fde_cfi): Create a NOTE_INSN_CFI.
5029         (dwarf2out_frame_debug): Setup cfi_insn.
5030         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
5031         (dwarf2out_cfi_begin_epilogue): Make static.
5032         (dwarf2out_frame_debug_restore_state): Make static.
5033         * dwarf2out.c (output_cfi_directive): Make static.
5034         (dwarf2out_emit_cfi): New.
5035         * dwarf2out.h: Update.
5036         * final.c (final): Remove CFI notes.
5037         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
5038         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
5039         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
5040         * insn-notes.def (NOTE_INSN_CFI): New.
5041         (NOTE_INSN_CFI_LABEL): New.
5042         * rtl.h (union rtunion_def): Add rt_cfi member.
5043         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
5044
5045 2011-07-07  Richard Henderson  <rth@redhat.com>
5046
5047         * dwarf2cfi.c: New file.
5048         * Makefile.in (OBJS): Add it.
5049         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
5050         * gengtype.c (open_base_files): Include dwarf2out.h.
5051         * coretypes.h (enum var_init_status): Move from ...
5052         * rtl.h: ... here.
5053         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
5054         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
5055         expand_builtin_dwarf_sp_column, init_return_column_size,
5056         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
5057         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
5058         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
5059         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
5060         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
5061         compute_barrier_args_size, dwarf2out_args_size,
5062         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
5063         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
5064         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
5065         queue_reg_save, dwarf2out_flush_queued_reg_saves,
5066         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
5067         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
5068         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
5069         dwarf2out_frame_debug_cfa_expression,
5070         dwarf2out_frame_debug_cfa_restore,
5071         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
5072         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
5073         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
5074         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
5075         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
5076         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
5077         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
5078         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
5079         dw_loc_descr_node): Move to dwarf2out.h.
5080         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
5081         mem_loc_descriptor): Export.
5082         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
5083         (dwarf2out_frame_init): Extract CIE generation code to
5084         dwarf2cfi_frame_init.
5085
5086 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
5087
5088         PR target/49660
5089         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
5090         MASK_V8PLUS, remove commented out flag and reorder.
5091
5092 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
5093
5094         PR c/49644
5095         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
5096         one non-complex and one complex argument, call c_save_expr on both
5097         operands.
5098
5099 2011-07-07  Martin Jambor  <mjambor@suse.cz>
5100
5101         PR middle-end/49495
5102         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
5103         (verify_cgraph_node): Some functinality moved to
5104         verify_edge_corresponds_to_fndecl, call it.
5105
5106 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
5107
5108         * config.gcc (*local*): Remove.
5109         * doc/install-old.texi: Don't mention local configurations.
5110
5111 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
5112
5113         PR debug/49522
5114         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
5115         referencing debug insns that have been reset.
5116         (dead_debug_insert_before): Don't assert reg is non-NULL,
5117         instead return immediately if it is NULL.
5118
5119 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
5120
5121         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
5122
5123 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
5124
5125         * hw-doloop.c: New file.
5126         * hw-doloop.h: New file.
5127         * Makefile.in (OBJS): Add hw-doloop.o.
5128         (hw-doloop.o): New rule.
5129         ($(obj_out_file)): Add hw-doloop.h dependency.
5130         * config/bfin/bfin.c: Include "hw-doloop.h".
5131         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
5132         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
5133         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
5134         type changed to hwloop_info.  Return bool, true if the loop was
5135         successfully optimized.  Remove code that was moved to
5136         hw-doloop.c, and adjust other parts.
5137         (hwloop_fail): New static function, containing parts that used
5138         to be in bfin_optimize_loop.
5139         (bfin_discover_loop, bfin_discover_loops, free_loops,
5140         bfin_reorder_loops): Remove.
5141         (hwloop_pattern_reg): New static function.
5142         (bfin_doloop_hooks): New variable.
5143         (bfin_reorg_loops): Remove most code, call reorg_loops.
5144         * config/bfin/bfin.md (doloop_end splitter): Also enable if
5145         loop counter is a memory_operand.
5146
5147 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
5148
5149         * config.gcc: Support --with-multilib-list for x86 Linux targets.
5150
5151         * configure.ac: Mention x86-64 for --with-multilib-list.
5152         * configure: Regenerated.
5153
5154         * config/i386/gnu-user64.h (SPEC_64): Support x32.
5155         (SPEC_32): Likewise.
5156         (ASM_SPEC): Likewise.
5157         (LINK_SPEC): Likewise.
5158         (TARGET_THREAD_SSP_OFFSET): Likewise.
5159         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
5160         (SPEC_X32): New.
5161
5162         * config/i386/i386.h (TARGET_X32): New.
5163         (TARGET_LP64): New.
5164         (LONG_TYPE_SIZE): Likewise.
5165         (POINTER_SIZE): Likewise.
5166         (POINTERS_EXTEND_UNSIGNED): Likewise.
5167         (OPT_ARCH64): Support x32.
5168         (OPT_ARCH32): Likewise.
5169
5170         * config/i386/i386.opt (mx32): New.
5171
5172         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
5173         (GLIBC_DYNAMIC_LINKERX32): Likewise.
5174         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
5175         (GLIBC_DYNAMIC_LINKERX32): Likewise.
5176
5177         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
5178         (BIONIC_DYNAMIC_LINKERX32): Likewise.
5179         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
5180
5181         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
5182
5183         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
5184
5185         * doc/invoke.texi: Document -mx32.
5186
5187 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
5188
5189         * doc/invoke.texi (mwords-little-endian): Deprecate.
5190         * config/arm/arm.opt (mwords-little-endian): Likewise.
5191         * config/arm/arm.c (arm_option_override): Warn about the deprecation
5192         of -mwords-little-endian.
5193
5194 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
5195
5196         * reload1.c (choose_reload_regs): Use mode sizes to check whether
5197         an old reload register completely defines the required value.
5198
5199 2011-07-07  Richard Guenther  <rguenther@suse.de>
5200
5201         * fold-const.c (fold_unary_loc): Do not strip sign-changes
5202         for NEGATE_EXPR.
5203
5204 2011-07-07  Richard Guenther  <rguenther@suse.de>
5205
5206         * tree-vrp.c (simplify_conversion_using_ranges): New function.
5207         (simplify_stmt_using_ranges): Call it.
5208
5209 2011-07-07  Kai Tietz  <ktietz@redhat.com>
5210
5211         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
5212         (lookup_logical_inverted_value): Likewise.
5213         (simplify_bitwise_binary_1): Likewise.
5214         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
5215
5216 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
5217
5218         * gcc.c (%[Spec]): Don't document.
5219         (struct spec_list): Update comment.
5220         (do_spec_1): Don't handle %[Spec].
5221         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
5222
5223 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
5224
5225         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
5226         default based on TARGET_ASM_NAMED_SECTION.
5227         * common/common-target.def (have_named_sections): Default to true.
5228         * common/config/default-common.c: Don't include tm.h.
5229         * common/config/picochip/picochip-common.c
5230         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
5231         * common/config/m32c/m32c-common.c: Remove.
5232         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
5233         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5234         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5235         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5236         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5237         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5238         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
5239
5240 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
5241
5242         PR middle-end/49640
5243         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
5244         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
5245
5246 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5247
5248         PR libmudflap/49550
5249         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
5250
5251 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5252
5253         PR target/39150
5254         * configure.ac (gcc_cv_as_hidden): Also accept
5255         x86_64-*-solaris2.1[0-9]*.
5256         (gcc_cv_as_cfi_directive): Likewise.
5257         (gcc_cv_as_comdat_group_group): Likewise.
5258         (set_have_as_tls): Likewise.
5259         * configure: Regenerate.
5260         * config.gcc (i[34567]86-*-solaris2*): Also handle
5261         x86_64-*-solaris2.1[0-9]*.
5262         * config.host (i[34567]86-*-solaris2*): Likewise.
5263         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
5264         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
5265         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
5266         (TARGET_LD_EMULATION): Use it.
5267         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
5268         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
5269         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
5270         (ASM_CPU64_DEFAULT_SPEC): Define.
5271         (ASM_CPU_SPEC): Use %(asm_cpu_default).
5272         (ASM_SPEC): Redefine.
5273         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
5274         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
5275         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
5276         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
5277         configuration.
5278         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
5279
5280 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5281
5282         * config/sol2.h (ASM_SPEC): Split into ...
5283         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
5284         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
5285         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
5286         (ASM_SPEC): Use ASM_SPEC_BASE.
5287         * config/sparc/sol2.h (ASM_SPEC): Redefine.
5288
5289 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
5290
5291         * config/avr/avr.md (*reload_insi): Change predicate #1 to
5292         const_int_operand.  Ditto for peep2 producing this insn.
5293         Add argument to output_reload_insisf call.
5294         (*movsi,*movsf): Add argument to output_movsisf call.
5295         (*reload_insf): New insn and new peep2 to produce it.
5296         * config/avr/avr-protos.h (output_movsisf): Change prototype.
5297         (output_reload_insisf): Change prototype.
5298         * config/avr/avr.c (avr_asm_len): New function.
5299         (output_reload_insisf): Rewrite.
5300         (output_movsisf): Change prototype.  output_reload_insisf for
5301         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
5302         (adjust_insn_length): Add argument to output_movsisf and
5303         output_reload_insisf call.
5304
5305 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
5306
5307         * emit-rtl.c (paradoxical_subreg_p): New function.
5308         * rtl.h (paradoxical_subreg_p): Declare.
5309         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
5310         apply_distributive_law, simplify_comparison, simplify_set): Use it.
5311         * cse.c (record_jump_cond, cse_insn): Likewise.
5312         * expr.c (force_operand): Likewise.
5313         * rtlanal.c (num_sign_bit_copies1): Likewise.
5314         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
5315         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
5316         (push_reload): Use precision to check for paradoxical subregs.
5317         * expmed.c (extract_bit_field_1): Likewise.
5318
5319         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
5320         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
5321         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
5322         simplify_set, simplify_logical, expand_compound_operation,
5323         make_extraction, force_to_mode, if_then_else_cond, extended_count,
5324         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
5325         record_value_for_reg): Likewise.
5326         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
5327         * simplify-rtx. c (simplify_unary_operation_1,
5328         simplify_binary_operation_1, simplify_const_relational_operation):
5329         Likewise.
5330
5331         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
5332         instead of GET_MODE_BITSIZE where appropriate.
5333         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
5334         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
5335         init_num_sign_bit_copies_in_rep): Likewise.
5336         * cse.c (fold_rtx, cse_insn): Likewise.
5337         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
5338         * simplify-rtx.c (simplify_unary_operation_1,
5339         simplify_const_unary_operation, simplify_binary_operation_1,
5340         simplify_const_binary_operation, simplify_ternary_operation,
5341         simplify_const_relational_operation, simplify_subreg): Likewise.
5342         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
5343         simplify_if_then_else, simplify_set, expand_compound_operation,
5344         expand_field_assignment, make_extraction, if_then_else_cond,
5345         make_compound_operation, force_to_mode, make_field_assignment,
5346         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
5347         extended_count, try_widen_shift_mode, simplify_shift_const_1,
5348         simplify_comparison, record_promoted_value, simplify_compare_const,
5349         record_dead_and_set_regs_1): Likewise.
5350
5351         Revert:
5352         * simplify-rtx.c (simplify_const_binary_operation): Use the
5353         shift_truncation_mask hook instead of performing modulo by width.
5354         Compare against mode precision, not bitsize.
5355         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5356         Use shift_truncation_mask instead of constructing the value manually.
5357
5358 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
5359
5360         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
5361         declaration.
5362         (rs6000_save_toc_in_prologue_p): Ditto.
5363
5364         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
5365         up the static chain (r11) during indirect function calls.
5366         (-msave-toc-indirect): New undocumented debug switch.
5367
5368         * config/rs6000/rs6000.c (struct machine_function): Add
5369         save_toc_in_prologue field to note whether the prologue needs to
5370         save the TOC value in the reserved stack location.
5371         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
5372         to save the TOC in the prologue, do so.
5373         (rs6000_trampoline_init): Don't allow creating AIX style
5374         trampolines if -mno-r11 is in effect.
5375         (rs6000_call_indirect_aix): New function to create AIX style
5376         indirect calls, adding support for -mno-r11 to suppress loading
5377         the static chain, and saving the TOC in the prologue instead of
5378         the call body.
5379         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
5380         TOC in the prologue.
5381
5382         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
5383         register numbers.
5384         (TOC_REGNUM): Ditto.
5385         (STATIC_CHAIN_REGNUM): Ditto.
5386         (ARG_POINTER_REGNUM): Ditto.
5387         (SFP_REGNO): Delete, unused.
5388         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
5389         function descriptor offsets.
5390         (TOC_SAVE_OFFSET_64BIT): Ditto.
5391         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
5392         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
5393         (AIX_FUNC_DESC_SC_32BIT): Ditto.
5394         (AIX_FUNC_DESC_SC_64BIT): Ditto.
5395         (ptrload): New mode attribute for the appropriate load of a pointer.
5396         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
5397         (call_indirect_aix64): Ditto.
5398         (call_value_indirect_aix32): Ditto.
5399         (call_value_indirect_aix64): Ditto.
5400         (call_indirect_nonlocal_aix32_internal): Ditto.
5401         (call_indirect_nonlocal_aix32): Ditto.
5402         (call_indirect_nonlocal_aix64_internal): Ditto.
5403         (call_indirect_nonlocal_aix64): Ditto.
5404         (call): Rewrite AIX indirect function calls.  Add support for
5405         eliminating the static chain, and for moving the save of the TOC
5406         to the function prologue.
5407         (call_value): Ditto.
5408         (call_indirect_aix<ptrsize>): Ditto.
5409         (call_indirect_aix<ptrsize>_internal): Ditto.
5410         (call_indirect_aix<ptrsize>_internal2): Ditto.
5411         (call_indirect_aix<ptrsize>_nor11): Ditto.
5412         (call_value_indirect_aix<ptrsize>): Ditto.
5413         (call_value_indirect_aix<ptrsize>_internal): Ditto.
5414         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
5415         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
5416         (call_nonlocal_aix32): Relocate in the rs6000.md file.
5417         (call_nonlocal_aix64): Ditto.
5418
5419         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
5420         -mno-r11 documentation.
5421
5422 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
5423
5424         PR other/49658
5425         * doc/extend.texi (Compound Literals): Fix typo.
5426
5427 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
5428
5429         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
5430
5431 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
5432
5433         * configure.ac (plugin-version.h): Generate
5434         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
5435         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
5436         macros.
5437
5438         * configure: Regenerate.
5439
5440         * doc/plugins.texi (Building GCC plugins): Mention
5441         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
5442
5443 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5444
5445         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
5446         * combine.c (make_extraction, gen_lowpart_or_truncate,
5447         apply_distributive_law, simplify_comparison,
5448         reg_truncated_to_mode, record_truncated_value): Use it.
5449         * cse.c (notreg_cost): Likewise.
5450         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
5451         * expr.c (convert_move, convert_modes): Likewise.
5452         * optabs.c (expand_binop, expand_unop): Likewise.
5453         * postreload.c (move2add_last_label): Likewise.
5454         * regmove.c (optimize_reg_copy_3): Likewise.
5455         * rtlhooks.c (gen_lowpart_general): Likewise.
5456         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
5457
5458 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
5459
5460         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
5461
5462 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5463
5464         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
5465         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
5466         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
5467         (simplify_const_unary_operation, simplify_binary_operation_1,
5468         simplify_const_binary_operation, simplify_const_relational_operation):
5469         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
5470         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
5471         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
5472         simplify_shift_const_1, simplify_comparison): Likewise.
5473         * expr.c (convert_modes): Likewise.
5474         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
5475         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
5476         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
5477
5478         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
5479
5480 2011-07-06  Richard Guenther  <rguenther@suse.de>
5481
5482         PR tree-optimization/49645
5483         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
5484         register variables.
5485         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
5486         in type qualification here ...
5487         (copy_reference_ops_from_ref): ... not here.
5488         (vn_reference_lookup_3): ... or here.
5489         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
5490         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
5491
5492 2011-07-06  Ian Lance Taylor  <iant@google.com>
5493
5494         * doc/install.texi (Configuration): It's
5495         --enable-gnu-indirect-function, not --enable-indirect-function.
5496
5497 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
5498
5499         * simplify-rtx.c (simplify_const_binary_operation): Use the
5500         shift_truncation_mask hook instead of performing modulo by width.
5501         Compare against mode precision, not bitsize.
5502         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
5503         Use shift_truncation_mask instead of constructing the value manually.
5504
5505 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
5506
5507         PR middle-end/47383
5508         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
5509         address computation and convert to address_mode if needed.
5510
5511 2011-07-06  Richard Guenther  <rguenther@suse.de>
5512
5513         * tree.c (build_common_tree_nodes_2): Merge with
5514         build_common_tree_nodes.
5515         * tree.h (build_common_tree_nodes): Adjust prototype.
5516         (build_common_tree_nodes_2): Remove.
5517         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
5518         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
5519
5520 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
5521
5522         PR tree-optimization/49618
5523         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
5524         t recurse on the decl.
5525         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
5526         return true if expr isn't known to be defined in current
5527         TU or some other LTO partition.
5528
5529 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
5530
5531         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
5532         override CASE_VALUES_THRESHOLD.
5533
5534         * stmt.c (toplevel): Include params.h.
5535         (case_values_threshold): Use the --param case-values-threshold
5536         value if non-zero, otherwise use machine dependent value.
5537         (expand_case): Use case_values_threshold.
5538
5539         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
5540
5541         * doc/invoke.texi (--param case-values-threshold): Document.
5542
5543 2011-07-05  Richard Henderson  <rth@redhat.com>
5544
5545         * dwarf2out.c (dwarf2out_cfi_label): Make static.
5546         (dwarf2out_flush_queued_reg_saves): Make static.
5547         (dwarf2out_reg_save): Remove.
5548         (dwarf2out_return_save): Remove.
5549         (dwarf2out_return_reg): Remove.
5550         (dwarf2out_reg_save_reg): Remove.
5551         (dwarf2out_def_cfa): Merge into ...
5552         (dwarf2out_frame_init): ... here.
5553         * dwarf2out.h, tree.h: Remove declarations as necessary.
5554
5555 2011-07-05  Richard Henderson  <rth@redhat.com>
5556
5557         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
5558         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5559         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
5560         the alloc insn.
5561
5562         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
5563         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
5564         (process_epilogue): Don't call dwarf2out_def_cfa.
5565
5566         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
5567         indicate the return address save.
5568         (process_cfa_register): Likewise.
5569
5570         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
5571         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
5572
5573         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
5574         for ar.pfs save at alloc insn.
5575
5576 2011-07-05  Richard Henderson  <rth@redhat.com>
5577
5578         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
5579         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
5580         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
5581         stack pointer save.
5582         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
5583         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
5584         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
5585         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
5586
5587 2011-07-05  Richard Henderson  <rth@redhat.com>
5588
5589         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
5590         VUNSPEC_* constants here instead of via define_constants.
5591         (VUNSPEC_PEM): New constant.
5592         (procedure_entry_mask): New insn.
5593         (prologue): New expander.
5594         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
5595         (vax_expand_prologue): Rename from vax_output_function_prologue;
5596         emit rtl instead of text.
5597         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
5598         (print_operand): Add 'x' prefix.
5599
5600 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5601
5602         PR middle-end/47715
5603         * calls.c (precompute_register_parameters): Promote the function
5604         argument before checking non-legitimate constant.
5605
5606 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5607
5608         PR tree-optimization/47654
5609         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
5610         (lst_do_strip_mine_loop): Return an int.
5611         (lst_do_strip_mine): Same.
5612         (scop_do_strip_mine): Same.
5613         (scop_do_block): Loop blocking should strip-mine at least two loops.
5614         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
5615         (scop_do_interchange): Same.
5616         * graphite-poly.h (scop_do_interchange): Update declaration.
5617         (scop_do_strip_mine): Same.
5618
5619 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5620
5621         * graphite-clast-to-gimple.c (precision_for_value): Removed.
5622         (precision_for_interval): Removed.
5623         (gcc_type_for_interval): Use mpz_sizeinbase.
5624
5625 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5626
5627         * graphite-ppl.h (value_max): Correct computation of max.
5628
5629 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
5630
5631         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
5632
5633 2011-07-05  Richard Guenther  <rguenther@suse.de>
5634
5635         * c-decl.c (c_init_decl_processing): Defer building common
5636         tree nodes to c_common_nodes_and_builtins.
5637
5638 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
5639
5640         PR tree-optimization/49580
5641         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
5642         the loop's number of iterations.
5643         * tree-parloops.c (transform_to_exit_first_loop): Add the
5644         handling of the loop's number of iterations before the call
5645         to gimple_duplicate_sese_tail.
5646         Insert the stmt caclculating the new rhs of the loop's
5647         condition stmt to the preheader instead of iters_bb.
5648
5649 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
5650
5651         PR rtl-optimization/47449
5652         * fwprop.c (forward_propagate_subreg): Don't propagate hard
5653         register nor zero/sign extended hard register.
5654
5655 2011-07-05  Richard Guenther  <rguenther@suse.de>
5656
5657         PR tree-optimization/49518
5658         PR tree-optimization/49628
5659         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
5660         irrelevant and invariant data-references.
5661         (vect_analyze_data_ref_access): For invariant loads clear the
5662         group association.
5663
5664 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
5665
5666         PR rtl-optimization/49619
5667         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
5668         pass VOIDmode as op0_mode to recursive call, and return temp even
5669         when different from tor, just if it is not IOR of the original
5670         PLUS arguments.
5671
5672         PR rtl-optimization/49472
5673         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
5674         negating MULT, negate the second operand instead of first.
5675         (simplify_binary_operation_1) <case MULT>: If one operand is
5676         a NEG and the other is MULT, don't attempt to optimize by negation
5677         of the MULT operand if it only moves the NEG operation around.
5678
5679         PR debug/49602
5680         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
5681         get_current_def return value if it can't be trusted to be
5682         the current value of the variable in the current bb.
5683
5684 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
5685
5686         PR target/49600
5687         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
5688         general register to memory for !TARGET_INTER_UNIT_MOVES.
5689
5690 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5691
5692         PR target/44643
5693         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
5694         instead of TREE_READONLY.
5695
5696 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5697
5698         * doc/extend.texi (AVR Built-in Functions): Update documentation
5699         of __builtin_avr_fmul*.
5700         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
5701         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
5702         * config/avr/avr.md (fmul): Rename to fmul_insn.
5703         (fmuls): Rename to fmuls_insn.
5704         (fmulsu): Rename to fmulsu_insn.
5705         (fmul,fmuls,fmulsu): New expander.
5706         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
5707         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
5708         * config/avr/libgcc.S (__fmul): New function.
5709         (__fmuls): New function.
5710         (__fmulsu,__fmulsu_exit): New function.
5711
5712 2011-07-04  Richard Guenther  <rguenther@suse.de>
5713
5714         PR tree-optimization/49615
5715         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
5716         basic-block index check.
5717
5718 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
5719
5720         * longlong.h (count_leading_zeros, count_trailing_zeros,
5721         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
5722         resp. 64.
5723
5724 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
5725
5726         PR tree-optimization/49610
5727         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
5728         a basic block.
5729
5730 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
5731             Olivier Hainque  <hainque@adacore.com>
5732             Nicolas Setton  <setton@adacore.com>
5733
5734         * tree.h (TYPE_ARTIFICIAL): New flag.
5735         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
5736         the DIE of the type if it is artificial.
5737         (gen_array_type_die): Likewise.
5738         (gen_enumeration_type_die): Likewise.
5739         (gen_struct_or_union_type_die): Likewise.
5740         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
5741         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
5742
5743 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
5744
5745         * tree-object-size.c (pass_through_call): Handle
5746         BUILT_IN_ASSUME_ALIGNED.
5747
5748 2011-07-01  Martin Jambor  <mjambor@suse.cz>
5749
5750         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
5751
5752 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
5753
5754         PR middle-end/48016
5755         * explow.c (update_nonlocal_goto_save_area): Use proper mode
5756         for stack save area.
5757         * function.c (expand_function_start): Likewise.
5758
5759 2011-07-01  Richard Guenther  <rguenther@suse.de>
5760
5761         PR middle-end/49596
5762         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
5763         may have unknown refs.
5764
5765 2011-07-01  Kai Tietz  <ktietz@redhat.com>
5766
5767         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
5768
5769 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5770
5771         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
5772         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
5773         (Specific, mips-sgi-irix6): Likewise.
5774
5775 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5776
5777         PR libmudflap/49549
5778         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
5779
5780 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
5781
5782         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
5783         [idx]= and [idx1 ... idx2]= before initializers if needed for
5784         array initializers.
5785
5786 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
5787
5788         * config.gcc (score-*-elf): Remove score7.o.
5789         * config/score/t-score-elf: Likewise.
5790         * config/score/score.c: Merge score7 to score.c and
5791         remove forwarding functions.
5792         * config/score/score7.c: Deleted.
5793         * config/score/score7.h: Deleted.
5794
5795 2011-07-01  Richard Guenther  <rguenther@suse.de>
5796
5797         PR tree-optimization/49603
5798         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
5799
5800 2011-06-30  Martin Jambor  <mjambor@suse.cz>
5801
5802         * tree-sra.c (struct access): Rename total_scalarization to
5803         grp_total_scalarization
5804         (completely_scalarize_var): New function.
5805         (sort_and_splice_var_accesses): Set total_scalarization in the
5806         representative access.
5807         (analyze_access_subtree): Propagate total scalarization accross the
5808         tree, no holes in totally scalarized trees, simplify coverage
5809         computation.
5810         (analyze_all_variable_accesses): Call completely_scalarize_var instead
5811         of completely_scalarize_record.
5812
5813 2011-06-30  Richard Henderson  <rth@redhat.com>
5814
5815         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
5816         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
5817         * config/i386/i386.c: Don't include dwarf2out.h.
5818         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
5819         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
5820         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
5821         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
5822         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
5823
5824 2011-06-30  Richard Henderson  <rth@redhat.com>
5825
5826         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
5827         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
5828         * final.c (final_scan_insn): Look for it, and invoke
5829         dwarf2out_frame_debug before the insn if found.
5830
5831 2011-06-30  Richard Henderson  <rth@redhat.com>
5832
5833         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
5834         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
5835
5836 2011-06-30  Richard Henderson  <rth@redhat.com>
5837
5838         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
5839         Define a vector of this type.
5840         (regs_saved_in_regs): Use a VEC.
5841         (num_regs_saved_in_regs): Remove.
5842         (compare_reg_or_pc): New.
5843         (record_reg_saved_in_reg): Split out from...
5844         (dwarf2out_flush_queued_reg_saves): ... here.
5845         (clobbers_queued_reg_save): Update for VEC.
5846         (reg_saved_in): Likewise.
5847         (dwarf2out_frame_debug_init): Likewise.
5848         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
5849         (dwarf2out_frame_debug_cfa_register): Likewise.
5850
5851 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
5852
5853         PR tree-optimization/49572
5854         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
5855         type of the RHS instead of that of the LHS for the expression type.
5856
5857 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
5858
5859         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
5860         unconditionally.
5861
5862 2011-06-30  Richard Guenther  <rguenther@suse.de>
5863
5864         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
5865         * tree-ssa-structalias.c (create_variable_info_for): Do not
5866         add initial constraints for non-var-decls.  Properly handle
5867         globals in other ltrans partitions.
5868         (intra_create_variable_infos): Manually create constraints for
5869         the fake no-alias parameter.
5870         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
5871         and assert there are no clones.
5872
5873 2011-06-30  Richard Guenther  <rguenther@suse.de>
5874
5875         PR tree-optimization/46787
5876         * tree-data-ref.c (dr_address_invariant_p): Remove.
5877         (find_data_references_in_stmt): Invariant accesses are ok now.
5878         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
5879         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
5880         invariant loads.
5881
5882 2011-06-30  Martin Jambor  <mjambor@suse.cz>
5883
5884         PR tree-optimization/49094
5885         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
5886         (build_accesses_from_assign): Use it.
5887
5888 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
5889
5890         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5891         handling of BUILT_IN_ASSUME_ALIGNED.
5892
5893         PR debug/49364
5894         * dwarf2out.c (output_abbrev_section): Don't return early
5895         if abbrev_die_table_in_use is 1.
5896         (dwarf2out_finish): Instead don't call output_abbrev_section
5897         nor emit abbrev_section_label in that case.
5898
5899 2011-06-30  Nick Clifton  <nickc@redhat.com>
5900
5901         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
5902         for the V850E.
5903
5904 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
5905
5906         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
5907         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
5908
5909 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
5910
5911         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
5912         both pattern and original statements if necessary.
5913         (vect_transform_loop): Likewise.
5914         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
5915         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
5916         Mark the pattern statement only if the original statement doesn't
5917         have its own uses.
5918         (process_use): Call vect_mark_relevant with additional parameter.
5919         (vect_mark_stmts_to_be_vectorized): Likewise.
5920         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
5921         (vect_analyze_stmt): Handle both pattern and original statements
5922         if necessary.
5923         (vect_transform_stmt): Don't store vectorized pattern statement
5924         in the original statement.
5925         (vect_is_simple_use_1): Use related pattern statement only if the
5926         original statement is irrelevant.
5927         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
5928
5929 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
5930
5931         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
5932         option.
5933         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
5934         entry.
5935         (TARGET_AVX128_OPTIMAL): New definition.
5936         * config/i386/i386.c (initial_ix86_tune_features): Initialize
5937         X86_TUNE_AVX128_OPTIMAL entry.
5938         (ix86_option_override_internal): Enable the generation
5939         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
5940         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
5941         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
5942
5943 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
5944
5945         PR tree-optimization/49539
5946         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
5947         names by means of stmt_references_abnormal_ssa_name.
5948         (associate_plusminus): Call can_propagate_from before propagating
5949         from definition statements.
5950         (ssa_forward_propagate_and_combine): Remove superfluous newline.
5951
5952 2011-06-29  Richard Guenther  <rguenther@suse.de>
5953
5954         * doc/invoke.texi: Document -scev dump modifier.
5955         * tree-pass.h (TDF_SCEV): New dump flag.
5956         * tree-dump.c (dump_option_value_in): Add scev.
5957         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
5958         * tree-scalar-evolution.c: Likewise.
5959
5960 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
5961
5962         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
5963         (cxa_type_match): Correct declaration.
5964         (__gnu_unwind_pr_common): Reconstruct additional indirection
5965         when __cxa_type_match returns succeeded_with_ptr_to_base.
5966
5967 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5968
5969         PR rtl-optimization/49114
5970         * reload.c (struct replacement): Remove SUBREG_LOC member.
5971         (push_reload): Do not set it.
5972         (push_replacement): Likewise.
5973         (subst_reload): Remove dead code.
5974         (copy_replacements): Remove assertion.
5975         (copy_replacements_1): Do not handle SUBREG_LOC.
5976         (move_replacements): Likewise.
5977         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
5978         Detect subregs via recursive descent instead of via SUBREG_LOC.
5979
5980 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
5981
5982         * config/avr/avr.c (avr_encode_section_info): Dispatch to
5983         default_encode_section_info.
5984
5985 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
5986
5987         PR tree-optimization/49545
5988         * builtins.c (get_object_alignment_1): Update function comment.
5989         Do not use DECL_ALIGN for functions, but test
5990         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
5991         * fold-const.c (get_pointer_modulus_and_residue): Don't check
5992         for functions here.
5993         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5994
5995 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
5996
5997         PR debug/49567
5998         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
5999         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
6000
6001 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
6002
6003         PR target/34734
6004         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
6005         about uninitialized data attributed 'progmem' from here...
6006         (avr_encode_section_info): ...to this new function.
6007         (TARGET_ENCODE_SECTION_INFO): New define.
6008         (avr_section_type_flags): For data in ".progmem.data", remove
6009         section flag SECTION_WRITE.
6010
6011 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
6012
6013         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
6014         _xmulhisi3_exit.
6015         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
6016         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
6017         (__umulhisi3): Ditto.
6018         * config/avr/avr.md (mulhisi3): New insn expender.
6019         (umulhisi3): New insn expender.
6020         (*mulhisi3_call): New insn.
6021         (*umulhisi3_call): New insn.
6022
6023 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
6024
6025         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
6026
6027 2011-06-28  Richard Henderson  <rth@redhat.com>
6028
6029         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
6030         all code and arguments that handled pushes.  Update all callers.
6031
6032 2011-06-28  Richard Henderson  <rth@redhat.com>
6033
6034         * config/arm/arm.c (arm_output_function_prologue): Don't call
6035         thumb1_output_function_prologue.
6036         (arm_expand_prologue): Avoid dead store.
6037         (number_of_first_bit_set): Use ctz_hwi.
6038         (thumb1_emit_multi_reg_push): New.
6039         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
6040         to emit the entire prologue as rtl.
6041         (thumb1_output_interwork): Split out from
6042         thumb1_output_function_prologue.
6043         (thumb1_output_function_prologue): Remove.
6044         (arm_attr_length_push_multi): Handle thumb1.
6045         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
6046         (prologue_thumb1_interwork): New.
6047         (*push_multi): Allow thumb1; use push_mult_memory_operand.
6048         * config/arm/predicates.md (push_mult_memory_operand): New.
6049
6050 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
6051
6052         * config/sparc/sync.md (*stbar): Delete.
6053         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
6054
6055 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
6056
6057         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
6058
6059 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6060
6061         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
6062         (TARGET_64BIT_DEFAULT): Define.
6063         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
6064         of tm_file.
6065         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
6066
6067 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
6068
6069         * common.opt (in_lto_p): New Variable entry.
6070         * flags.h (in_lto_p): Move to common.opt.
6071         * gcc.c: Include params.h.
6072         (set_option_handlers): Also use common_handle_option and
6073         target_handle_option.
6074         (main): Call global_init_params, finish_params and init_options_struct.
6075         * opts.c (debug_type_names): Move from toplev.c.
6076         (print_filtered_help): Access quiet_flag through opts pointer.
6077         (common_handle_option): Return early in the driver for some options.
6078         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
6079         opts pointer.
6080         * toplev.c (in_lto_p): Move to common.opt.
6081         (debug_type_names): Move to opts.c.
6082         * Makefile.in (OBJS): Remove opts.o.
6083         (OBJS-libcommon-target): Add opts.o.
6084         (gcc.o): Update dependencies.
6085
6086 2011-06-28  Kai Tietz  <ktietz@redhat.com>
6087
6088         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
6089
6090 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6091
6092         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
6093         with '=' constraint modifier.
6094         (*divdf3_vfp): Likewise.
6095         ("*mulsf3_vfp"): Likewise.
6096         ("*muldf3_vfp"): Likewise.
6097         ("*mulsf3negsf_vfp"): Likewise.
6098         ("*muldf3negdf_vfp"): Likewise.
6099
6100 2011-06-28  Nick Clifton  <nickc@redhat.com>
6101
6102         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
6103         relaxation when performing an incremental link.
6104
6105 2011-06-28  Kai Tietz  <ktietz@redhat.com>
6106
6107         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
6108         within BB from last to first.
6109
6110 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
6111
6112         * genattr-common.c: New.  Based on genattr.c.
6113         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
6114         (MOSTLYCLEANFILES): Add insn-attr-common.h.
6115         (opts.o): Update dependencies.
6116         (.PRECIOUS): Add insn-attr-common.h.
6117         (simple_rtl_generated_h): Add insn-attr-common.h.
6118         (build/genattr-common.o): New.
6119         (genprogrtl): Add attr-common.
6120         * genattr.c (main): Include insn-attr-common.h.  Don't generate
6121         definitions of DELAY_SLOTS or INSN_SCHEDULING.
6122         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
6123
6124 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
6125
6126         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
6127         avr-*-* and avr-*-rtems* targets.
6128
6129         * config/avr/elf.h: New file.
6130         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
6131         (TARGET_ASM_SELECT_SECTION): Define.
6132         (INIT_SECTION_ASM_OP): Undefine.
6133         (FINI_SECTION_ASM_OP): Undefine.
6134         (READONLY_DATA_SECTION_ASM_OP): Undefine.
6135         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
6136         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
6137         * config/avr/avr.h:
6138         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
6139         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
6140         (MAX_OFILE_ALIGNMENT): Move to elf.h.
6141         (STRING_LIMIT): Move to elf.h.
6142         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
6143         (ASM_DECLARE_OBJECT_NAME): Remove.
6144         (ESCAPES): Remove.
6145         (ASM_OUTPUT_SKIP): Remove.
6146         (DWARF2_DEBUGGING_INFO): Remove.
6147         (OBJECT_FORMAT_ELF): Remove.
6148         (USER_LABEL_PREFIX): Remove.
6149         (ASM_OUTPUT_EXTERNAL): Remove.
6150         (ASM_OUTPUT_ASCII): Remove.
6151         (TYPE_ASM_OP): Remove.
6152         (SIZE_ASM_OP): Remove.
6153         (WEAK_ASM_OP): Remove.
6154         (STRING_ASM_OP): Remove.
6155         (SET_ASM_OP): Remove.
6156         (ASM_WEAKEN_LABEL): Remove.
6157         (TYPE_OPERAND_FMT): Remove.
6158         (ASM_DECLARE_FUNCTION_SIZE): Remove.
6159         (ASM_FINISH_DECLARE_OBJECT): Remove.
6160         (NO_DOLLAR_IN_LABEL): Remove.
6161         (ASM_GENERATE_INTERNAL_LABEL): Remove.
6162         (ASM_OUTPUT_CASE_LABEL): Remove.
6163         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
6164         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
6165         (gas_output_ascii): Remove.
6166         (gas_output_limited_string): Remove.
6167         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
6168         * config/avr/avr-protos.h
6169         (gas_output_ascii): Remove prototye.
6170         (gas_output_limited_string): Remove prototype.
6171
6172 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
6173
6174         PR target/48637
6175         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
6176         asm operands.
6177
6178 2011-06-27  Jan Hubicka  <jh@suse.cz>
6179
6180         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
6181         node instead of references in node.
6182
6183 2011-06-27  Richard Henderson  <rth@redhat.com>
6184
6185         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
6186         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
6187         inside ifdef.
6188
6189 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
6190
6191         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
6192
6193         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
6194         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
6195         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
6196         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
6197         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
6198         (evaluate_stmt, execute_fold_all_builtins): Handle
6199         BUILT_IN_ASSUME_ALIGNED.
6200         * tree-ssa-dce.c (propagate_necessity): Likewise.
6201         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
6202         call_may_clobber_ref_p_1): Likewise.
6203         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
6204         (expand_builtin_assume_aligned): New function.
6205         * doc/extend.texi (__builtin_assume_aligned): Document.
6206
6207         PR debug/49544
6208         * cselib.c (promote_debug_loc): If cselib_preserve_constants
6209         and l has two DEBUG_INSN owned locs instead of just one, adjust
6210         the second location's setting_insn too.
6211
6212 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6213
6214         PR libmudflap/38738
6215         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
6216
6217 2011-06-27  Nick Clifton  <nickc@redhat.com>
6218
6219         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
6220         bit position of highest bit set into a count of the high zero bits.
6221
6222 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6223
6224         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
6225
6226 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6227
6228         PR lto/48492
6229         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
6230         to a NULL parent.
6231
6232 2011-06-27  Richard Guenther  <rguenther@suse.de>
6233
6234         PR tree-optimization/49394
6235         * passes.c (execute_one_pass): Restore current_pass after
6236         applying IPA transforms.
6237
6238 2011-06-27  Kai Tietz  <ktietz@redhat.com>
6239
6240         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
6241         out of type precision after operation.
6242         (find_bswap): Take for limit value the integer auto-promotion
6243         into account.
6244
6245 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6246
6247         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
6248         forward scan as well.
6249
6250 2011-06-27  Tristan Gingold  <gingold@adacore.com>
6251
6252         PR target/44241
6253         * config/vms/vms-protos.h: New file.
6254         * config/vms/vms-crtlmap.map: New file.
6255         * config/vms/vms.c: New file.
6256         * config/vms/make-crtlmap.awk: New file.
6257         * config/vms/vms-crtl.h: File removed.
6258         * config/vms/vms-crtl-64.h: File removed.
6259         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
6260         * config/alpha/vms64.h: Do not include vms-crtl-64.h
6261         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
6262         clear some builtins on VMS.  Calls vms_patch_builtins.
6263         (avms_asm_output_external): Remove.
6264         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
6265         (struct crtl_name_spec): Remove
6266         (DO_CTRL_NAMES): Remove.
6267         * config/ia64/vms.h (struct crtl_name_spec): Remove
6268         (DO_CTRL_NAMES): Remove.
6269         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
6270         clear some builtins on VMS.  Calls vms_patch_builtins.
6271         (ia64_asm_output_external): Remove DO_CRTL_NAME.
6272         * config/ia64/vms64.h: Do not include vms-crtl-64.h
6273         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
6274
6275 2011-06-27  Tristan Gingold  <gingold@adacore.com>
6276
6277         * config/alpha/alpha.c (alpha_end_function): Always generate .end
6278         directive on VMS.
6279
6280 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
6281
6282         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
6283         the function receives nonlocal gotos.
6284
6285 2011-06-27  Richard Guenther  <rguenther@suse.de>
6286
6287         PR tree-optimization/49536
6288         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
6289         For non-scalar inner types use a scalar type according to
6290         the scalar inner mode.
6291
6292 2011-06-27  Richard Guenther  <rguenther@suse.de>
6293
6294         PR tree-optimization/49365
6295         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
6296
6297 2011-06-27  Richard Guenther  <rguenther@suse.de>
6298
6299         PR tree-optimization/49169
6300         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
6301         the alignment of function decls.
6302
6303 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
6304
6305         PR target/47997
6306         * config/darwin.c (darwin_mergeable_string_section): Place string
6307         constants in '.cstring' rather than '.const' when CF/NSStrings are
6308         active.
6309
6310 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
6311
6312         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
6313         (emit_save_register_window): Likewise.
6314         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
6315         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
6316         Swap back %o7/%i7 in register naming.
6317
6318 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
6319
6320         PR driver/49371
6321         * config/darwin.c (darwin_override_options): Improve warning when
6322         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
6323         is given with fpie/fPIE.
6324         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
6325         * config/darwin9.h (PIE_SPEC): New.
6326
6327 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
6328
6329         * timevar.c (timevar_print): Increase width for display of timevar
6330         name.
6331
6332 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
6333
6334         PR c++/46400
6335         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
6336         instead of TYPE_CHAIN for chain_next for types.
6337
6338 2011-06-24  Richard Henderson  <rth@redhat.com>
6339
6340         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
6341         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
6342         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
6343         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
6344         (sparc_flat_expand_prologue): Emit individual instructions
6345         instead of one of the above.
6346
6347 2011-06-24  Easwaran Raman  <eraman@google.com>
6348
6349         PR rtl-optimization/49429
6350         PR target/49454
6351         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
6352         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
6353         used to copy y into x.
6354         * calls.c (initialize_argument_information): Mark
6355         an argument addressable if it is passed by invisible reference.
6356         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
6357         if it is passed by reference.
6358
6359 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
6360
6361         PR rtl-optimization/49504
6362         * rtlanal.c (nonzero_bits1): Properly handle addition or
6363         subtraction of a pointer in Pmode if pointers extend unsigned.
6364         (num_sign_bit_copies1): Likewise.
6365
6366 2011-06-24  Martin Jambor  <mjambor@suse.cz>
6367
6368         PR tree-optimizations/49516
6369         * tree-sra.c (sra_modify_assign): Choose the safe path for
6370         aggregate copies if we also did scalar replacements.
6371
6372 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6373
6374         PR target/49335
6375         * config/arm/predicates.md (add_operator): New.
6376         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
6377
6378 2011-06-24  Andi Kleen  <ak@linux.intel.com>
6379
6380         * tree-sra.c (type_internals_preclude_sra_p): Add msg
6381         parameter. Split up ifs and report reason in *msg.
6382         (reject): Add.
6383         (find_var_candiate): Add msg variable.
6384         Split up ifs and report reason to reject.
6385         (find_param_candidates): Add msg variable.
6386         Pass msg to type_internals_preclude_sra_p.
6387
6388 2011-06-23  Jeff Law  <law@redhat.com>
6389
6390         PR middle-end/48770
6391         * reload.h (reload): Change to return a bool.
6392         * ira.c (ira): If requested by reload, run a fast DCE pass after
6393         reload has completed.  Fix comment typo.
6394         * reload1.c (need_dce): New file scoped static.
6395         (reload): Set reload_completed here.  Return whether or not a DCE
6396         pass after reload is needed.
6397         (delete_dead_insn): Set need_dce as needed.
6398
6399         PR middle-end/49465
6400         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
6401         to detect threading through joiner block.  If there was already
6402         an edge to the new target, then do not change the PHI nodes.
6403
6404 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
6405
6406         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
6407         get_pointer_alignment to see if base isn't sufficiently aligned.
6408
6409 2011-06-23  Jan Hubicka  <jh@suse.cz>
6410
6411         PR tree-optimize/49373
6412         * tree-pass.h (all_late_ipa_passes): Declare.
6413         * cgraphunit.c (init_lowered_empty_function): Fix properties.
6414         (cgraph_optimize): Execute late passes; remove unreachable funcions
6415         after materialization.
6416         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
6417         LTOing.
6418         * passes.c (all_late_ipa_passes): Declare.
6419         (dump_passes, register_pass): Handle late ipa passes.
6420         (init_optimization_passes): Move ipa_pta to late passes; schedule
6421         fixup_cfg at beggining of all_passes.
6422         (apply_ipa_transforms): New function.
6423         (execute_one_pass): When doing simple ipa pass, apply all transforms.
6424
6425 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
6426
6427         * params.c: Include common/common-target.h.  Don't include tm.h.
6428         (lang_independent_params): Move from toplev.c.
6429         (global_init_params): New.
6430         * params.h (global_init_params): Declare.
6431         * target.def (default_params): Move to common-target.def.
6432         * toplev.c (lang_independent_options): Remove.
6433         (lang_independent_params): Move to params.c.
6434         (general_init): Use global_init_params.
6435         * common/common-target.def (option_default_params): Move from
6436         target.def.
6437         * common/config/ia64/ia64-common.c: Include params.h.
6438         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6439         from ia64.c.
6440         * common/config/rs6000/rs6000-common.c: Include params.h.
6441         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6442         from rs6000.c.
6443         * common/config/sh/sh-common.c: Include params.h.
6444         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6445         from sh.c.
6446         * common/config/spu/spu-common.c: Include params.h.
6447         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
6448         from spu.c.
6449         * config/ia64/ia64.c (ia64_option_default_params,
6450         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
6451         * config/rs6000/rs6000.c (rs6000_option_default_params,
6452         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
6453         * config/sh/sh.c (sh_option_default_params,
6454         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
6455         * config/spu/spu.c (spu_option_default_params,
6456         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
6457         * Makefile.in (OBJS): Remove params.o.
6458         (OBJS-libcommon-target): Add params.o.
6459         (params.o, $(common_out_object_file)): Update dependencies.
6460         * doc/tm.texi: Regenerate.
6461
6462 2011-06-23  Alan Modra  <amodra@gmail.com>
6463
6464         PR bootstrap/49383
6465         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
6466         invocation for 2011-06-09 changes.
6467
6468 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
6469
6470         PR libgomp/49490
6471         * omp-low.c (expand_omp_for_static_nochunk): Only
6472         use n ceil/ nthreads size for the first n % nthreads threads in the
6473         team instead of all threads except for the last few ones which
6474         get less work or none at all.
6475
6476         PR debug/49496
6477         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
6478         uses.
6479
6480 2011-06-22  Richard Guenther  <rguenther@suse.de>
6481
6482         PR tree-optimization/49493
6483         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
6484         Refer to the alias target of variables.
6485         (associate_varinfo_to_alias_1): Remove.
6486         (ipa_pta_execute): Do not associate aliases with anything.
6487         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
6488         (cgraph_function_node): Likewise.
6489         (cgraph_function_or_thunk_node): Likewise.
6490         (varpool_variable_node): Likewise.
6491
6492 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
6493
6494         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
6495         * config.gcc (arm*-*-linux*): Default to gnu tls.
6496         (arm*-*-*): Add --with-tls option.
6497         (all_defaults): Add 'tls'.
6498
6499 2011-06-22  Richard Henderson  <rth@redhat.com>
6500
6501         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
6502         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
6503         (dwarf2out_frame_debug_cfa_window_save): Rename from
6504         dwarf2out_window_save; make static.
6505         * tree.h (dwarf2out_window_save): Don't declare.
6506
6507         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
6508         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
6509         (emit_save_register_window): Rename from gen_save_register_window;
6510         emit the insn and add REG_CFA_* notes.
6511         (sparc_expand_prologue): Update to match.
6512         * config/sparc/sparc.md (save_register_window_1): Simplify from
6513         save_register_window<P:mode>.
6514
6515 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
6516
6517         PR target/49497
6518         * config/i386/i386.md (*lea_general_2): Always allow SImode.
6519         (*lea_general_2_zext): Likewise.
6520         (imul to lea peepholes): Use const359_operand and check
6521         TARGET_PARTIAL_REG_STALL.
6522
6523         * config/i386/predicates.md (const359_operand): New.
6524
6525 2011-06-22  Michael Matz  <matz@suse.de>
6526
6527         * cgraphunit.c (assemble_thunk): Use correct return type.
6528
6529 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
6530             Dmitry Melnik  <dm@ispras.ru>
6531
6532         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
6533         (neon_output_shift_immediate): Ditto.
6534         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
6535         prototype.
6536         (neon_output_shift_immediate): Ditto.
6537         * config/arm/neon.md (vashl<mode>3): Modified constraint.
6538         (vashr<mode>3_imm): New insn pattern.
6539         (vlshr<mode>3_imm): Ditto.
6540         (vashr<mode>3): Modified constraint.
6541         (vlshr<mode>3): Ditto.
6542         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
6543         predicate.
6544         (imm_for_neon_rshift_operand): Ditto.
6545         (imm_lshift_or_reg_neon): Ditto.
6546         (imm_rshift_or_reg_neon): Ditto.
6547
6548         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
6549
6550 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
6551
6552         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
6553         builtin calls even if likelyvalue is not CONSTANT.
6554         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
6555         Return get_value_for_expr of first operand
6556         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
6557         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
6558         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
6559         their non-checking counterparts.
6560         (call_may_clobber_ref_p_1): Likewise.
6561         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
6562         like their non-checking counterparts.
6563         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6564         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
6565         like their non-checking counterparts.
6566         (find_func_clobbers): Likewise.
6567         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
6568         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
6569
6570         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
6571         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
6572         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
6573         of base type reference as argument.
6574         (resolve_addr_in_expr): Likewise.  Fix keep computation.
6575         (convert_descriptor_to_signed): Renamed to...
6576         (convert_descriptor_to_mode): ... this.  For wider types convert to
6577         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
6578         (typed_binop): New function.
6579         (scompare_loc_descriptor, ucompare_loc_descriptor,
6580         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
6581         default to unsigned type instead of signed.
6582
6583         PR debug/47858
6584         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
6585         (gimple_build_debug_source_bind_stat): New prototype.
6586         (gimple_build_debug_source_bind): Define.
6587         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
6588         gimple_debug_source_bind_get_value,
6589         gimple_debug_source_bind_get_value_ptr,
6590         gimple_debug_source_bind_set_var,
6591         gimple_debug_source_bind_set_value): New inlines.
6592         * gimple.c (gimple_build_debug_source_bind_stat): New function.
6593         * gimple-pretty-print.c (dump_gimple_debug): Handle
6594         GIMPLE_DEBUG_SOURCE_BIND.
6595         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
6596         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
6597         * tree-parloops.c (eliminate_local_variables,
6598         separate_decls_in_region): Likewise.
6599         (separate_decls_in_region_debug): Renamed from
6600         separate_decls_in_region_debug_bind.  Handle
6601         gimple_debug_source_bind_p.
6602         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
6603         prototypes.
6604         (DECL_HAS_DEBUG_ARGS_P): Define.
6605         (struct tree_function_decl): Add has_debug_args_flag field.
6606         * tree.c (debug_args_for_decl): New variable.
6607         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
6608         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
6609         (rewrite_debug_stmt_uses): New function.
6610         (rewrite_stmt): Use it to rewrite debug stmt uses.
6611         * rtl.def (DEBUG_PARAMETER_REF): New.
6612         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
6613         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
6614         DEBUG_PARAMETER_REF.
6615         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
6616         * print-rtl.c (print_rtx): Likewise.
6617         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
6618         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
6619         debug stmts in the first bb.
6620         * tree-inline.c (remap_ssa_name): If remapping default def
6621         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
6622         a source bind debug stmt.
6623         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
6624         (maybe_move_debug_stmts_to_successors): Likewise.
6625         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
6626         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
6627         debug args vector from old_decl to new_decl.
6628         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
6629         or modified parameters, add debug bind stmts before call
6630         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
6631         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
6632         on DECL_DEBUG_EXPRs from debug args vector.
6633         (expand_debug_source_expr): New function.
6634         (expand_debug_locations): Use it for source bind insns.
6635         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
6636         * var-tracking.c (prepare_call_arguments): Add debug args
6637         to call_arguments if any.
6638         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
6639         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
6640         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
6641         (get_ref_die_offset, parameter_ref_descriptor): New functions.
6642         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
6643         (gen_subprogram_die): Handle parameters identified by
6644         DEBUG_PARAMETER_REF.
6645
6646 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
6647
6648         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
6649         * doc/install.texi (Configuration): Document --with-tls.
6650         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
6651         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
6652         (arm_tls_descseq_addr): New.
6653         (legitimize_tls_address): Add tlsdesc support.
6654         (arm_cannot_copy_insn_p): Check for tlscall.
6655         (arm_emit_tls_decoration): Likewise.
6656         * config/arm/arm.h (TARGET_GNU2_TLS): New.
6657         (OPTION_DEFAULT_SPECS): Add with-tls support.
6658         * config/arm/arm.md (R1_REGNUM): Define.
6659         (tlscall): New.
6660         * config/arm/arm.opt (tls_type): New enumeration type and values.
6661         (mtls-dialect): New switch.
6662         * config/arm/arm-opts.h (enum tls_type): New.
6663
6664 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
6665
6666         * attribs.c (register_attribute): Added assert to check that all
6667         attribute specs are registered with a name that is not empty and
6668         does not start with '_'.
6669         (decl_attributes): Avoid the lookup of the "naked" attribute spec
6670         if the function has no attributes.
6671         * tree.c (is_attribute_with_length_p): Removed.
6672         (is_attribute_p): Removed.
6673         (private_is_attribute_p): New.
6674         (private_lookup_attribute): New.
6675         (lookup_attribute): Removed.
6676         (lookup_ident_attribute): New.
6677         (remove_attribute): Require the first argument to be in the form
6678         'text', not '__text__'.  Updated asserts.
6679         (merge_attributes): Use lookup_ident_attributes instead of
6680         lookup_attribute.
6681         (merge_dllimport_decl_attributes): Use remove_attribute.
6682         (attribute_list_contained): Likewise.
6683         (attribute_list_equal): Immediately return 1 if the arguments are
6684         identical pointers.
6685         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
6686         'int'.  Require the first argument to be in the form 'text', not
6687         '__text__'.  Require the second argument to be an identifier.
6688         (lookup_attribute): Made inline.  Require the first argument to be
6689         in the form 'text', not '__text__'.
6690         (private_is_attribute_p, private_lookup_attribute): New.
6691         Updated comments.
6692
6693 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
6694
6695         * builtins.c: Add sync_ or SYNC__ to builtin names.
6696         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
6697         * omp-low.c: Add sync_ or SYNC__ to builtin names.
6698
6699 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
6700
6701         PR target/33049
6702         * config/avr/avr.md (extzv): New expander.
6703         (*extzv): New insn.
6704         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
6705         * config/avr/constraints.md (C04): New constraint.
6706         * doc/md.texi (Machine Constraints): Document it.
6707
6708 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
6709
6710         PR middle-end/49489
6711         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
6712         unsignedp argument instead of 1 for clrsb_optab.
6713         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
6714         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
6715         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
6716         * optabs.c (widen_leading): Call widen_operand and expand_unop
6717         with 0 as unsignedp argument instead of 1 for clrsb_optab.
6718         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
6719
6720 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
6721
6722         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
6723
6724 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
6725
6726         * gensupport.c (add_define_attr): New static function.
6727         (is_predicable): Allow multi-alternative lists for the "predicable"
6728         attribute.
6729         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
6730         (process_one_cond_exec): Call alter_attrs_for_insn.
6731         * doc/md.texi (Defining Attributes): Mention some standard names.
6732         (Conditional Execution): Update documentation for "predicable".
6733
6734         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
6735         __builtin_clrsbll): Document.
6736         * doc/rtl.texi (clrsb): New entry.
6737         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
6738         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
6739         (expand_unop): Handle clrsb_optab.
6740         (init_optabs): Initialize it.
6741         * optabs.h (enum optab_index): New entry OTI_clrsb.
6742         (clrsb_optab): Define.
6743         * genopinit.c (optabs): Add an entry for it.
6744         * builtins.c (expand_builtin): Handle clrsb builtin functions.
6745         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
6746         BUILT_IN_CLRSBLL): New.
6747         * rtl.def (CLRSB): New code.
6748         * dwarf2out.c (mem_loc_descriptor): Handle it.
6749         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
6750         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
6751         and popcount.
6752         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
6753         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
6754         (__ctzDI2): Move declaration.
6755         * config/bfin/bfin.md (clrsbsi2): New expander.
6756         (signbitssi2): Use the CLRSB rtx.
6757         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
6758         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
6759
6760 2011-06-21  Richard Guenther  <rguenther@suse.de>
6761
6762         * ipa-inline-transform.c (inline_transform): Fix previous change.
6763
6764 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
6765
6766         PR tree-optimization/49478
6767         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
6768         with constant operand.
6769
6770 2011-06-21  Richard Guenther  <rguenther@suse.de>
6771
6772         * ipa-inline-transform.c (inline_transform): Fix typo.
6773
6774 2011-06-21  Richard Guenther  <rguenther@suse.de>
6775
6776         PR tree-optimization/49483
6777         * tree-vect-stmts.c (vectorizable_assignment): Also handle
6778         VIEW_CONVERT_EXPR conversions.
6779
6780 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
6781
6782         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
6783         * config/avr/avr-tables.opt: New file (generated).
6784         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
6785         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
6786         avr-mcus.def.
6787         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
6788         (avr_option_override): Don't process -mmcu= argument here.  Set
6789         avr_current_device using avr_mcu_index.
6790         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
6791         * config/avr/avr.opt (mmcu=): Use Enum.
6792         * config/avr/t-avr (avr-devices.o): Update dependencies.
6793         ($(srcdir)/config/avr/avr-tables.opt): New.
6794         * target.def (help): Remove.
6795         * doc/tm.texi.in (TARGET_HELP): Remove.
6796         * doc/tm.texi: Regenerate.
6797         * opts.c: Don't include target.h.
6798         (common_handle_option): Don't call targetm.help.
6799         * system.h (TARGET_HELP): Poison.
6800         * Makefile.in (opts.o): Update dependencies.
6801
6802 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6803
6804         * config/usegld.h: New file.
6805         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
6806         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
6807         (LIB_SPEC): Likewise.  Search /lib.
6808         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
6809         (RDYNAMIC_SPEC): Handle GNU ld.
6810         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
6811         Define.
6812         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
6813         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
6814         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
6815         (STACK_CHECK_STATIC_BUILTIN): Define.
6816         * config/sol2.opt (compat-bsd): Remove.
6817         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
6818         * config/sol2-bi.h: New file.
6819         * config/sol2-gld.h: Remove.
6820         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
6821         (NO_DBX_BNSYM_ENSYM): Remove.
6822         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6823         (STACK_CHECK_STATIC_BUILTIN): Remove.
6824         Test USE_GLD instead of TARGET_GNU_LD.
6825         * config/i386/sol2-10.h: Rename to ...
6826         * config/i386/sol2-bi.h .. this.
6827         (SUBTARGET_EXTRA_SPECS): Redefine.
6828         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
6829         (MULTILIB_DEFAULTS): Remove.
6830         (DEFAULT_ARCH32_P): Define.
6831         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
6832         (ARCH64_SUBDIR): Define.
6833         Test USE_GLD instead of TARGET_GNU_LD.
6834         (I386_EMULATION): Rename to ...
6835         (ARCH32_EMULATION): ... this.
6836         (X86_64_EMULATION): Rename to ...
6837         (ARCH64_EMULATION): ... this.
6838         (TARGET_LD_EMULATION): Remove.
6839         (LINK_ARCH_SPEC): Remove.
6840         * config/i386/sol2-gas.h: Remove.
6841         * config/i386/t-sol2-10: Rename to ...
6842         * config/i386/t-sol2-64: ... this.
6843         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
6844         (AS_SPARC64_FLAG): Define.
6845         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
6846         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
6847         depending on TARGET_CPU_DEFAULT.
6848         (CPP_CPU_SPEC): Redefine.
6849         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
6850         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
6851         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
6852         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
6853         ASM_ARCH_DEFAULT_SPEC): Redefine.
6854         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
6855         LINK_ARCH_DEFAULT_SPEC.
6856         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
6857         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
6858         (ARCH64_SUBDIR): Define.
6859         (LINK_ARCH64_SPEC): Redefine.
6860         (CC1_SPEC): Redefine.
6861         (OPTION_DEFAULT_SPECS): Redefine.
6862         (MULTILIB_DEFAULTS): Define.
6863         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
6864         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
6865         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
6866         (NO_DBX_BNSYM_ENSYM): Remove.
6867         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
6868         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
6869         (TARGET_ASM_NAMED_SECTION): Likewise.
6870         (STACK_CHECK_STATIC_BUILTIN): Remove.
6871         * config/sparc/sol2-bi.h: Remove.
6872         * config/sparc/sol2-gas-bi.h: Remove.
6873         * config/sparc/sol2-gas.h: Remove.
6874         * config/sparc/sol2-gld-bi.h: Remove.
6875         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
6876         common parts ...
6877         (*-*-solaris2*): ... here.
6878
6879 2011-06-21  Christian Bruel  <christian.bruel@st.com>
6880
6881         PR other/43564
6882         * ipa-inline.c (can_inline_edge_p): Check
6883         !DECL_DISREGARD_INLINE_LIMITS.
6884
6885 2011-06-21  Christian Bruel  <christian.bruel@st.com>
6886
6887         PR middle-end/49139
6888         * cgraphunit.c (process_function_and_variable_attributes): warn when
6889         always_inline functions that are not inline.
6890         * ipa-inline-transform.c (inline_transform): Always call
6891         optimize_inline.
6892         * tree-inline.c (tree_inlinable_function_p): Use error instead
6893         of sorry.
6894         (expand_call_inline): Likewise.
6895
6896 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
6897
6898         * Makefile.in (dg_target_exps): Set.
6899         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
6900         instead of 7, try to divide it more evenly.
6901
6902 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
6903
6904         PR target/49089
6905         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
6906         (avx256_split_unaligned_store): New definition.
6907         (ix86_option_override_internal): Enable avx256 unaligned load/store
6908         splitting only when avx256_split_unaligned_load/store is set.
6909
6910 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
6911
6912         * regrename.c (scan_rtx_reg): Handle the case where we write to an
6913         open chain in a smaller mode without failing the entire block.
6914
6915 2011-06-21  Alan Modra  <amodra@gmail.com>
6916
6917         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
6918         CONST high part large-toc address.
6919         (rs6000_tls_referenced_p): Make static.
6920         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
6921
6922 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
6923
6924         PR target/49385
6925         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
6926         one of the operands is a register.
6927
6928 2011-06-20  Kai Tietz  <ktietz@redhat.com>
6929
6930         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
6931         operations in combination with binary and.
6932
6933 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
6934
6935         * regrename.c (do_replace): Don't update notes.
6936
6937 2011-06-20  Alan Modra  <amodra@gmail.com>
6938
6939         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
6940         of toc-relative address in CONST.
6941         (rs6000_delegitimize_address): Recognize changed address.
6942         (rs6000_legitimize_reload_address): Likewise.
6943         (rs6000_emit_move): Don't force these constants to memory.
6944         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
6945         toc-relative address in CONST.
6946         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
6947         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
6948
6949 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6950
6951         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
6952         (count_trailing_zeros): Likewise.
6953
6954 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
6955
6956         PR other/49325
6957         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
6958         .init_array can be used with .ctors on targets.
6959         * configure: Regenerated.
6960
6961 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
6962
6963         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
6964         if the element type is volatile.
6965
6966 2011-06-18  Jan Hubicka  <jh@suse.cz>
6967
6968         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
6969         extra name aliases.
6970         (lto_symtab_resolve_can_prevail_p): Likewise.
6971         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
6972         * cgraphbuild.c (record_reference): Remove extra body alias code.
6973         (mark_load): Likewise.
6974         (mark_store): Likewise.
6975         * cgraph.h (varpool_node): Remove extra_name filed;
6976         add alias_of and extraname_alias.
6977         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
6978         (varpool_alias_aliased_node): New inline function.
6979         (varpool_variable_node): New function.
6980         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
6981         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
6982         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
6983         (input_varpool_node): Likewise.
6984         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
6985         (varpool_externally_visible_p): Remove extra body alias code.
6986         (function_and_variable_visibility): Likewise.
6987         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
6988         (ipa_pta_execute): Use it.
6989         * varpool.c (varpool_remove_node): Remove extra name alias code.
6990         (varpool_mark_needed_node): Likewise.
6991         (varpool_analyze_pending_decls): Analyze aliases.
6992         (assemble_aliases): New functoin.
6993         (varpool_assemble_decl): Use it.
6994         (varpool_create_variable_alias): New function.
6995         (varpool_extra_name_alias): Rewrite.
6996         (varpool_for_node_and_aliases): New function.
6997
6998 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
6999
7000         PR target/49411
7001         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
7002         last_arg_constant and last argument doesn't match its predicate,
7003         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
7004         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
7005         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
7006         spelling of error message.
7007         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
7008         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
7009         const_0_to_255_operand instead of const_int_operand.
7010
7011         Revert:
7012         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
7013
7014         * config/i386/sse.md (blendbits): Remove mode attribute.
7015         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
7016         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
7017         Check integer value of operand 3 in insn constraint.
7018
7019 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
7020
7021         PR rtl-optimization/48542
7022         * reload.c (find_equiv_reg): Stop looking when finding a
7023         setjmp-type call.
7024         * reload1.c (reload_as_needed): Invalidate all reload
7025         registers when crossing a setjmp-type call.
7026
7027 2011-06-16  Jeff Law  <law@redhat.com>
7028
7029         * tree-ssa-threadupdate.c (struct redirection_data): New field
7030         intermediate_edge.
7031         (THREAD_TARGET2): Define.
7032         (redirection_data_eq): Also check that the intermediate edge is equal.
7033         (lookup_redirection_data): Drop useless argument.  Extract the
7034         outgoing_edge and intermediate edge from E.  Callers updated.
7035         (copy_phi_args, update_destination_phis): New functions.
7036         (fix_duplicate_block_edges): Likewise.
7037         (create_edge_and_update_destination_phis): Duplicate all the edges
7038         hung off e->aux.  Use copy_phi_args.
7039         (create_duplicates): Use fix_duplicate_block_edges.
7040         (fixup_template_block): Likewise.
7041         (redirect_edges): If necessary, redirect the joiner block's incoming
7042         edge to the duplicate of the joiner block.
7043         (thread_block): Don't muck up loops when threading through a joiner
7044         block.
7045         (thread_through_loop_header): Handle threading through a joiner block.
7046         (mark_threaded_blocks, register_jump_thread): Likewise.
7047         * tree-flow.h (register_jump_thread): Add new argument.  Callers
7048         updated.
7049         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
7050         (thread_across_edge): Handle threading through a joiner block.
7051
7052 2011-06-16  Martin Jambor  <mjambor@suse.cz>
7053
7054         PR tree-optimization/49343
7055         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
7056         calculate offset, provide 2nd operand for the new COMPONENT_REF.
7057
7058 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
7059
7060         * config/darwin-protos.h (machopic_select_rtx_section): Move to
7061         inside RTX_CODE ifdef.
7062
7063 2011-06-16  Tom de Vries  <tom@codesourcery.com>
7064
7065         PR target/45098
7066         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
7067         Disallow NULL pointer for pointer arithmetic.
7068
7069 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
7070
7071         PR target/49398
7072         Revert.
7073         2011-06-10  Wei Guozhi  <carrot@google.com>
7074
7075         PR target/45335
7076         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
7077         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
7078         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
7079         related peephole2.
7080         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
7081         related peephole2.
7082         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
7083         (arm_legitimate_ldrd_p): New prototype.
7084         (arm_output_ldrd): New prototype.
7085         * config/arm/arm.c (arm_check_ldrd_operands): New function.
7086         (arm_legitimate_ldrd_p): New function.
7087         (arm_output_ldrd): New function.
7088
7089 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
7090
7091         PR middle-end/46500
7092         * doc/tm.texi.in: Update Copyright date.
7093         * doc/tm.texi: Regenerate.
7094         * targhooks.c (default_setup_incoming_varargs): Replace
7095         CUMULATIVE_ARGS* argument type with cumulative_args_t.
7096         (default_pretend_outgoing_varargs_named): Likewise.
7097         (hook_pass_by_reference_must_pass_in_stack): Likewise.
7098         (hook_callee_copies_named): Likewise.
7099         (default_function_arg_advance): Likewise.
7100         (default_function_arg): Likewise.
7101         (default_function_incoming_arg): Likewise.
7102         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
7103         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
7104         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
7105         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
7106         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
7107         * targhooks.h (default_setup_incoming_varargs): Likewise.
7108         (default_pretend_outgoing_varargs_named): Likewise.
7109         (hook_pass_by_reference_must_pass_in_stack): Likewise.
7110         (hook_callee_copies_named): Likewise.
7111         (default_function_arg_advance): Likewise.
7112         (default_function_arg): Likewise.
7113         (default_function_incoming_arg): Likewise.
7114         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
7115         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
7116         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
7117         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
7118         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
7119         * target.def (pass_by_reference): Likewise.
7120         (setup_incoming_varargs, strict_argument_naming): Likewise.
7121         (pretend_outgoing_varargs_named, callee_copies): Likewise.
7122         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
7123         (function_incoming_arg): Likewise.
7124         * target.h: Don't include "tm.h" .
7125         (cumulative_args_t): New typedef.
7126         [GCC_TM_H] (get_cumulative_args): New static inline function.
7127         [GCC_TM_H] (pack_cumulative_args): Likewise.
7128         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
7129         argument type with cumulative_args_t.
7130         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
7131         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
7132         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
7133         (frv_arg_partial_bytes, frv_function_arg): Likewise.
7134         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
7135         (frv_function_arg_1): Likewise.
7136         * config/s390/s390.c (s390_pass_by_reference): Likewise.
7137         (s390_function_arg_advance, s390_function_arg): Likewise.
7138         * config/m32c/m32c.c (m32c_function_arg): Likewise.
7139         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
7140         (m32c_strict_argument_naming): Likewise.
7141         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
7142         (spu_function_arg_advance): Likewise.
7143         (spu_setup_incoming_varargs): Likewise.  Make static.
7144         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
7145         Remove prototype.
7146         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
7147         CUMULATIVE_ARGS* argument type with cumulative_args_t.
7148         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
7149         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
7150         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
7151         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
7152         (mep_pass_by_reference, mep_function_arg): Likewise.
7153         (mep_function_arg_advance): Likewise.
7154         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
7155         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
7156         (m32r_function_arg, m32r_function_arg_advance): Likewise.
7157         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
7158         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
7159         (ix86_function_arg, ix86_pass_by_reference): Likewise.
7160         (ix86_setup_incoming_varargs): Likewise.
7161         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
7162         (sh_strict_argument_naming): Likewise.
7163         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
7164         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
7165         (sh_function_arg_advance, sh_function_arg): Likewise.
7166         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
7167         (pdp11_function_arg_advance): Likewise.
7168         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
7169         Likewise.
7170         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
7171         * config/avr/avr.c (avr_function_arg): Likewise.
7172         (avr_function_arg_advance): Likewise.
7173         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
7174         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
7175         (xtensa_function_arg_1): Likewise.
7176         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
7177         Likewise.
7178         (xstormy16_function_arg): Likewise.
7179         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
7180         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
7181         (fr30_function_arg_advance): Likewise.
7182         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
7183         (lm32_function_arg, lm32_function_arg_advance): Likewise.
7184         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
7185         (moxie_function_arg, moxie_function_arg_advance): Likewise.
7186         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
7187         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
7188         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
7189         (cris_function_arg, cris_function_incoming_arg): Likewise.
7190         (cris_function_arg_advance, cris_function_arg_1): Likewise.
7191         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
7192         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
7193         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
7194         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
7195         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
7196         (mn10300_arg_partial_bytes): Likewise.
7197         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
7198         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
7199         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
7200         (ia64_function_arg_1): Likewise.
7201         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
7202         (m68k_function_arg): Likewise.
7203         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
7204         (rs6000_function_arg, setup_incoming_varargs): Likewise.
7205         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
7206         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
7207         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
7208         (picochip_arg_advance): Likewise.
7209         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
7210         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
7211         (mcore_function_arg_advance): Likewise.
7212         * config/score/score.c (score_pass_by_reference): Likewise.
7213         (score_function_arg_advance): Likewise.
7214         (score_arg_partial_bytes): Likewise.  Make static.
7215         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
7216         * config/arm/arm.c (arm_arg_partial_bytes): Replace
7217         CUMULATIVE_ARGS* argument type with cumulative_args_t.
7218         (arm_function_arg, arm_function_arg_advance): Likewise.
7219         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
7220         * config/pa/pa.c (pa_pass_by_reference): Likewise.
7221         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
7222         (pa_function_arg): Likewise.
7223         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
7224         (mips_function_arg, mips_function_arg_advance): Likewise.
7225         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
7226         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
7227         * config/vax/vax.c (vax_function_arg): Likewise.
7228         (vax_function_arg_advance): Likewise.
7229         * config/h8300/h8300.c (h8300_function_arg): Likewise.
7230         (h8300_function_arg_advance): Likewise.
7231         * config/v850/v850.c (v850_pass_by_reference): Likewise.
7232         (v850_strict_argument_naming, v850_function_arg): Likewise.
7233         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
7234         (v850_setup_incoming_varargs): Likewise.
7235         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
7236         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
7237         (mmix_function_arg, mmix_pass_by_reference): Likewise.
7238         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
7239         with const void *.
7240         * config/bfin/bfin.c (setup_incoming_varargs): Replace
7241         CUMULATIVE_ARGS* argument type with cumulative_args_t.
7242         (bfin_function_arg_advance, bfin_function_arg): Likewise.
7243         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
7244         * calls.c (emit_call_1): Change type of args_so_far to
7245         cumulative_args_t.  Changed all callers.
7246         (initialize_argument_information): Likewise.
7247         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
7248         * dse.c (get_call_args): Likewise.
7249         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
7250         * function.c (pass_by_reference, reference_callee_copied): Likewise.
7251         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
7252         New member args_so_far_v.  Changed all users.
7253         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
7254         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
7255         * config/mips/mips.c (mips_output_args_xfer): Likewise.
7256         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
7257         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
7258         * config/microblaze/microblaze.c (microblaze_expand_prologue):
7259         Likewise.
7260         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
7261         m32r_pass_by_reference.
7262
7263 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
7264
7265         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
7266         argument to be a VEC of statements.
7267         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
7268         assert that pattern statements have to have their vector type set.
7269         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
7270         Change the first argument to be a VEC of statements.  Update
7271         documentation.
7272         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
7273         (vect_handle_widen_mult_by_const): New function.
7274         (vect_recog_widen_mult_pattern):  Change the first argument to be a
7275         VEC of statements.  Update documentation.  Check that the constant is
7276         INTEGER_CST.  Support multiplication by a constant that fits an
7277         intermediate type - call vect_handle_widen_mult_by_const.
7278         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
7279         call.  Handle additional pattern statements if necessary.
7280
7281 2011-06-16  Nick Clifton  <nickc@redhat.com>
7282
7283         PR target/49427
7284         * config.gcc: Set cpu_type to v850 for any V850 architecture.
7285         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
7286         md_file, extra_modes, out_file and extra_options are these are all
7287         deduced from cpu_type.
7288
7289 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
7290
7291         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
7292         truncation mask to 63.
7293
7294 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
7295
7296         PR target/49313
7297         PR target/29524
7298         * longlong.h: Add AVR support:
7299         (count_leading_zeros): New macro.
7300         (count_trailing_zeros): New macro.
7301         (COUNT_LEADING_ZEROS_0): New macro.
7302         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
7303         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
7304         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
7305         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
7306         (LIB2FUNCS_EXCLUDE): Add _clz.
7307         * config/avr/libgcc.S (XCALL): Move up in file.
7308         (XJMP): New C Macro.
7309         (DEFUN): New asm macro.
7310         (ENDF): New asm macro.
7311         (__ffssi2): New function.
7312         (__ffshi2): New function.
7313         (__loop_ffsqi2): New function.
7314         (__ctzsi2): New function.
7315         (__ctzhi2): New function.
7316         (__clzdi2): New function.
7317         (__clzsi2): New function.
7318         (__clzhi2): New function.
7319         (__paritydi2): New function.
7320         (__paritysi2): New function.
7321         (__parityhi2): New function.
7322         (__parityqi2): New function.
7323         (__popcounthi2): New function.
7324         (__popcountsi2): New function.
7325         (__popcountdi2): New function.
7326         (__popcountqi2): New function.
7327         (__bswapsi2): New function.
7328         (__bswapdi2): New function.
7329         (__ashldi3): New function.
7330         (__ashrdi3): New function.
7331         (__lshrdi3): New function.
7332         Fix suspicous lines.
7333
7334 2011-06-16  Richard Guenther  <rguenther@suse.de>
7335
7336         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
7337         the same as x != 0.
7338         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
7339         to (bool) X & 1.
7340         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
7341         equality compares against zero for the lower bit.
7342
7343 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
7344
7345         PR tree-optimization/49419
7346         * tree-vrp.c (execute_vrp): Call init_range_assertions
7347         before estimate_numbers_of_iterations, call
7348         free_number_of_iterations_estimates before calling
7349         remove_range_assertions.
7350
7351 2011-06-16  Revital Eres  <revital.eres@linaro.org>
7352
7353         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
7354         (struct partial_schedule): Add rows_length field.
7355         (verify_partial_schedule): Check rows_length.
7356         (ps_insert_empty_row): Handle rows_length.
7357         (create_partial_schedule): Likewise.
7358         (free_partial_schedule): Likewise.
7359         (reset_partial_schedule): Likewise.
7360         (create_ps_insn): Remove rest_count argument.
7361         (remove_node_from_ps): Update rows_length.
7362         (add_node_to_ps): Update rows_length and call create_ps_insn
7363         without passing row_rest_count.
7364         (rotate_partial_schedule): Update rows_length.
7365
7366 2011-06-16  Revital Eres  <revital.eres@linaro.org>
7367
7368         * ddg.c (add_intra_loop_mem_dep): New function.
7369         (build_intra_loop_deps): Call it.
7370
7371 2011-06-13  Jeff Law  <law@redhat.com>
7372
7373         * df-problems.c (df_lr_local_compute): Manually CSE
7374         PIC_OFFSET_TABLE_REGNUM.
7375         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
7376         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
7377
7378 2011-06-13  Jan Hubicka  <jh@suse.cz>
7379
7380         * cgraphunit.c (handle_alias_pairs): New function.
7381         (cgraph_finalize_compilation_unit): Use it.
7382         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
7383         as externally visible.
7384
7385 2011-06-15  Richard Guenther  <rguenther@suse.de>
7386
7387         * expr.c (expand_expr_real_2): Reduce all integral types to
7388         bitfield precision.
7389         (expand_expr_real_1): Likewise.
7390
7391 2011-06-15  Martin Jambor  <mjambor@suse.cz>
7392
7393         PR tree-optimization/48613
7394         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
7395         ipa_node_params_vector is NULL.
7396
7397 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
7398
7399         PR debug/49382
7400         * dwarf2out.c (dw_loc_list_node): Add force field.
7401         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
7402         location in the list, even if it is modified before first real insn.
7403         (output_loc_list): Emit empty ranges with force flag set.
7404         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
7405
7406 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
7407
7408         PR target/49349
7409         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
7410         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
7411         above a fence.  Update comments.
7412         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
7413         placed just above it.  Do not allow NULL place_to_insert.
7414
7415 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
7416
7417         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
7418         (slpeel_tree_peel_loop_to_edge): Don't call
7419         remove_dead_stmts_from_loop.
7420         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
7421         remove irrelevant pattern statements.  For irrelevant statements
7422         check if it is the last statement of a detected pattern, use
7423         corresponding pattern statement instead.
7424         (destroy_loop_vec_info): No need to remove pattern statements,
7425         only free stmt_vec_info.
7426         (vect_transform_loop): For irrelevant statements check if it is
7427         the last statement of a detected pattern, use corresponding
7428         pattern statement instead.
7429         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
7430         pattern statements.  Set basic block for the new statement.
7431         (vect_pattern_recog): Update documentation.
7432         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
7433         operands of pattern statements.
7434         (vectorizable_call): Fix printing.  In case of a pattern statement
7435         use the lhs of the original statement when creating a dummy
7436         statement to replace the original call.
7437         (vect_analyze_stmt): For irrelevant statements check if it is
7438         the last statement of a detected pattern, use corresponding
7439         pattern statement instead.
7440         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
7441         statements use gsi of the original statement.
7442
7443 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
7444
7445         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
7446         common/common-target-def.h.
7447         * target.def (default_target_flags, handle_option,
7448         supports_split_stack, optimization_table, init_struct,
7449         except_unwind_info, unwind_tables_default, have_named_sections):
7450         Move to common/common-target.def.
7451         * target.h (enum opt_levels, struct default_options): Move to
7452         common/common-target.h.
7453         * targhooks.c (default_except_unwind_info,
7454         dwarf2_except_unwind_info, sjlj_except_unwind_info,
7455         default_target_handle_option, empty_optimization_table): Move to
7456         common/common-targhooks.c.
7457         * targhooks.h (default_except_unwind_info,
7458         dwarf2_except_unwind_info, sjlj_except_unwind_info,
7459         default_target_handle_option, empty_optimization_table): Move to
7460         common/common-targhooks.h.
7461         * common/common-target-def.h: Include common/common-targhooks.h.
7462         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
7463         defined.
7464         * common/common-target.def (handle_option, option_init_struct,
7465         option_optimization_table, default_target_flags,
7466         except_unwind_info, supports_split_stack, unwind_tables_default,
7467         have_named_sections): Move from target.def.
7468         (HOOK_PREFIX): Undefine at end of file.
7469         * common/common-target.h: Include input.h.
7470         (enum opt_levels, struct default_options): Move from target.h.
7471         * common/common-targhooks.c, common/common-targhooks.h: New.
7472         * config.gcc (target_has_targetm_common): Default to yes.
7473         (moxie*): Set target_has_targetm_common=no.
7474         (hppa*-*-*): Don't set target_has_targetm_common=yes.
7475         * doc/tm.texi: Regenerate.
7476         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
7477         (C_TARGET_DEF_H): Add common/common-targhooks.h.
7478         (GCC_OBJS): Remove vec.o.
7479         (OBJS): Remove hooks.o and vec.o.
7480         (OBJS-libcommon-target): Add vec.o, hooks.o and
7481         common/common-targhooks.o.
7482         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
7483         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
7484         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
7485         cfglayout.o, $(out_object_file), $(common_out_object_file)):
7486         Update dependencies.
7487         (common/common-targhooks.o): New.
7488         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
7489         * common/config/pa/pa-common.c: Include more headers.  Take
7490         copyright dates from pa.c.
7491         (pa_option_optimization_table, pa_handle_option,
7492         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
7493         TARGET_HANDLE_OPTION): Move from pa.c.
7494         * common/config/alpha/alpha-common.c,
7495         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
7496         common/config/bfin/bfin-common.c,
7497         common/config/cris/cris-common.c,
7498         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
7499         common/config/h8300/h8300-common.c,
7500         common/config/i386/i386-common.c,
7501         common/config/ia64/ia64-common.c,
7502         common/config/iq2000/iq2000-common.c,
7503         common/config/lm32/lm32-common.c,
7504         common/config/m32c/m32c-common.c,
7505         common/config/m32r/m32r-common.c,
7506         common/config/m68k/m68k-common.c,
7507         common/config/mcore/mcore-common.c,
7508         common/config/mep/mep-common.c,
7509         common/config/microblaze/microblaze-common.c,
7510         common/config/mips/mips-common.c,
7511         common/config/mmix/mmix-common.c,
7512         common/config/mn10300/mn10300-common.c,
7513         common/config/pdp11/pdp11-common.c,
7514         common/config/picochip/picochip-common.c,
7515         common/config/rs6000/rs6000-common.c,
7516         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
7517         common/config/score/score-common.c, common/config/sh/sh-common.c,
7518         common/config/sparc/sparc-common.c,
7519         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
7520         common/config/vax/vax-common.c,
7521         common/config/xstormy16/xstormy16-common.c,
7522         common/config/xtensa/xtensa-common.c: New.
7523         * config/alpha/alpha.c: Include common/common-target.h.
7524         (alpha_option_optimization_table, alpha_handle_option,
7525         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7526         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
7527         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
7528         * config/arm/arm.c (arm_option_optimization_table,
7529         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7530         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
7531         arm-common.c.
7532         * config/avr/avr.c (avr_option_optimization_table,
7533         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7534         to avr-common.c.
7535         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
7536         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
7537         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
7538         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
7539         * config/cris/cris.c (cris_option_optimization_table,
7540         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7541         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
7542         cris-common.c.
7543         * config/fr30/fr30.c (fr30_option_optimization_table,
7544         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
7545         to fr30-common.c.
7546         * config/frv/frv.c (frv_option_optimization_table,
7547         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
7548         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
7549         * config/h8300/h8300.c (h8300_option_optimization_table,
7550         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7551         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
7552         * config/i386/i386-protos.h (ix86_handle_option): Declare.
7553         * config/i386/i386.c: Include common/common-target.h.
7554         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
7555         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
7556         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
7557         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
7558         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
7559         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
7560         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
7561         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
7562         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
7563         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
7564         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
7565         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
7566         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
7567         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
7568         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
7569         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
7570         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
7571         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
7572         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
7573         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
7574         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
7575         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
7576         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
7577         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
7578         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
7579         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
7580         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
7581         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
7582         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
7583         ix86_option_optimization_table, ix86_option_init_struct,
7584         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
7585         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7586         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
7587         i386-common.c.
7588         * config/i386/t-i386 (i386.o): Update dependencies.
7589         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
7590         * config/ia64/ia64.c (ia64_option_optimization_table,
7591         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7592         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7593         ia64_handle_option): Move to ia64-common.c.
7594         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
7595         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
7596         * config/lm32/lm32.c (lm32_option_optimization_table,
7597         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
7598         to lm32-common.c.
7599         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
7600         m32c-common.c.
7601         * config/m32r/m32r.c (m32r_option_optimization_table,
7602         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7603         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
7604         m32r_handle_option): Move to m32r-common.c.
7605         (m32r_memory_move_cost): Remove comment referring to
7606         TARGET_HANDLE_OPTION.
7607         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
7608         Move to m68k-common.c.
7609         * config/mcore/mcore.c (mcore_option_optimization_table,
7610         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7611         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
7612         * config/mep/mep.c (mep_option_optimization_table,
7613         mep_handle_option, TARGET_HANDLE_OPTION,
7614         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
7615         Move to mep-common.c.
7616         * config/microblaze/microblaze.c
7617         (microblaze_option_optimization_table,
7618         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
7619         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
7620         * config/mips/mips.c (mips_handle_option,
7621         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7622         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
7623         mips-common.c.
7624         * config/mmix/mmix.c (mmix_option_optimization_table,
7625         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7626         Move to mmix-common.c.
7627         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
7628         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
7629         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7630         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
7631         * config/pa/pa.c: Include common/common-target.h.
7632         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
7633         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7634         pa_handle_option): Move to pa-common.c.
7635         (pa_option_override): Use targetm_common.except_unwind_info.
7636         (pa_asm_output_mi_thunk, pa_function_section): Use
7637         targetm_common.have_named_sections.
7638         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
7639         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7640         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7641         pdp11_handle_option, pdp11_option_init_struct): Move to
7642         pdp11-common.c.
7643         * config/picochip/picochip.c (picochip_option_optimization_table,
7644         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
7645         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
7646         * config/rs6000/rs6000.c: Include common/common-target.h.
7647         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
7648         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
7649         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
7650         rs6000_handle_option): Move to rs6000-common.c.
7651         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
7652         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
7653         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7654         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
7655         * config/s390/s390.c (processor_flags_table,
7656         s390_option_optimization_table, s390_option_init_struct,
7657         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
7658         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
7659         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
7660         * config/s390/s390.h (processor_flags_table): Declare.
7661         * config/score/score.c (score_option_optimization_table,
7662         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7663         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
7664         score_handle_option): Move to score-common.c.
7665         * config/sh/sh.c (sh_option_optimization_table,
7666         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
7667         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
7668         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
7669         * config/sparc/sparc.c: Include common/common-target.h.
7670         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7671         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
7672         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
7673         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
7674         spu_option_init_struct): Move to spu-common.c.
7675         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
7676         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
7677         * config/v850/v850.c (small_memory_physical_max,
7678         v850_handle_memory_optionn v850_handle_option,
7679         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
7680         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
7681         v850-common.c.
7682         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
7683         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
7684         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
7685         Move to xtensa-common.c.
7686         * cfglayout.c: Include common/common-target.h.
7687         (fixup_reorder_chain): Use targetm_common.have_named_sections.
7688         * cfgrtl.c: Include common/common-target.h.
7689         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
7690         targetm_common.have_named_sections.
7691         * dbxout.c: Include common/common-target.h.
7692         (dbxout_function_end): Use targetm_common.have_named_sections.
7693         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
7694         targetm_common.except_unwind_info.
7695         * dwarf2out.c: Include common/common-target.h.
7696         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
7697         dwarf2out_begin_prologue, dwarf2out_frame_init,
7698         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
7699         targetm_common.except_unwind_info.
7700         * except.c: Include common/common-target.h.
7701         (init_eh, finish_eh_generation,
7702         output_one_function_exception_table): Use
7703         targetm_common.except_unwind_info.
7704         (switch_to_exception_section): Use targetm_common.have_named_sections.
7705         * explow.c: Include common/common-target.h.
7706         * expr.c: Include common/common-target.h.
7707         (build_personality_function): Use targetm_common.except_unwind_info.
7708         * function.c: Include common/common-target.h.
7709         (expand_function_end): Use targetm_common.except_unwind_info.
7710         * haifa-sched.c: Include common/common-target.h.
7711         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
7712         * lto-opts.c: Include common/common-target.h instead of target.h.
7713         (lto_reissue_options): Use targetm_common.handle_option.
7714         * opts.c: Include common/common-target.h.
7715         (target_handle_option): Use targetm_common.handle_option.
7716         (init_options_struct): Update comment referring to
7717         targetm.target_option.optimization.  Use
7718         targetm_common.default_target_flags,
7719         targetm_common.unwind_tables_default and
7720         targetm_common.option_init_struct.
7721         (default_options_optimization): Use
7722         targetm_common.option_optimization_table.
7723         (finish_options): Use targetm_common.except_unwind_info,
7724         targetm_common.unwind_tables_default,
7725         targetm_common.have_named_sections and
7726         targetm_common.supports_split_stack.
7727         * toplev.c: Include common/common-target.h.
7728         (process_options): Use targetm_common.have_named_sections.
7729         * tree-tailcall.c: Include common/common-target.h.
7730         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
7731         * tree.c: Include common/common-target.h.
7732         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
7733         * varasm.c: Include common/common-target.h.
7734         (resolve_unique_section, hot_function_section,
7735         default_function_section): Use targetm_common.have_named_sections.
7736
7737 2011-06-14  Easwaran Raman  <eraman@google.com>
7738
7739         PR rtl-optimization/44194
7740         * dse.c: Include tree-flow.h
7741         (insn_info): Add new field non_frame_wild_read.
7742         (group_info): Add new fields escaped_n and escaped_p.
7743         (kill_on_calls): New variable.
7744         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
7745         (dse_step0): Initialize kill_on_calls.
7746         (can_escape): New function.
7747         (set_usage_bits): Add additional parameter; record information
7748         about escaped locations.
7749         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
7750         (dse_step2_nospill): Set kill_on_calls based on
7751         group->escaped_n and group->escaped_n.
7752         (add_wild_read): Refactor into...
7753         (reset_active_stores): ... New function, and
7754         (free_read_records): ... New function.
7755         (add_non_frame_wild_read): New function.
7756         (scan_insn): Call add_non_frame_wild_read on non-const calls.
7757         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
7758         (dse_step5_nospill): Call scan_reads_nospill for instructions
7759         marked as non_frame_wild_read.
7760         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
7761
7762 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
7763
7764         * common/common-target-def.h, common/common-target.def,
7765         common/common-target.h, common/config/default-common.c,
7766         common/config/pa/pa-common.c: New files.
7767         * Makefile.in (common_out_file, common_out_object_file,
7768         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
7769         (OBJS-libcommon-target): Include $(common_out_object_file).
7770         (prefix.o): Update dependencies.
7771         ($(common_out_object_file), common/common-target-hooks-def.h,
7772         s-common-target-hooks-def-h): New.
7773         (s-tm-texi): Also check timestamp on common-target.def.
7774         (build/genhooks.o): Update dependencies.
7775         * config.gcc (common_out_file, target_has_targetm_common): Define.
7776         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
7777         TARGET_ALWAYS_STRIP_DOTDOT.
7778         * configure.ac (common_out_object_file): Define.
7779         (common_out_file, common_out_object_file): Substitute.
7780         (common): Create directory.
7781         * configure: Regenerate.
7782         * doc/tm.texi.in (targetm_common): Document.
7783         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
7784         * doc/tm.texi: Regenerate.
7785         * genhooks.c (hook_array): Also include common/common-target.def.
7786         * prefix.c (tm.h): Don't include.
7787         (common/common-target.h): Include.
7788         (ALWAYS_STRIP_DOTDOT): Don't define.
7789         (update_path): Use targetm_common.always_strip_dotdot instead of
7790         ALWAYS_STRIP_DOTDOT.
7791         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
7792
7793 2011-06-14  David Li  <davidxl@google.com>
7794
7795         * passes.c (execute_function_todo): Remove TODO_dump_func.
7796         (execute_one_pass): Remove TODO_dump_func.
7797         (execute_function_dump): New function.
7798         * tree-vrp.c: Remove TODO_dump_func.
7799         * regrename.c: Remove TODO_dump_func.
7800         * fwprop.c: Remove TODO_dump_func.
7801         * tree-into-ssa.c: Remove TODO_dump_func.
7802         * tree-complex.c: Remove TODO_dump_func.
7803         * tracer.c: Remove TODO_dump_func.
7804         * tree-loop-distribution.c: Remove TODO_dump_func.
7805         * postreload-gcse.c: Remove TODO_dump_func.
7806         * postreload.c: Remove TODO_dump_func.
7807         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
7808         * tree-tailcall.c: Remove TODO_dump_func.
7809         * ipa-cp.c: Remove TODO_dump_func.
7810         * final.c: Remove TODO_dump_func.
7811         * tree-emutls.c: Remove TODO_dump_func.
7812         * omp-low.c: Remove TODO_dump_func.
7813         * tree-ssa-dse.c: Remove TODO_dump_func.
7814         * tree-ssa-uncprop.c: Remove TODO_dump_func.
7815         * auto-inc-dec.c: Remove TODO_dump_func.
7816         * reorg.c: Remove TODO_dump_func.
7817         * tree-ssa-copyrename.c: Remove TODO_dump_func.
7818         * tree-ssa-ccp.c: Remove TODO_dump_func.
7819         * compare-elim.c: Remove TODO_dump_func.
7820         * mode-switching.c: Remove TODO_dump_func.
7821         * modulo-sched.c: Remove TODO_dump_func.
7822         * tree-call-cdce.c: Remove TODO_dump_func.
7823         * cse.c: Remove TODO_dump_func.
7824         * web.c: Remove TODO_dump_func.
7825         * tree-stdarg.c: Remove TODO_dump_func.
7826         * lto-streamer-out.c: Remove TODO_dump_func.
7827         * tree-ssa-math-opts.c: Remove TODO_dump_func.
7828         * tree-ssa-dom.c: Remove TODO_dump_func.
7829         * tree-nrv.c: Remove TODO_dump_func.
7830         * loop-init.c: Remove TODO_dump_func.
7831         * gimple-low.c: Remove TODO_dump_func.
7832         * ipa-inline.c: Remove TODO_dump_func.
7833         * tree-ssa-sink.c: Remove TODO_dump_func.
7834         * jump.c: Remove TODO_dump_func.
7835         * ifcvt.c: Remove TODO_dump_func.
7836         * tree-ssa-loop.c: Remove TODO_dump_func.
7837         * recog.c: Remove TODO_dump_func.
7838         * dse.c: Remove TODO_dump_func.
7839         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
7840         * matrix-reorg.c: Remove TODO_dump_func.
7841         * tree-eh.c: Remove TODO_dump_func.
7842         * regmove.c: Remove TODO_dump_func.
7843         * function.c: Remove TODO_dump_func.
7844         * tree-vectorizer.c: Remove TODO_dump_func.
7845         * ipa-split.c: Remove TODO_dump_func.
7846         * gcse.c: Remove TODO_dump_func.
7847         * tree-if-conv.c: Remove TODO_dump_func.
7848         * init-regs.c: Remove TODO_dump_func.
7849         * tree-ssa-phiopt.c: Remove TODO_dump_func.
7850         * implicit-zee.c: Remove TODO_dump_func.
7851         * lower-subreg.c: Remove TODO_dump_func.
7852         * bt-load.c: Remove TODO_dump_func.
7853         * tree-dfa.c: Remove TODO_dump_func.
7854         * except.c: Remove TODO_dump_func.
7855         * emit-rtl.c: Remove TODO_dump_func.
7856         * store-motion.c: Remove TODO_dump_func.
7857         * cfgexpand.c: Remove TODO_dump_func.
7858         * tree-cfgcleanup.c: Remove TODO_dump_func.
7859         * cfgcleanup.c: Remove TODO_dump_func.
7860         * tree-ssa-pre.c: Remove TODO_dump_func.
7861         * tree-sra.c: Remove TODO_dump_func.
7862         * tree-mudflap.c: Remove TODO_dump_func.
7863         * tree-ssa-copy.c: Remove TODO_dump_func.
7864         * cfglayout.c: Remove TODO_dump_func.
7865         * tree-ssa-forwprop.c: Remove TODO_dump_func.
7866         * tree-ssa-dce.c: Remove TODO_dump_func.
7867         * ira.c: Remove TODO_dump_func.
7868         * tree-ssa.c: Remove TODO_dump_func.
7869         * integrate.c: Remove TODO_dump_func.
7870         * tree-optimize.c: Remove TODO_dump_func.
7871         * tree-ssa-phiprop.c: Remove TODO_dump_func.
7872         * tree-object-size.c: Remove TODO_dump_func.
7873         * combine.c: Remove TODO_dump_func.
7874         * bb-reorder.c: Remove TODO_dump_func.
7875         * cprop.c: Remove TODO_dump_func.
7876         * var-tracking.c: Remove TODO_dump_func.
7877         * tree-profile.c: Remove TODO_dump_func.
7878         * tree-vect-generic.c: Remove TODO_dump_func.
7879         * reg-stack.c: Remove TODO_dump_func.
7880         * sched-rgn.c: Remove TODO_dump_func.
7881         * tree-ssa-structalias.c: Remove TODO_dump_func.
7882         * tree-switch-conversion.c: Remove TODO_dump_func.
7883         * tree-cfg.c: Remove TODO_dump_func.
7884         * tree-ssa-reassoc.c: Remove TODO_dump_func.
7885         * combine-stack-adj.c: Remove TODO_dump_func.
7886         * dce.c: Remove TODO_dump_func.
7887         * tree-ssanames.c: Remove TODO_dump_func.
7888         * regcprop.c: Remove TODO_dump_func.
7889
7890 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
7891
7892         PR middle-end/47364
7893         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
7894         and properly handle result not in Pmode.
7895
7896 2011-06-14  Robert Millan  <rmh@gnu.org>
7897
7898         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
7899         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
7900         `config/linux.h'.
7901
7902         * config/i386/kfreebsd-gnu64.h: New file.
7903         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
7904         with `i386/kfreebsd-gnu64.h'.
7905
7906         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
7907         (GNU_USER_LINK_EMULATION64): New macros.
7908         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
7909         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
7910         of hardcoding `elf_i386' and `elf_x86_64'.
7911
7912 2011-06-14  Nick Clifton  <nickc@redhat.com>
7913
7914         PR target/49403
7915         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
7916
7917         PR target/49402
7918         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
7919
7920 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
7921
7922         PR fortran/49103
7923         * tree.h (DECL_NONSHAREABLE): Define.
7924         (struct tree_decl_common): Change decl_common_unused to
7925         decl_nonshareable_flag.
7926         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
7927         Ignore vars with DECL_NONSHAREABLE bit set.
7928         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
7929         on stores to automatic aggregate vars.
7930
7931         PR rtl-optimization/49390
7932         Revert:
7933         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
7934
7935         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
7936         MEM_ALIAS_SET.
7937
7938 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
7939             Tom de Vries  <tom@codesourcery.com>
7940
7941         PR target/45098
7942         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
7943         Document changed semantics.
7944         (max_stmt_executions, max_stmt_executions_int): Declare.
7945         * tree-data-ref.c (estimated_loop_iterations)
7946         (estimated_loop_iterations_int): Move functions...
7947         * tree-ssa-loop-niter.c (estimated_loop_iterations)
7948         (estimated_loop_iterations_int): here.
7949         (record_estimate): Change nb_iterations_upper_bound and
7950         nb_iterations_estimate semantics.
7951         (max_stmt_executions, max_stmt_executions_int): New function.
7952         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
7953         (max_stmt_executions_tree): this.
7954         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
7955         estimated_loop_iterations_tree.
7956         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
7957         max_stmt_executions_int instead of estimated_loop_iterations_int.
7958         * predict.c (predict_loops): Idem.
7959         * tree-parloops.c (parallelize_loops): Idem.
7960         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
7961         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
7962         (init_omega_for_ddr_1): Idem.
7963         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
7964         (loop_prefetch_arrays): Idem
7965         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
7966         max_stmt_executions instead of estimated_loop_iterations.
7967         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
7968         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
7969         instead of nb_iterations_upper_bound.
7970
7971 2011-06-13  Jan Hubicka  <jh@suse.cz>
7972
7973         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
7974
7975 2011-06-14  Richard Henderson  <rth@redhat.com>
7976
7977         PR debug/48459
7978         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
7979         (based_loc_descr): Assert it's true.
7980         (compute_frame_pointer_to_fb_displacement): Set it, rather than
7981         aborting immediately.
7982
7983 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
7984             Mingfeng Wu  <mingfeng@faraday-tech.com>
7985
7986         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
7987
7988 2011-06-13  Jan Hubicka  <jh@suse.cz>
7989
7990         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
7991
7992 2011-06-13  Jan Hubicka  <jh@suse.cz>
7993
7994         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
7995         similarly to DECL_COMDAT.
7996         * cgraphunit.c (cgraph_analyze_function): Likewise.
7997         * ipa.c (function_and_variable_visibility): Likewise.
7998
7999 2011-06-13  Jan Hubicka  <jh@suse.cz>
8000
8001         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
8002         BINFO_VIRTUALS when streaming for ltrans unit.
8003
8004 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
8005
8006         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
8007         (movdi_internal64): Same.
8008
8009 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
8010
8011         PR target/44618
8012         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
8013         a set of similar patterns, where the MATCH_OPERAND for the function
8014         argument is replaced with individual references to hardware registers.
8015         (save_fpregs_<mode>): Ditto
8016         (restore_gpregs_<mode>): Ditto
8017         (return_and_restore_gpregs_<mode>): Ditto
8018         (return_and_restore_fpregs_<mode>): Ditto
8019         (return_and_restore_fpregs_aix_<mode>): Ditto
8020
8021 2011-06-13  Jan Hubicka  <jh@suse.cz>
8022
8023         * ipa-utils.c (postorder_stack): New structure.
8024         (ipa_reverse_postorder): Handle aliases.
8025
8026 2011-06-13  Jan Hubicka  <jh@suse.cz>
8027
8028         * ipa-inline.c (reset_edge_caches): Walk aliases.
8029         (update_caller_keys): Do not test inlinability of aliases.
8030         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
8031         (do_estimate_growth): Fix typo.
8032
8033 2011-06-13  Jan Hubicka  <jh@suse.cz>
8034
8035         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
8036         (can_remove_node_now_p): ... here; handle same comdat groups.
8037         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
8038         (inline_call): Update use of can_remove_node_now_p.
8039
8040 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8041
8042         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
8043         condition to disallow non-identical memory locations.
8044         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
8045         preference to bit manipulation instructions.
8046
8047 2011-06-13  Jan Hubicka  <jh@suse.cz>
8048
8049         * cgraph.c (cgraph_for_node_thunks_and_aliases,
8050         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
8051         (nonremovable_p): New function.
8052         (cgraph_can_remove_if_no_direct_calls_p): New function.
8053         (used_from_object_file_p): New functoin.
8054         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
8055         references from aliases.
8056         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
8057         * ipa-inline.c (check_caller_edge): New function.
8058         (want_inline_function_called_once_p): Use it; accept aliases called
8059         once, too.
8060         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
8061
8062 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8063
8064         PR target/48454
8065         * config/arm/neon.md (vec_pack_trunc): Set the lengths
8066         correctly for the case with Quad vectors.
8067
8068 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
8069            Ira Rosen  <ira.rosen@linaro.org>
8070
8071         PR tree-optimization/49352
8072         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
8073         all, make sure loop_use_stmt after the loop is a def stmt of a used
8074         SSA_NAME that is the only one defined inside of the loop.  Don't
8075         check for COND_EXPR and GIMPLE_BINARY_RHS.
8076         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
8077         check_reduction is true.
8078
8079 2011-06-11  Jan Hubicka  <jh@suse.cz>
8080
8081         PR middle-end/49373
8082         * ipa.c (cgraph_externally_visible_p): Check resolution info.
8083
8084 2011-06-11  Jan Hubicka  <jh@suse.cz>
8085
8086         PR middle-end/48836
8087         * ipa-inline-transform.c: Include tree-pass.h
8088         (inline_transform): Set TODO_update_ssa_only_virtuals.
8089         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
8090
8091 2011-06-11  Jan Hubicka  <jh@suse.cz>
8092
8093         PR middle-end/49378
8094         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
8095         aliases and thunks.
8096
8097 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
8098
8099         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
8100         Take number of iterations to peel into account for equally frequent
8101         misalignment values.
8102
8103 2011-06-11  Jan Hubicka  <jh@suse.cz>
8104
8105         * lto-streamer-out.c (produce_symtab): Stream out the newly
8106         represented aliases.
8107
8108 2011-06-11  Jan Hubicka  <jh@suse.cz>
8109
8110         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
8111         varying args.
8112         (ipa_update_after_lto_read): Likewise.
8113         (ipa_write_node_info): Do not sream call_with_var_arguments.
8114         (ipa_read_node_info): Likewise.
8115
8116 2011-06-11  Jan Hubicka  <jh@suse.cz>
8117
8118         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
8119
8120 2011-06-11  Jan Hubicka  <jh@suse.cz>
8121
8122         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
8123         (lto_symtab_resolve_can_prevail_p): Likewise.
8124         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
8125         * cgraph.c (same_body_aliases_done): New global var.
8126         (cgraph_same_body_alias_1): Rename to ...
8127         (cgraph_create_function_alias): ... this one; reorg to new
8128         representation.
8129         (cgraph_same_body_alias): Use cgraph_create_function_alias;
8130         record references when asked to.
8131         (cgraph_add_thunk): Fix formating.
8132         (cgraph_get_node): Kill same body alias code.
8133         (cgraph_node_for_asm): Likewise.
8134         (cgraph_remove_same_body_alias): Remove.
8135         (cgraph_remove_node): Kill same body alias code.
8136         (cgraph_mark_address_taken_node): Mark also the aliased function
8137         as having address taken.
8138         (dump_cgraph_node): Dump same body aliases.
8139         (cgraph_for_node_thunks_and_aliases): Update for new alias
8140         representation.
8141         (cgraph_for_node_and_aliases): Likewise.
8142         * cgraph.h (same_body): Kll pointer.
8143         (same_body_alias): Update comment.
8144         (same_body_aliases_done): Declare.
8145         (cgraph_remove_same_body_alias): Remove declaration.
8146         (cgraph_create_function_alias): Declare.
8147         (cgraph_process_same_body_aliases): Declare.
8148         (cgraph_function_with_gimple_body_p): Check for alias.
8149         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
8150         (cgraph_alias_aliased_node): New function.
8151         (cgraph_function_node): Update for new aliases.
8152         (cgraph_function_or_thunk_node): Likewise.
8153         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
8154         (inline_call): Remove dead aliases.
8155         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
8156         name hack for same body aliases.
8157         (clone_of_p): Look through aliases.
8158         (verify_cgraph_node): Verify aliases.
8159         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
8160         (cgraph_process_same_body_aliases): New function.
8161         (process_function_and_variable_attributes): Disable weakref warning on
8162         alias.
8163         (cgraph_analyze_functions): Handle aliases.
8164         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
8165         (assemble_thunks): Rename to ...
8166         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
8167         (cgraph_expand_function): Remove alias output code.
8168         (cgraph_output_in_order): Skip aliases.
8169         (cgraph_preserve_function_body_p): Aliases don't need preserving.
8170         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
8171         (ipa_record_reference): Do not assert on alias references.
8172         (ipa_ref_has_aliases_p): New function.
8173         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
8174         (ipa_ref_has_aliases_p): Declare.
8175         * lto-cgraph.c (lto_output_node): Handle aliases.
8176         (input_node): Likewise.
8177         * lto-streamer-out.c (lto_output): Skip aliases.
8178         (produce_symtab): Kill same_body_alias code.
8179         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
8180         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
8181         * ipa-inline.c (update_caller_keys): Walk aliases.
8182         (inline_small_functions): Fix thinko in previous patch.
8183         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
8184         (function_and_variable_visibility): Do not walk same body aliases.
8185         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
8186         (ipa_pta_execute): Use it.
8187
8188 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
8189
8190         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
8191         (*vec_dupv2df): Rename from vec_dupv2df.
8192         (vec_dupv2df): New expander.
8193
8194 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
8195
8196         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
8197
8198 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
8199
8200         * config/i386/i386.md: Use default value in "isa" attribute.
8201         * config/i386/sse.md: Ditto.
8202         * config/i386/mmx.md: Ditto.
8203
8204 2011-06-10  Wei Guozhi  <carrot@google.com>
8205
8206         PR target/45335
8207         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
8208         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
8209         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
8210         related peephole2.
8211         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
8212         related peephole2.
8213         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
8214         (arm_legitimate_ldrd_p): New prototype.
8215         (arm_output_ldrd): New prototype.
8216         * config/arm/arm.c (arm_check_ldrd_operands): New function.
8217         (arm_legitimate_ldrd_p): New function.
8218         (arm_output_ldrd): New function.
8219
8220 2011-06-10  David Li  <davidxl@google.com>
8221
8222         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8223         * passes.c (passr_eq): New function.
8224         (create_pass_tab): New function.
8225         (pass_traverse): New function.
8226         (dump_one_pass): New function.
8227         (dump_pass_list): New function.
8228         (dump_passes): New function.
8229
8230 2011-06-10  Jan Hubicka  <jh@suse.cz>
8231
8232         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
8233         setting the nothrow flag.
8234         * ipa-reference.c (propagate): Skip aliases.
8235         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
8236         (propagate_nothrow): Skip aliases; do not update cgraph.
8237         (local_pure_const): Do not update cgraph.
8238         * tree-profile.c (tree_profiling): Do fixup_cfg.
8239
8240 2011-06-10  Jan Hubicka  <jh@suse.cz>
8241
8242         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
8243         (cgraph_local_node_p): ... here; handle aliases.
8244         (has_addr_references_p): Break out from ...;
8245         (cgraph_remove_unreachable_nodes) ... here.
8246
8247 2011-06-10  Jan Hubicka  <jh@suse.cz>
8248
8249         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
8250         * common.opt (flag_inline_functions_called_once): Do not
8251         initialize to 1.
8252
8253 2011-06-10  Jan Hubicka  <jh@suse.cz>
8254
8255         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
8256         (ipcp_initialize_node_lattices): Do not deal with aliases;
8257         Do not try to propagate through thunks.
8258         (ipcp_change_tops_to_bottom): Do not deal with aliases.
8259
8260 2011-06-10  Jan Hubicka  <jh@suse.cz>
8261
8262         * ipa-prop.c (ipa_write_node_info): Stream jump functions
8263         for indirect calls.
8264         (ipa_read_node_info): Likewise.
8265
8266 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8267
8268         PR lto/49302
8269         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
8270         (build_and_insert_call): Likewise.
8271         (build_and_insert_ref): New.
8272         (gimple_expand_builtin_pow): Minor cleanup.
8273         (gimple_expand_builtin_cabs): New.
8274         (execute_cse_sincos): Add case for BUILT_IN_CABS.
8275
8276 2011-06-10  Jan Hubicka  <jh@suse.cz>
8277
8278         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
8279         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
8280         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
8281         (ipcp_propagate_stage): Skip aliases when propagating.
8282         (ipcp_need_redirect_p): Skip aliases.
8283         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
8284         collect_callers_of_node.
8285         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
8286         for aliases.
8287         (ipa_compute_jump_functions): Look through aliases.
8288
8289 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8290
8291         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
8292
8293 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8294
8295         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
8296         Adjust comments.
8297         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
8298
8299 2011-06-10  Jan Hubicka  <jh@suse.cz>
8300
8301         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
8302         Update call of gimple_get_virt_method_for_binfo.
8303         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
8304         refuse_thunks parameter.
8305         (gimple_fold_call): Update.
8306         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
8307
8308 2011-06-10  Jan Hubicka  <jh@suse.cz>
8309
8310         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
8311         (not_all_callers_have_enough_arguments_p): ... this one; turn into
8312         worker for cgraph_for_node_and_aliases.
8313         (convert_callers_for_node): Break out from ...
8314         (convert_callers): ... here.
8315         (modify_function): Use collect_callers_of_node.
8316         (ipa_early_sra): Use cgraph_for_node_and_aliases.
8317
8318 2011-06-10  Richard Guenther  <rguenther@suse.de>
8319
8320         PR tree-optimization/49361
8321         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
8322         when not already in gimple form.
8323
8324 2011-06-10  Richard Guenther  <rguenther@suse.de>
8325
8326         PR bootstrap/49344
8327         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
8328         FOR_EACH_PHI_OR_STMT_USE.
8329
8330 2011-06-10  Jan Hubicka  <jh@suse.cz>
8331
8332         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
8333         (clone_inlined_nodes): ... here.
8334         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
8335         to real destination prior inlining.
8336         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
8337         can_early_inline_edge_p, want_early_inline_function_p,
8338         want_early_inline_function_p, want_inline_small_function_p,
8339         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
8340         edge_badness, update_all_callee_keys, lookup_recursive_calls,
8341         add_new_edges_to_heap, inline_small_functions, flatten_function,
8342         inline_always_inline_functions, early_inline_small_functions): Use
8343         cgraph_function_or_thunk_node.
8344         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
8345         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
8346         (do_estimate_edge_growth_1): Break out from ...
8347         (do_estimate_growth) ... here; walk aliases.
8348         (inline_generate_summary): Skip aliases.
8349
8350 2011-06-10  Richard Guenther  <rguenther@suse.de>
8351
8352         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
8353         forward when combining, visit inserted stmts when a stmt was changed.
8354
8355 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
8356
8357         * tree.h (error_operand_p): Add.
8358         * dbxout.c (dbxout_type_fields): Use the latter.
8359         * c-decl.c (add_stmt): Likewise.
8360         * gimplify.c (omp_add_variable, omp_notice_variable,
8361         gimplify_scan_omp_clauses): Likewise.
8362
8363 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
8364
8365         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
8366         when a value is actually passed in regs.
8367
8368 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
8369             Laurent Rougé  <laurent.rouge@menta.fr>
8370
8371         * doc/invoke.texi (SPARC options): Add -mflat.
8372         * config/sparc/sparc.opt: Likewise.
8373         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
8374         (sparc_flat_expand_prologue): Declare.
8375         (sparc_flat_expand_epilogue): Likewise.
8376         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
8377         (CPP_ENDIAN_SPEC): Replace with...
8378         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
8379         (CPP_SPEC): Adjust to above change.
8380         (EXTRA_SPECS): Likewise.
8381         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
8382         (INCOMING_REGNO): Likewise.
8383         (OUTGOING_REGNO): Likewise.
8384         (LOCAL_REGNO): Likewise.
8385         (SETUP_FRAME_ADDRESSES): Likewise.
8386         (FIXED_REGISTERS): Set 0 for %fp.
8387         (CALL_USED_REGISTERS): Likewise.
8388         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
8389         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
8390         (RETURN_ADDR_REGNUM): Define.
8391         (RETURN_ADDR_RTX): Use it.
8392         (INCOMING_RETURN_ADDR_REGNUM): Define.
8393         (INCOMING_RETURN_ADDR_RTX): Use it.
8394         (DWARF_FRAME_RETURN_COLUMN): Likewise.
8395         (EH_RETURN_REGNUM): Define.
8396         (EH_RETURN_STACKADJ_RTX): Use it.
8397         (EH_RETURN_HANDLER_RTX): Delete.
8398         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
8399         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
8400         Delete.
8401         (struct machine_function): Add frame_size, apparent_frame_size,
8402         frame_base_reg, frame_base_offset, n_global_fp_regs and
8403         save_local_in_regs_p fields.
8404         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
8405         sparc_frame_base_offset, sparc_n_global_fp_regs,
8406         sparc_save_local_in_regs_p): New macros.
8407         (sparc_option_override): Error out if -fcall-saved-REG is specified
8408         for Out registers.
8409         (eligible_for_restore_insn): Fix formatting.
8410         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
8411         (eligible_for_sibcall_delay): Likewise.
8412         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
8413         (sparc_legitimate_address_p): Adjust to above change.
8414         (save_global_or_fp_reg_p): New predicate.
8415         (return_addr_reg_needed_p): Likewise.
8416         (save_local_or_in_reg_p): Likewise.
8417         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
8418         (SORR_SAVE, SORR_RESTORE): Delete.
8419         (sorr_pred_t): New typedef.
8420         (sorr_act_t): New enum.
8421         (save_or_restore_regs): Rename to...
8422         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
8423         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
8424         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
8425         mechanism.  Add CFI information for double-word saves in 32-bit mode.
8426         (emit_adjust_base_to_offset): New function extracted from...
8427         (emit_save_or_restore_regs): ...this.  Rename the rest to...
8428         (emit_save_or_restore_regs_global_fp_regs): ...this.
8429         (emit_save_or_restore_regs_local_in_regs): New function.
8430         (gen_create_flat_frame_[123]): New functions.
8431         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
8432         (sparc_flat_expand_prologue): New function.
8433         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
8434         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
8435         (sparc_flat_expand_epilogue): New function.
8436         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
8437         (output_return): Likewise.
8438         (output_sibcall): Likewise.
8439         (sparc_output_mi_thunk): Likewise.
8440         (sparc_frame_pointer_required): Likewise.
8441         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
8442         function optimization.
8443         * config/sparc/sparc.md (flat): New attribute.
8444         (prologue): Add TARGET_FLAT handling.
8445         (save_register_window): Disable if TARGET_FLAT.
8446         (create_flat_frame_[123]): New patterns.
8447         (epilogue): Add TARGET_FLAT handling.
8448         (sibcall_epilogue): Likewise.
8449         (eh_return): New expander.
8450         (eh_return_internal): New insn and splitter.
8451         (return_internal): Add TARGET_FLAT handling.
8452         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
8453         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
8454         (nonlocal_goto): Add TARGET_FLAT handling.
8455         * config/sparc/t-elf: Add -mflat multilib.
8456         * config/sparc/t-leon: Likewise.
8457
8458 2011-06-10  Jan Hubicka  <jh@suse.cz>
8459
8460         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
8461         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
8462         (self_recursive_p): Use cgraph_function_node.
8463         (propagate_pure_const): Likewise.
8464         (propagate_nothrow): Likewise.
8465         * ipa-reference.c (ipa_reference_get_not_read_global): Use
8466         cgraph_function_node.
8467         (propagate_bits): Likewise.
8468         (propagate): Likewise.
8469
8470 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8471             Richard Earnshaw  <rearnsha@arm.com>
8472
8473         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
8474         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
8475         (*thumb2_movdi_vfp): Delete.
8476         (*arm_movdi_vfp_cortexa8): Delete.
8477         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
8478         (*movdi_vfp_cortexa8): Likewise.
8479
8480 2011-06-10  Richard Guenther  <rguenther@suse.de>
8481
8482         * stor-layout.c (initialize_sizetypes): Give names to all
8483         sizetype kinds.
8484
8485 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
8486
8487         PR tree-optimization/49318
8488         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
8489         irrelevant pattern statements.
8490
8491 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8492
8493         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
8494
8495         PR bootstrap/49354
8496         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
8497         to last assignment.
8498
8499 2011-06-09  Jan Hubicka  <jh@suse.cz>
8500
8501         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
8502         do not recompute reachable flag.
8503         (cgraph_finalize_function, cgraph_analyze_functions): Set
8504         redefined_extern_inline here.
8505
8506 2011-06-09  Jan Hubicka  <jh@suse.cz>
8507
8508         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
8509         (cgraph_only_called_directly_p): ... this one; bring offline.
8510         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
8511         varpool_used_from_object_file_p): Drop names from the declaratoin.
8512         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
8513         collect_callers_of_node): New.
8514         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
8515         (cgraph_edge_recursive_p): Use cgraph_function_node.
8516         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
8517         (cgraph_node_cannot_be_local_p_1): Break out from ...
8518         (cgraph_node_can_be_local_p): ... here; walk aliases.
8519         (cgraph_for_node_thunks_and_aliases): New function.
8520         (cgraph_for_node_and_aliases): New function.
8521         (cgraph_make_node_local_1): Break out from ...
8522         (cgraph_make_node_local) ... here; use
8523         cgraph_for_node_thunks_and_aliases.
8524         (cgraph_set_nothrow_flag_1): Break out from ...
8525         (cgraph_set_nothrow_flag) ... here;
8526         use cgraph_for_node_thunks_and_aliases.
8527         (cgraph_set_const_flag_1): Break out from ...
8528         (cgraph_set_const_flag) ... here;
8529         use cgraph_for_node_thunks_and_aliases.
8530         (cgraph_set_pure_flag_1): Break out from ...
8531         (cgraph_set_pure_flag) ... here;
8532         use cgraph_for_node_thunks_and_aliases.
8533         (cgraph_propagate_frequency_1): Break out from ...
8534         (cgraph_propagate_frequency) ... here; use
8535         cgraph_for_node_thunks_and_aliases.
8536         (cgraph_used_from_object_file_p): Do not care about aliases.
8537         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
8538         New functions.
8539         (collect_callers_of_node_1, collect_callers_of_node): New functions.
8540
8541 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8542
8543         PR rtl-optimization/49154
8544         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
8545         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
8546         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
8547         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
8548         * config/cris/cris.h (cris_register_move_cost): Remove
8549         !TARGET_V32 code.  Tweak comments.
8550
8551 2011-06-09  Jan Hubicka  <jh@suse.cz>
8552
8553         * cgraphbuild.c (record_eh_tables): Mark personality function as having
8554         address taken.
8555
8556 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
8557
8558         PR rtl-optimization/49154
8559         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
8560         is a matching slot in the hashtable, assign it to classes_ptr.
8561
8562         PR rtl-optimization/49154
8563         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
8564         register classes.
8565         * doc/tm.texi: Regenerate.
8566
8567 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
8568
8569         PR target/49307
8570         * config/sh/sh.md (UNSPEC_CHKADD): New.
8571         (chk_guard_add): New define_insn_and_split.
8572         (symGOT_load): Use chk_guard_add instead of blockage.
8573
8574 2011-06-09  Kai Tietz  <ktietz@redhat.com>
8575
8576         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
8577
8578 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
8579
8580         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
8581
8582 2011-06-09  Wei Guozhi  <carrot@google.com>
8583
8584         PR target/46975
8585         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
8586         (peephole2 for conditional move): Generate 16 bit instructions.
8587
8588 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
8589
8590         * config/i386/i386.md (*movdi_internal_rex64): Merge
8591         alternatives 6 and 8.
8592
8593 2011-06-09  David Li  <davidxl@google.com>
8594
8595         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
8596         * passes.c (passr_eq): New function.
8597         (create_pass_tab): New function.
8598         (pass_traverse): New function.
8599         (dump_one_pass): New function.
8600         (dump_pass_list): New function.
8601         (dump_passes): New function.
8602
8603 2011-06-09  David Li  <davidxl@google.com>
8604
8605         * tree-complex.c (tree_lower_complex): Gate cleanup.
8606         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
8607         (execute_optimize_stdarg): Ditto.
8608         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
8609         (execute_cleanup_eh_1): Ditto.
8610         (execute_cleanup_eh): Ditto.
8611         * gcse.c (gate_rtl_pre): Ditto.
8612         (execute_rtl_pre): Ditto.
8613         * except.c (finish_eh_generation): Ditto.
8614         (convert_to_eh_region_ranges): Ditto.
8615         * cprop.c (one_cprop_pass): Ditto.
8616
8617 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
8618
8619         PR target/48673
8620         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
8621         in all basic blocks.
8622
8623 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8624
8625         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
8626         (HAVE_ENABLE_EXECUTE_STACK): Define.
8627         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
8628         (HAVE_ENABLE_EXECUTE_STACK): Define.
8629         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
8630         (HAVE_ENABLE_EXECUTE_STACK): Define.
8631         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
8632         (ENABLE_EXECUTE_STACK): Remove.
8633         (HAVE_ENABLE_EXECUTE_STACK): Define.
8634         [IN_LIBGCC2]: Don't include <windows.h>.
8635         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8636         (HAVE_ENABLE_EXECUTE_STACK): Define.
8637         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
8638         (HAVE_ENABLE_EXECUTE_STACK): Define.
8639         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
8640         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
8641         (HAVE_ENABLE_EXECUTE_STACK): Define.
8642         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
8643         (HAVE_ENABLE_EXECUTE_STACK): Define.
8644         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
8645         (HAVE_ENABLE_EXECUTE_STACK): Define.
8646         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
8647         (HAVE_ENABLE_EXECUTE_STACK): Define.
8648         * config/alpha/alpha.c (alpha_trampoline_init): Test
8649         HAVE_ENABLE_EXECUTE_STACK.
8650         * config/i386/i386.c (ix86_trampoline_init): Likewise.
8651         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
8652         (sparc64_initialize_trampoline): Likewise.
8653         * libgcc2.c [L_enable_execute_stack]: Remove.
8654         * system.h (ENABLE_EXECUTE_STACK): Poison.
8655         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
8656         * doc/tm.texi: Regenerate.
8657         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
8658
8659 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
8660
8661         PR middle-end/49308
8662         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
8663         variable.  After resetting and rescanning insn continue with previous
8664         statement.
8665
8666 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8667
8668         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
8669         (gcc_cv_ld_hidden): Likewise.
8670         * configure: Regenerate.
8671         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
8672         (ix86_stack_protect_fail): Mark unused.
8673         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
8674         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
8675         [TARGET_MACHO]: Don't define.
8676         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
8677         (TARGET_STACK_PROTECT_FAIL): Likewise.
8678         (rs6000_stack_protect_fail): Mark unused.
8679         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
8680         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
8681
8682 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8683
8684         * varasm.c (get_section): Print location of other conflict
8685         for section conflicts.
8686
8687 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8688
8689         * config/i386/driver-i386.c (host_detect_local_cpu):
8690         Add model 0x2d Intel CPU.
8691
8692 2011-06-08  Andi Kleen  <ak@linux.intel.com>
8693
8694         * reginfo.c (global_regs_decl): Add.
8695         (globalize_reg): Add decl parameter. Compute location.  Pass location
8696         to warnings and add inform. Store decl in global_regs_decl.
8697         * rtl.h (globalize_reg): Update prototype.
8698         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
8699
8700 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
8701
8702         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
8703
8704 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8705
8706         PR target/49305
8707         * config/sh/predicates.md (general_movsrc_operand): Check
8708         mode for memory with indexed address for QI and HImode.
8709         (general_movdst_operand): Likewise.
8710
8711 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
8712
8713         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
8714
8715 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
8716
8717         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
8718         (num_ssa_operands): Likewise.
8719         (op_iter_init_phiuse): Forward-declare.
8720         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
8721
8722 2011-06-08  Nick Clifton  <nickc@redhat.com>
8723
8724         * doc/invoke.texi (ARM Options): Update description of
8725         -mthumb-interwork.
8726
8727 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
8728
8729         * config/i386/driver-i386.c (host_detect_local_cpu): Support
8730         unknown Intel family 0x6 CPUs.
8731
8732 2011-06-08  Martin Jambor  <mjambor@suse.cz>
8733
8734         * tree-sra.c (mark_rw_status): Removed.
8735         (analyze_access_subtree): New parameter parent instead of
8736         mark_read and mark_write, propagate from that.
8737
8738 2011-06-08  Julian Brown  <julian@codesourcery.com>
8739
8740         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
8741         for double-precision helper functions in hard-float mode if only
8742         single-precision arithmetic is supported in hardware.
8743
8744 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
8745
8746         PR rtl-optimization/49303
8747         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
8748         code_motion_path_driver returned 0 or 1.
8749         (sel_region_finish): Clear h_d_i_d.
8750
8751 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
8752
8753         * config/sh/sh.c (prepare_move_operands): Set pic register
8754         appropriately for global and local dynamic tls models even
8755         if flag_pic is unset.
8756
8757 2011-06-07  Jason Merrill  <jason@redhat.com>
8758
8759         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
8760
8761 2011-06-07  Xinliang David Li  <davidxl@google.com>
8762         * passes.c (enable_disable_pass): Handle assembler name.
8763         (is_pass_explicitly_enabled_or_disabled): Ditto.
8764
8765 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8766
8767         PR tree-optimization/48497
8768         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
8769
8770 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8771
8772         PR tree-optimization/46728
8773         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
8774         to use gimple_val_nonnegative_real_p.
8775         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
8776         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
8777
8778 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
8779
8780         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
8781
8782 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
8783
8784         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
8785         constant vectors.
8786
8787 2011-06-07  Richard Guenther  <rguenther@suse.de>
8788
8789         * stor-layout.c (initialize_sizetypes): Initialize all
8790         sizetypes based on target definitions.
8791         (set_sizetype): Remove.
8792         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
8793         * tree.h (set_sizetype): Remove.
8794
8795 2011-06-07  Nick Clifton  <nickc@redhat.com>
8796
8797         * config.gcc: Unify V850 architecture options and add support for
8798         newer V850 architectures.
8799         * config/v850/t-v850e: Delete.
8800
8801 2011-06-07  Richard Guenther  <rguenther@suse.de>
8802
8803         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
8804         Call set_sizetype from here.
8805
8806 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
8807
8808         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
8809         (*maddhisi4tb, *maddhisi4tt): New define_insns.
8810
8811 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
8812             Andrew Stubbs  <ams@codesourcery.com>
8813
8814         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
8815         multiplies.
8816         * doc/md.texi (Canonicalization of Instructions): Document widening
8817         multiply canonicalization.
8818
8819 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
8820
8821         PR gcov-profile/49299
8822         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
8823
8824 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
8825
8826         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
8827         a pointer.
8828         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
8829         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
8830         vect_recog_pow_pattern): Likewise.
8831         (vect_pattern_recog_1): Remove declaration.
8832         (widened_name_p): Remove declaration.  Add new argument to specify
8833         whether to check that both types are either signed or unsigned.
8834         (vect_recog_widen_mult_pattern): Update documentation.  Handle
8835         unsigned patterns and multiplication by constants.
8836         (vect_pattern_recog_1): Update vect_recog_func references.  Use
8837         statement information from the statement returned from pattern
8838         detection functions.
8839         (vect_pattern_recog): Update vect_recog_func reference.
8840         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
8841         multiplication by a constant use the type of the other operand.
8842
8843 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
8844
8845         PR rtl-optimization/49145
8846         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
8847
8848 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
8849
8850         PR debug/49262
8851         * dwarf2out.c (native_encode_initializer): Decrement count in each
8852         iteration.
8853
8854         PR debug/49294
8855         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
8856         non-MODE_INT modes.
8857
8858         PR c++/49264
8859         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
8860         if stmt folded into nothing.
8861         * tree-inline.c (fold_marked_statements): If a builtin at the end of
8862         a bb folded into nothing, just update cgraph edges and move to next bb.
8863         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
8864         to be NULL.  Don't compute count and frequency if new_call is NULL.
8865
8866 2011-06-04  Diego Novillo  <dnovillo@google.com>
8867
8868         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
8869         (cgraph.o): Likewise.
8870         (cgraphunit.o): Likewise.
8871         * cgraphunit.c: Include lto-streamer.h
8872         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
8873         if LTO is enabled.
8874         * lto-streamer-in.c (unpack_value_fields): Call
8875         streamer_hooks.unpack_value_fields if set.
8876         (lto_materialize_tree): For unhandled nodes, first try to
8877         call lto_streamer_hooks.alloc_tree, if it exists.
8878         (lto_input_ts_decl_common_tree_pointers): Move reading of
8879         DECL_INITIAL to lto_streamer_read_tree.
8880         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
8881         (lto_streamer_read_tree): New.
8882         (lto_reader_init): Rename from lto_init_reader.
8883         Move initialization code to lto/lto.c.
8884         * lto-streamer-out.c (pack_value_fields): Call
8885         streamer_hooks.pack_value_fields if set.
8886         (lto_output_tree_ref): For tree nodes that are not normally indexable,
8887         call streamer_hooks.indexable_with_decls_p before giving up.
8888         (lto_output_ts_decl_common_tree_pointers): Move handling
8889         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
8890         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
8891         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
8892         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
8893         (lto_streamer_write_tree): New.
8894         (lto_output): Call lto_streamer_init directly.
8895         (lto_writer_init): Remove.
8896         * lto-streamer.c (streamer_hooks): New.
8897         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
8898         instead of lto_preload_common_nodes.
8899         (lto_is_streamable): Move from lto-streamer.h
8900         (lto_streamer_hooks_init): New.
8901         (streamer_hooks): New.
8902         (streamer_hooks_init): New.
8903         * lto-streamer.h (struct output_block): Forward declare.
8904         (struct lto_input_block): Likewise.
8905         (struct data_in): Likewise.
8906         (struct bitpack_d): Likewise.
8907         (struct streamer_hooks): Declare.
8908         (streamer_hooks): Declare.
8909         (lto_streamer_hooks_init): Declare.
8910         (lto_streamer_write_tree): Declare.
8911         (lto_streamer_read_tree): Declare.
8912         (streamer_hooks_init): Declare.
8913         (lto_is_streamable): Move to lto-streamer.c
8914
8915 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8916
8917         * longlong.h (smul_ppmm): The resulting register pair contains the
8918         higher order word first.
8919
8920 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8921
8922         PR tree-optimization/46728
8923         * builtins.c (powi_table): Remove.
8924         (powi_lookup_cost): Remove.
8925         (powi_cost): Remove.
8926         (expand_powi_1): Remove.
8927         (expand_powi): Remove.
8928         (expand_builtin_pow_root): Remove.
8929         (expand_builtin_pow): Remove.
8930         (expand_builtin_powi): Eliminate handling of constant exponent.
8931         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
8932
8933 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8934
8935         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
8936
8937 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8938
8939         * dce.c (reset_unmarked_insns_debug_uses): New.
8940         (delete_unmarked_insns): Skip debug insns.
8941         (prescan_insns_for_dce): Likewise.
8942         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
8943         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
8944         active reg can be found.
8945         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
8946         (convert_regs_1): Use it.
8947
8948 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8949
8950         * tree-pretty-print.c (dump_function_header): Add flags.
8951         Don't dump decl_uid with nouid.
8952         * tree-pretty-print.h (dump_function_header): Adjust.
8953         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
8954         * passes.c (pass_init_dump_file): Pass dump_flags on.
8955         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
8956
8957 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
8958
8959         PR bootstrap/49270
8960         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
8961
8962 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
8963
8964         PR tree-optimization/49243
8965         * calls.c (setjmp_call_p): Also check if fndecl has the
8966         returns_twice attribute.
8967
8968 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8969
8970         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
8971         -ffast-math etc.
8972
8973 2011-06-06  Richard Henderson  <rth@redhat.com>
8974             Georg-Johann Lay  <avr@gjlay.de>
8975
8976         PR target/42210
8977         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
8978         New predicates.
8979         * config/avr/avr.md ("insv"): New insn expander.
8980         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
8981         "*insv.not.io", "*insv.reg"): New insns.
8982
8983 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
8984
8985         PR target/49285
8986         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
8987         to nonimmediate_operand from memory_operand for the operand that is to
8988         be forced to memory by the expander.  Lose the constraints.
8989
8990 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
8991
8992         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
8993         EH return when delayed branches are disabled.
8994
8995 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
8996
8997         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
8998         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
8999         calculation.
9000         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
9001         Simplify MODE_V1DF and MODE_V2SF handling.
9002         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
9003         Simplify MODE_SF handling.
9004
9005 2011-06-04  Jan Hubicka  <jh@suse.cz>
9006
9007         PR tree-optimization/48893
9008         PR tree-optimization/49091
9009         PR tree-optimization/49179
9010         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
9011         Bounds check.
9012
9013 2011-06-04  Jan Hubicka  <jh@suse.cz>
9014
9015         PR lto/48954
9016         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
9017         bitmaps.
9018
9019 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
9020
9021         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
9022
9023 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
9024
9025         PR target/49281
9026         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
9027         to be strictly smaller than 1 << shiftcount.
9028
9029 2011-06-04  Jan Hubicka  <jh@suse.cz>
9030
9031         PR tree-optimize/48929
9032         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
9033         of empty predicate.
9034
9035 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
9036
9037         PR debug/48333
9038         * calls.c (emit_call_1): Prefer the __builtin declaration of
9039         builtin functions.
9040
9041 2011-06-03   Diego Novillo  <dnovillo@google.com>
9042
9043         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
9044         (lto_input_tree_pointers): Likewise.
9045         * lto-streamer-out.c (pack_value_fields): Likewise.
9046         (lto_output_tree_pointers): Likewise.
9047         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
9048         and OPTIMIZATION_NODE.
9049
9050 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9051
9052         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
9053         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
9054         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
9055         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
9056         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
9057         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
9058         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
9059         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
9060         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
9061         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
9062         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
9063         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
9064         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
9065         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
9066         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
9067         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
9068         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
9069         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
9070         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
9071         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
9072         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
9073         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
9074         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
9075         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
9076         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
9077         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
9078         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
9079         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
9080         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
9081         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
9082         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
9083         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
9084         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
9085         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
9086         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
9087         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
9088         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
9089         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
9090         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
9091         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
9092         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
9093         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
9094         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
9095         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
9096         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
9097         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
9098         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
9099         * system.h (MD_UNWIND_SUPPORT): Poison.
9100         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
9101         * doc/tm.texi: Regenerate.
9102         * unwind-dw2.c: Include md-unwind-support.h instead of
9103         MD_UNWIND_SUPPORT.
9104         * config/ia64/unwind-ia64.c: Likewise.
9105         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
9106
9107 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
9108
9109         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
9110
9111 2011-06-03  Richard Henderson  <rth@redhat.com>
9112             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9113
9114         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
9115         (sigill_hdlr): Correct insn, insn size.
9116         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
9117
9118 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9119
9120         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
9121         t-slibgcc-dummy.
9122         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
9123         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
9124         * config/mips/t-iris: Remove.
9125         * config/mips/t-irix6: New file.
9126         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
9127
9128 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9129
9130         * Makefile.in (LIB2ADDEHDEP): Remove.
9131         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
9132         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
9133         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
9134         * config/t-darwin (LIB2ADDEHDEP): Remove.
9135         * config/t-freebsd (LIB2ADDEHDEP): Remove.
9136         * config/t-linux (LIB2ADDEHDEP): Remove.
9137
9138 2011-06-03  Diego Novillo  <dnovillo@google.com>
9139
9140         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
9141         (lto_register_var_decl_in_symtab): Likewise.
9142         (lto_register_function_decl_in_symtab): Likewise.
9143         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
9144         logic to uniquify_nodes.
9145
9146 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9147
9148         * config/alpha/t-osf5: Remove.
9149         * config/alpha/t-osf-pthread: Remove.
9150         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
9151         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
9152
9153 2011-06-03  Julian Brown  <julian@codesourcery.com>
9154
9155         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
9156         (strongarm1110): Use strongarm tuning.
9157         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
9158         * config/arm/arm.c (arm_strongarm_tune): New.
9159         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
9160         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
9161         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
9162         setting, using previous defaults or 1 for Cortex-A5.
9163         (arm_option_override): Set max_insns_skipped from current tuning.
9164
9165 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
9166
9167         * doc/install.texi (Options specification): Document --with-specs.
9168
9169 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9170
9171         * config/arm/neon.md (orndi3_neon): Actually split it.
9172
9173 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
9174
9175         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
9176         * var-tracking.c (reverse_op): Limite recurse depth to 5.
9177
9178 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
9179
9180         PR debug/47590
9181         * target.def (delay_sched2, delay_vartrack): New.
9182         * doc/tm.texi.in: Update.
9183         * doc/tm.texi: Rebuild.
9184         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
9185         * var-tracking.c (gate_handle_var_tracking): Likewise.
9186         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
9187         (bfin_flag_var_tracking): Drop.
9188         (output_file_start): Don't save and override flag_var_tracking.
9189         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
9190         (bfin_reorg): Test original variables.
9191         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
9192         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
9193         (ia64_flag_var_tracking): Drop.
9194         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
9195         (ia64_file_start): Don't save and override flag_var_tracking.
9196         (ia64_override_options_after_change): Ditto
9197         flag_schedule_insns_after_reload.
9198         (ia64_reorg): Test original variables.
9199         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
9200         (picochip_flag_var_tracking): Drop.
9201         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
9202         (picochip_option_override): Don't save and override
9203         flag_schedule_insns_after_reload.
9204         (picochip_asm_file_start): Ditto flag_var_tracking.
9205         (picochip_reorg): Test original variables.
9206         * config/spu/spu.c (spu_flag_var_tracking): Drop.
9207         (TARGET_DELAY_VARTRACK): Define.
9208         (spu_var_tracking): New.
9209         (spu_machine_dependent_reorg): Call it.
9210         (asm_file_start): Don't save and override flag_var_tracking.
9211
9212 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
9213
9214         PR target/49163
9215         * config/sh/predicates.md (general_movsrc_operand): Return 0
9216         for memory and memory subreg of which address is an invalid
9217         indexed address for QI and HImode.
9218         (general_movdst_operand): Likewise.
9219
9220 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
9221
9222         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
9223         edges only, when there is a non-local label in the function.
9224         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
9225
9226 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
9227
9228         * config/i386/constraints.md (Y3): New register constraint.
9229         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
9230         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
9231         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
9232         *sse2_interleave_lowv2df.
9233
9234 2011-06-02  Julian Brown  <julian@codesourcery.com>
9235
9236         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
9237         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
9238         (arm_cortex_a5_tune): New.
9239
9240 2011-06-02  Julian Brown  <julian@codesourcery.com>
9241
9242         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
9243         * config/arm/arm.c (arm_default_branch_cost): New.
9244         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
9245         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
9246         (arm_fa726_tune): Set branch_cost field using
9247         arm_default_branch_cost.
9248         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
9249         current_tune structure.
9250         * dojump.c (tm_p.h): Include file.
9251
9252 2011-06-02  Julian Brown  <julian@codesourcery.com>
9253
9254         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
9255         tuning.
9256         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
9257         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
9258         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
9259         field.
9260         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
9261         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
9262         (arm_fa726te_tune): Add prefer_constant_pool setting.
9263         (arm_v6t2_tune, arm_cortex_tune): New.
9264         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
9265         prefer_constant_pool setting.
9266
9267 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
9268
9269         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
9270         switch statement.
9271         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
9272         (*movdf_internal) <case 6,7,8>: Ditto.
9273
9274         * config/i386/constraints.md (Y4): New register constraint.
9275         * config/i386/sse.md (vec_set<mode>_0): Merge with
9276         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
9277         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
9278         *vec_extractv2di_1_sse.
9279         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
9280         and *vec_concatv2di_rex64_sse.
9281
9282 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
9283
9284         PR target/48807
9285         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
9286         of cgraph_local_info for null before attempting to use it.
9287
9288 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
9289
9290         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
9291         (current_function_dynamic_alloc_count): Delete.
9292         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
9293         (expand_builtin_nonlocal_goto): Remove obsolete comment.
9294         (expand_builtin_update_setjmp_buf): Remove dead code.
9295         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
9296         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
9297         support.
9298         * function.c (instantiate_virtual_regs): Likewise.
9299         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
9300         for a block with a single abnormal incoming edge.
9301         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
9302         (SETJMP_VIA_SAVE_AREA): Delete.
9303         * config/sparc/sparc-protos.h (load_got_register): Declare.
9304         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
9305         (load_got_register): Make global.
9306         (sparc_frame_pointer_required): Add 'static'.
9307         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
9308         (sparc_builtin_setjmp_frame_value): New function.
9309         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
9310         (save_stack_nonlocal): New expander.
9311         (restore_stack_nonlocal): Likewise.
9312         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
9313         (nonlocal_goto_internal): New insn.
9314         (goto_handler_and_restore): Delete.
9315         (builtin_setjmp_setup): Likewise.
9316         (do_builtin_setjmp_setup): Likewise.
9317         (setjmp): Likewise.
9318         (builtin_setjmp_receiver): New expander.
9319
9320 2011-06-01  David Li  <davidxl@google.com>
9321
9322         PR middle-end/49261
9323         * tree-pretty-print.c (dump_function_header): Format cleanup.
9324
9325 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
9326
9327         PR target/49238
9328         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
9329         needed when original operands are used for msw_skip comparison.
9330
9331 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9332
9333         PR debug/49250
9334         * var-tracking.c (add_uses, add_stores): Don't call
9335         cselib_subst_to_values on ENTRY_VALUE.
9336
9337 2011-06-01  Diego Novillo  <dnovillo@google.com>
9338
9339         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
9340         output_record_start with LTO_null instead of output_zero.
9341         (lto_output_ts_binfo_tree_pointers): Likewise.
9342         (lto_output_tree): Likewise.
9343         (output_eh_try_list): Likewise.
9344         (output_eh_region): Likewise.
9345         (output_eh_lp): Likewise.
9346         (output_eh_regions): Likewise.
9347         (output_bb): Likewise.
9348         (output_function): Likewise.
9349         (output_unreferenced_globals): Likewise.
9350         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
9351         instead of NUM_TREE_CODES.
9352         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
9353         (lto_output_int_in_range): Change << to >> when shifting VAL.
9354
9355 2011-06-01  Diego Novillo  <dnovillo@google.com>
9356
9357         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
9358         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
9359
9360 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9361
9362         PR target/45074
9363         * optabs.h (valid_multiword_target_p): Declare.
9364         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
9365         doing multi-word operations.
9366         * optabs.c (expand_binop): Likewise.
9367         (expand_doubleword_bswap): Likewise.
9368         (expand_absneg_bit): Likewise.
9369         (expand_unop): Likewise.
9370         (expand_copysign_bit): Likewise.
9371         (multiword_target_p): New function.
9372
9373 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
9374
9375         PR rtl-optimization/48830
9376         PR rtl-optimization/48808
9377         PR rtl-optimization/48792
9378         * reload.c (push_reload): Check contains_reg_of_mode.
9379         * reload1.c (strip_paradoxical_subreg): New function.
9380         (gen_reload_chain_without_interm_reg_p): Use it to handle
9381         paradoxical subregs.
9382         (emit_output_reload_insns, gen_reload): Likewise.
9383
9384 2011-06-01  David Li  <davidxl@google.com>
9385
9386         * predict.c : Change pass name
9387         * ipa.c: Ditto.
9388         * dce.c: Ditto.
9389         * tree-profile.c: Ditto.
9390         * except.c: Ditto.
9391
9392 2011-06-01  David Li  <davidxl@google.com>
9393
9394         * tree-pretty-print.c (dump_function_header): New function.
9395         * final.c (rest_of_clean_state): Use header dumper.
9396         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
9397         * passes.c (pass_init_dump_file): Use header dumper.
9398
9399 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9400
9401         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
9402         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
9403         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
9404         New functions.
9405         (mem_loc_descriptor): Use them.
9406
9407         * var-tracking.c (create_entry_value): New function.
9408         (vt_add_function_parameter): Use it.
9409
9410 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9411
9412         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
9413         Include <signal.h>, <ucontext.h>.
9414         (sigill_caught): Define.
9415         (sigill_hdlr): New function.
9416         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
9417         insns can be executed.
9418         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
9419         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
9420
9421 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9422
9423         * config/t-slibgcc-darwin: Move to ...
9424         * config/t-slibgcc-dummy: ... this.  Clarify comments.
9425         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
9426         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
9427         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
9428         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
9429         Remove i386/t-crtstuff from tmake_file.
9430         (i[34567]86-*-solaris2*): Remove t-svr4,
9431         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
9432         t-slibgcc-dummy.
9433         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
9434         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
9435         sparc/t-crtfm from tmake_file.
9436         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
9437         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
9438         Remove extra_parts.
9439         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
9440         * config/i386/t-nwld (SHLIB_LINK): Remove.
9441         * config/i386/t-rtems-i386: Rename to ...
9442         * config/i386/t-rtems: ... this.
9443         ($(T)crti.o, $(T)crtn.o): Remove.
9444         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
9445         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
9446         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
9447         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
9448         EXTRA_MULTILIB_PARTS): Remove.
9449         * config/sparc/t-sol2-64: Likewise.
9450         * config/sparc/t-sol2: Remove.
9451         * config/sparc/t-crtin: Remove.
9452         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
9453         * config/i386/gmon-sol2.c: Remove.
9454         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
9455         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
9456         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
9457         * config/i386/sol2-gc1.asm: Remove.
9458         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
9459         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
9460         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
9461         * config/t-slibgcc-sld: Remove.
9462
9463 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
9464
9465         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
9466         base_type_for_mode with op_mode instead of mode.
9467
9468 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
9469
9470         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
9471         Cortex-A15.
9472         * config/arm/arm-tune.md: Regenerate.
9473         * config/arm/arm-tables.opt: Regenerate.
9474         * config/arm/arm.c (FL_DIV): Rename...
9475         (FL_THUMB_DIV): ... to this.
9476         (FL_ARM_DIV): Define.
9477         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
9478         (arm_arch_hwdiv): Remove.
9479         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
9480         (arm_issue_rate): Add cortexr5.
9481         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
9482         __ARM_ARCH_EXT_IDIV__.
9483         (TARGET_IDIV): Define.
9484         (arm_arch_hwdiv): Remove.
9485         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
9486         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
9487         (divsi3, udivsi3): New patterns.
9488         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
9489         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
9490
9491 2011-06-01  Martin Jambor  <mjambor@suse.cz>
9492
9493         * ipa-utils.c (ipa_dfs_info): New field scc_no.
9494         * ipa-utils.c (searchc): Set scc_no.
9495
9496 2011-06-01  Martin Jambor  <mjambor@suse.cz>
9497
9498         * ipa-utils.c (searchc_env): New field allow_overwritable.
9499         (searchc): do not ignore edges to overwritable nodes if indicated
9500         by env->allow_overwritable.
9501         (ipa_reduced_postorder): Set env.allow_overwritable.
9502
9503 2011-06-01  Richard Guenther  <rguenther@suse.de>
9504
9505         * tree.c (free_lang_data): Do not reset boolean_type_node nor
9506         char_type_node.
9507         * lto-streamer.c (lto_record_common_node): Take node pointer,
9508         do not register types.
9509         (lto_preload_common_nodes): Explicitly skip preloading nodes
9510         that differ between frontends.
9511
9512 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
9513
9514         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
9515         NON_FLOAT_REGS.
9516
9517 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
9518
9519         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
9520         parameter value for dump. Dump cost on outermost call only.
9521         (rs6000_memory_move_cost): Dump cost on outermost call only.
9522
9523 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
9524
9525         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
9526         DW_OP_GNU_convert ops.
9527
9528         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
9529         cselib_preserve_constants.
9530         (cselib_lookup_1): If cselib_preserve_constants,
9531         a new VALUE is being created for REG and there is a VALUE for the
9532         same register in wider mode, add another loc with lowpart SUBREG of
9533         the wider VALUE.
9534         (cselib_subst_to_values): Handle ENTRY_VALUE.
9535         * var-tracking.c  (replace_expr_with_values): Return NULL for
9536         ENTRY_VALUE too.
9537         * dwarf2out.c (convert_descriptor_to_signed): New function.
9538         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
9539         instead of two shifts.
9540         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
9541         the right mode if needed.
9542         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
9543         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
9544         convert_descriptor_to_signed.
9545         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
9546         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
9547
9548         PR target/48688
9549         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
9550
9551 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9552
9553         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
9554         of X87MODEI12 and SWI48x instead of SSEMODEI24.
9555         (SWI248x): New mode iterator, rename from X87MODEI.
9556         (X87MODEI): Remove mode iterator.
9557         (X87MODEI12): Ditto.
9558         (SSEMODEI24): Ditto.
9559
9560 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9561
9562         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
9563         * doc/invoke.texi: Document max-vartrack-expr-depth.
9564         * var-tracking.c (EXPR_DEPTH): New.
9565         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
9566
9567 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9568
9569         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
9570         * config/i386/sse.md: Add n to negated FMA pattern names.
9571
9572 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9573
9574         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
9575
9576 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
9577
9578         * gengtype-state.c (read_state_params_structs): Initialize previous.
9579
9580 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9581
9582         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
9583         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
9584
9585 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
9586
9587         * config/i386/i386.md (*movtf_internal): Avoid allocating general
9588         registers.  Penalize F*r->o alternative to prevent partial memory
9589         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
9590         CONST_DOUBLE immediates when optimizing function for size.  Do not move
9591         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9592         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
9593         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
9594         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
9595         alternatives.
9596         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
9597
9598         (fp_register_operand splitters): Use fp_register_operand
9599         constraint.  Do not use FP_REG_P in insn condition.
9600         (any_fp_register_operand splitters): Use any_fp_register_operand
9601         constraint.  Do not use ANY_FP_REG_P in insn condition.
9602
9603 2011-05-31  Jan Hubicka  <jh@suse.cz>
9604
9605         * cgraph.h (cgraph_inline_failed_t): Give enum a name
9606         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
9607         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
9608         (lto_output_edge): Use output_enum and var_len_unsigned.
9609         (lto_output_varpool_node): Likewise.
9610         (input_overwrite_node): Do not take resolution parameter;
9611         extract it from a bitpack.
9612         (input_node): Do not read resolution; use input_enum and
9613         var_len_unsigned.
9614         (input_varpool_node): Likewise.
9615         (input_edge): Likewise.
9616         (input_cgraph_1): Likewise.
9617
9618 2011-05-31  Richard Guenther  <rguenther@suse.de>
9619
9620         * gimple.c (gimple_register_canonical_type): Do not register
9621         any types via gimple_register_type.
9622
9623 2011-05-31  Jan Hubicka  <jh@suse.cz>
9624
9625         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
9626         of thunks.
9627
9628 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
9629
9630         PR rtl-optimization/49235
9631         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
9632         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
9633
9634 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
9635
9636         PR tree-optimization/49093
9637         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
9638         data references.
9639
9640 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
9641
9642         PR debug/49047
9643         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
9644         for concrete functions containing the code of cloned functions.
9645
9646 2011-05-31  Richard Guenther  <rguenther@suse.de>
9647
9648         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
9649         to ...
9650         (forward_propagate_into_comparison_1): ... this.
9651         (forward_propagate_comparison): Rename to ...
9652         (forward_propagate_into_comparison): ... this.  Split out
9653         real forward propagation code to ...
9654         (forward_propagate_comparison): ... this.
9655         (forward_propagate_into_gimple_cond): Remove looping.
9656         (forward_propagate_into_cond): Likewise.
9657         (simplify_not_neg_expr): Return whether we have done something.
9658         (simplify_gimple_switch): Likewise.
9659         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
9660         (ssa_forward_propagate_and_combine): ... this.  Re-structure
9661         to do a forward forward-propagation walk on BBs and a backward
9662         stmt combining walk on BBs.  Consistently re-scan changed statements.
9663         (pass_forwprop): Adjust.
9664
9665 2011-05-30  Ian Lance Taylor  <iant@google.com>
9666
9667         * godump.c (go_format_type): Correct length of name added to
9668         obstack for anonymous field.
9669
9670 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
9671
9672         PR target/49186
9673         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
9674         part of the second operand is 0.
9675
9676 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
9677
9678         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
9679         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
9680         to memory for !TARGET_MEMORY_MISMATCH_STALL.
9681         (*movdf_internal_rex64): Do not penalize F->r alternative.
9682         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
9683         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
9684         when optimizing function for size.  Do not move CONST_DOUBLEs
9685         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
9686         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
9687         SUBREGs.  Do not check for MEM_P operands in the insn condition,
9688         check for ANY_FP_REGNO_P instead.
9689         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
9690         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
9691         function for speed.
9692         * config/i386/i386.c (ix86_option_override_internal): Do not
9693         set TARGET_INTEGER_DFMODE_MOVES here.
9694
9695 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
9696
9697         PR target/49168
9698         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
9699
9700 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
9701
9702         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
9703         DW_TAG_rvalue_reference_type even for
9704         -gdwarf-4 -fno-debug-types-section.
9705
9706 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9707
9708         PR tree-optimization/46728
9709         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
9710         (build_and_insert_binop): New.
9711         (gimple_expand_builtin_pow): Reorder args for
9712         build_and_insert_call; use build_and_insert_binop; add more
9713         optimizations for fractional exponents.
9714
9715 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
9716
9717         PR bootstrap/49190
9718
9719         Revert:
9720         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
9721
9722         * tree.h (struct tree_identifier): Inherit from tree_typed, not
9723         tree_common.
9724         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
9725         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
9726         TS_BASE instead of TS_COMMON.
9727         * varasm.c (assemble_name): Remove assert.
9728
9729 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
9730
9731         * config.gcc: Keep obselete list sorted.
9732
9733 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
9734             Eric Botcazou  <ebotcazou@adacore.com>
9735
9736         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
9737         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
9738         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
9739         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
9740         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
9741
9742 2011-05-30  Richard Guenther  <rguenther@suse.de>
9743
9744         * gimple.c (gimple_types_compatible_p_1): Compare record
9745         and union type members properly.
9746
9747 2011-05-30  Richard Guenther  <rguenther@suse.de>
9748
9749         PR tree-optimization/49210
9750         * ipa-split.c (split_function): Care for the case where the call
9751         result is not trivially convertible to the result holding variable.
9752
9753 2011-05-30  Richard Guenther  <rguenther@suse.de>
9754
9755         PR tree-optimization/49218
9756         * tree-vrp.c (adjust_range_with_scev): Properly check whether
9757         overflow occured.
9758
9759 2011-05-30  Richard Guenther  <rguenther@suse.de>
9760
9761         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
9762         New function split out from ...
9763         (forward_propagate_into_gimple_cond): ... here.  Adjust.
9764         (forward_propagate_into_cond): Likewise.
9765         (forward_propagate_comparison): Also propagate into
9766         comparisons on assignment RHS.  Change return value to
9767         behave similar to forward_propagate_into_cond.
9768         (tree_ssa_forward_propagate_single_use_vars): Handle
9769         strict-overflow warnings properly for forward_propagate_comparison.
9770
9771 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9772
9773         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
9774         from plugin linker.
9775         * configure: Regenerate.
9776
9777 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
9778
9779         PR tree-optimization/49199
9780         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
9781         non-reduction operands are either defined in the loop or by induction.
9782
9783 2011-05-29  Xinliang David Li  <davidxl@google.com>
9784
9785         * opts-global.c (handle_common_deferred_options): Handle new options.
9786         * passes.c (register_one_dump_file): Call register_pass_name.
9787         (execute_one_pass): Check explicit enable/disable flag.
9788         (passr_hash): New function.
9789         (passr_eq): Ditto.
9790         (register_pass_name): Ditto.
9791         (get_pass_by_name): Ditto.
9792         (pass_hash): Ditto.
9793         (pass_eq): Ditto.
9794         (enable_pass): Ditto.
9795         (disable_pass): Ditto.
9796         (is_pass_explicitly_enabled_or_disabled): Ditto.
9797
9798 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
9799
9800         * config/i386/i386.md (*movoi_internal_avx): Use
9801         standard_sse_constant_opcode for alternative 0.
9802         (*movti_internal_sse): Ditto.
9803         (*movti_internal_rex64): Use standard_sse_constant_opcode for
9804         alternative 2.
9805         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
9806         sselog1 type moves.
9807         (*movsi_internal): Ditto.
9808         (*movdi_internal): Ditto.  Add ssecvt type moves.
9809
9810 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
9811
9812         PR target/48830
9813         * rtlanal.c (simplify_subreg_regno): Adjust comment.
9814
9815 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
9816
9817         PR rtl-optimization/49095
9818         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
9819         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
9820
9821 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
9822
9823         PR target/43995
9824         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
9825         recurse_p argument.  Only follow register copies if it is set,
9826         and prevent mips_find_pic_call_symbol from recursing.
9827         (mips_find_pic_call_symbol): Add a recurse_p argument.
9828         Pass it to mips_pic_call_symbol_from_set.
9829         (mips_annotate_pic_calls): Update accordingly.
9830
9831 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
9832
9833         * emit-rtl.c (try_split): Use a loop to search for
9834         NOTE_INSN_CALL_ARG_LOCATIONs.
9835
9836 2011-05-29  Richard Guenther  <rguenther@suse.de>
9837
9838         PR tree-optimization/49217
9839         * ipa-pure-const.c (propagate_pure_const): Fix typos.
9840
9841 2011-05-28  Jan Hubicka  <jh@suse.cz>
9842
9843         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
9844         length.
9845         (string_slot_free): Remove
9846         (create_output_block): Initialize obstack.
9847         (destroy_output_block): Free obstack.
9848         (lto_string_index): Add PERSISTENT parameter; do not duplicate
9849         the string unless it needs to be added into the hash.
9850         (lto_output_string_with_length): Add persistent attribute;
9851         handle NULL strings.
9852         (lto_output_string): Add PERSISTENT parameter.
9853         (output_string_cst, output_identifier): Simplify.
9854         (lto_output_location_bitpack): Update.
9855         (lto_output_builtin_tree): Update.
9856         * lto-streamer.h (struct output_block): Add obstack.
9857         (lto_output_string, lto_output_string_with_length): Remove
9858         declarations; functions are static now.
9859
9860 2011-05-28  Jan Hubicka  <jh@suse.cz>
9861
9862         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
9863         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
9864         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
9865         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
9866         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
9867         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
9868         unpack_ts_decl_with_vis_value_fields,
9869         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
9870         lto_get_builtin_tree): Use enum and variable length i/o.
9871         * basic-block.h (profile_status_d): Add PROFILE_LAST.
9872         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
9873         New functions.
9874         (bp_pack_enum, bp_unpack_enum): New macros.
9875
9876 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9877
9878         * genrecog.c: Remove redundant forward declarations.
9879
9880 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9881
9882         * config.gcc: Deprecate mips*-*-openbsd*.
9883
9884 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
9885
9886         PR bootstrap/49195
9887         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
9888         for match_op_dup.
9889
9890 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
9891
9892         PR middle-end/48981
9893         * gengtype.c (vec_prefix_type): New function.
9894         (note_def_vec): Use vec_prefix_type and change the length
9895         attribute to be based on the prefix.
9896         * vec.c: Include coretypes.h before vec.h.
9897         (struct vec_prefix): Remove.
9898         (vec_gc_p_reserve): Change the offsetof to sizeof.
9899         (vec_gc_p_reserve_exact): Likewise.
9900         (vec_heap_p_reserve): Likewise.
9901         (vec_heap_p_reserve_exact): Likewise.
9902         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
9903         (vec_stack_p_reserve): Change the offsetof to sizeof.
9904         (vec_stack_p_reserve_exact): Likewise.
9905         * vec.h (struct vec_prefix): New struct definition.
9906         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
9907         (VEC_T_GTY(T,B)): Likewise.
9908         (DEF_VEC_FUNC_P(T)): Use prefix field.
9909         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
9910         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
9911
9912 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9913
9914         PR tree-optimization/46728
9915         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
9916         (powi_as_mults): Add gimple_set_location.
9917         (build_and_insert_call): New.
9918         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
9919         0.5, 0.25, 0.75, 1./3., or 1./6.
9920
9921 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
9922
9923         * doc/contrib.texi: Update copyright years.
9924         (Contributors): Add Zdenek Sojka.
9925
9926 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
9927
9928         * c-decl.c (c_push_function_context): Copy the current statement
9929         list stack.
9930         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
9931         (finish_struct): Call building_stmt_list_p instead of checking
9932         cur_stmt_list.
9933         * c-parser.c (c_parser_postfix_expression): Likewise.
9934         * c-typeck.c (c_end_compound_stmt): Likewise.
9935         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
9936         * tree-iterator.c (stmt_list_cache): Change to a VEC.
9937         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
9938         (free_stmt_list): Likewise.
9939         * tree.h (struct tree_statement_list): Include typed_tree instead
9940         of tree_common.
9941         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
9942         as TS_TYPED instead of TS_COMMON.
9943
9944 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9945             Uros Bizjak  <ubizjak@gmail.com>
9946
9947         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
9948         (HAVE_AS_IX86_TLSGDPTL): Define.
9949         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
9950         (HAVE_AS_IX86_TLSLDMPLT): Define.
9951         * configure: Regenerate.
9952         * config.in: Regenerate.
9953         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
9954         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
9955         TARGET_SUN_TLS, use @tlsgdplt or @plt.
9956         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
9957         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
9958         @tlsldmplt or @plt.
9959         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
9960
9961 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
9962
9963         * sched-int.h (struct _haifa_deps_insn_data): New members cond
9964         and reverse_cond.
9965         (INSN_COND, INSN_REVERSE_COND): New macros.
9966         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
9967         once.
9968         (sched_get_condition_with_rev): Cache the results, and look them up
9969         if possible.
9970         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
9971         are clobbered by the current insn.
9972         * target.def (exposed_pipline): New sched data hook.
9973         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
9974         * doc/tm.texi: Regenerate.
9975
9976 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9977
9978         PR tree-optimization/49170
9979         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
9980         sincos or cexp.
9981
9982 2011-05-27  Richard Guenther  <rguenther@suse.de>
9983
9984         PR middle-end/49189
9985         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
9986         of comparisons.
9987
9988 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
9989
9990         * haifa-sched.c (sched_scan_info): Remove.
9991         (schedule_block): Call sched_extend_luids rather than sched_init_luids
9992         with NULL args.
9993         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
9994         Remove functions.
9995         (sched_scan): Remove.
9996         (sched_extend_luids): Renamed from luids_extend_insn and no longer
9997         static.  All callers changed.
9998         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
9999         static.  All callers changed.
10000         (sched_init_luids): Remove all arguments except the first.  All
10001         callers changed.  Don't use sched_scan.
10002         (haifa_init_h_i_d): Likewise.
10003         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
10004         manually rather than using sched_init_luids.  Likewise with
10005         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
10006         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
10007         rather than sched_init_luids with NULL args.
10008         * sel-sched-ir.c (new_insns): Remove variable.
10009         (sched_scan): New static function, previously in haifa-sched.c.  Remove
10010         all arguments but the first two; all callers changed.
10011         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
10012         rather than sched_init_luids.
10013         (sel_init_bbs): Remove second argument.  All callers changed.
10014         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
10015         with NULL arguments.
10016         (create_insn_rtx_from_pattern): Likewise.
10017         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
10018         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
10019         (sched_init_insn_luid, sched_extend_luids): Declare.
10020         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
10021         declarations.
10022
10023 2011-05-27  Richard Guenther  <rguenther@suse.de>
10024
10025         PR middle-end/49177
10026         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
10027         A CMP B ? (T) true : (T) false for non-integral types T again.
10028
10029 2011-05-27  Jan Hubicka  <jh@suse.cz>
10030
10031         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
10032         so 0 means NULL string.
10033         (lto_output_string_with_length): ... here.
10034         (lto_output_string, output_string_cst, output_identifier): Update
10035         handling of NULL strings.
10036         (lto_output_location_bitpack): New function.
10037         (lto_output_location): Use it.
10038         (lto_output_tree_ref): Use output_record_start.
10039         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
10040         len values.
10041         * lto-streamer-in.c (string_for_index): Break out from ...; offset
10042         values by 1.
10043         (input_string_internal): ... here;
10044         (input_string_cst, input_identifier, lto_input_string): Update handling
10045         of NULL strings.
10046         (lto_input_location_bitpack): New function
10047         (lto_input_location): Use it.
10048         (unpack_ts_type_common_value_fields): Pack align & alias in var len
10049         values.
10050         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
10051         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
10052         (bp_pack_value): Sanity check the value range.
10053         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
10054         New functions.
10055         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
10056         New functions.
10057
10058 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
10059
10060         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
10061         call_arg_location instructions down the floor.
10062
10063 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
10064
10065         PR rtl-optimization/49154
10066         * ira.c (setup_pressure_classes): Process class without sublcasses
10067         as a candidate for pressure classes.
10068
10069 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
10070
10071         PR rtl-optimization/48575
10072         * genrecog.c (position_type): New enum.
10073         (position): New structure.
10074         (decision): Use position structure instead of a string.
10075         (root_pos, peep2_insn_pos_list): New variables.
10076         (next_position, compare_positions): New functions.
10077         (new_decision): Use position structures instead of strings.
10078         (maybe_both_true): Likewise.
10079         (change_state): Likewise.
10080         (write_tree): Likewise.
10081         (make_insn_sequence): Likewise.
10082
10083 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
10084
10085         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
10086         TS_BASE instead of TS_COMMON.
10087         (find_decls_types_r): Check for TS_TYPED structure before looking at
10088         TREE_TYPE.
10089         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
10090         Add chain field.
10091         (BLOCK_CHAIN): Use new chain field.
10092
10093 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
10094
10095         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
10096         moves expensive on Power7 also.
10097
10098 2011-05-26  Richard Guenther  <rguenther@suse.de>
10099
10100         * fold-const.c (fold_unary_loc): Remove bogus code.
10101
10102 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
10103
10104         * tree.h (struct tree_identifier): Inherit from tree_typed, not
10105         tree_common.
10106         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
10107         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
10108         TS_BASE instead of TS_COMMON.
10109         * varasm.c (assemble_name): Remove assert.
10110
10111 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
10112
10113         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
10114         substituted first.
10115         * libgcc-std.ver: Delete file.
10116
10117 2011-05-26  Richard Guenther  <rguenther@suse.de>
10118
10119         PR tree-optimization/48702
10120         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
10121         only when we know the base address is within bounds.
10122         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
10123         assume the base address of TARGET_MEM_REFs is in bounds.
10124
10125 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10126
10127         PR target/49099
10128         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
10129         declaration in TARGET_SOLARIS.
10130
10131 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
10132
10133         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
10134         The instruction is then expanded explicitly.
10135         (supported_compare): Callable instruction.
10136         (compare): Likewise.
10137
10138 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
10139
10140         PR c++/49165
10141         * gimplify.c (shortcut_cond_r): Don't special case
10142         COND_EXPRs if they have void type on one of their arms.
10143
10144 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
10145
10146         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
10147         to reduce duplication, and to achieve a slightly more logical order
10148         of operations.
10149
10150 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
10151
10152         PR tree-optimization/49161
10153         * tree-vrp.c (struct case_info): New type.
10154         (compare_case_labels): Sort case_info structs instead of
10155         trees, and not primarily by CASE_LABEL uids but by
10156         label_for_block indexes.
10157         (find_switch_asserts): Put case labels into struct case_info
10158         array instead of TREE_VEC, adjust sorting, compare label_for_block
10159         values instead of CASE_LABELs.
10160
10161 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10162
10163         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
10164         ("orndi3_neon"): Likewise.
10165         ("bic<mode>3_neon"): Likewise.
10166
10167 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
10168
10169         PR tree-optimization/49038
10170         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
10171         Ensure at least one epilogue iteration if required by data
10172         accesses with gaps.
10173         * tree-vectorizer.h (struct _loop_vec_info): Add new field
10174         to mark loops that require peeling for gaps.
10175         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
10176         (vect_get_known_peeling_cost): Take peeling for gaps into
10177         account.
10178         (vect_transform_loop): Generate epilogue if required by data
10179         access with gaps.
10180         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
10181         loop as requiring an epilogue if there are gaps in the end of
10182         the strided group.
10183
10184 2011-05-25  Ian Lance Taylor  <iant@google.com>
10185
10186         * godump.c (go_format_type): Output the first field with a usable
10187         Go type, if any.
10188
10189 2011-05-25  Ian Lance Taylor  <iant@google.com>
10190
10191         * godump.c (go_format_type): Check for invalid type names, pointer
10192         target types, and struct field types.
10193
10194 2011-05-25  Jason Merrill  <jason@redhat.com>
10195
10196         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
10197
10198 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
10199
10200         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
10201
10202 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10203
10204         * config/i386/i386.md (*movqi_extv_1)): Put back
10205         "register_operand" check in "type" calculation.
10206         (*movqi_extzv_2): Likewise.
10207
10208 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10209
10210         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
10211
10212 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
10213
10214         PR bootstrap/49160
10215         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
10216         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
10217         __divxc3, __divtc3): Wrap definitions in #ifndef.
10218
10219 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10220
10221         PR target/49142
10222         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
10223         "register_operand" check and replace q_regs_operand with
10224         QIreg_operand in "type" calculation.
10225         (*movqi_extv_1): Likewise.
10226         (*movqi_extzv_2_rex64): Likewise.
10227         (*movqi_extzv_2): Likewise.
10228
10229         * config/i386/predicates.md (QIreg_operand): New.
10230
10231 2011-05-25  Richard Guenther  <rguenther@suse.de>
10232
10233         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
10234         type-based offset disambiguation, streamline MEM_REF and
10235         TARGET_MEM_REF handling.
10236
10237 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
10238
10239         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
10240         (bdesc_special_args): Add pause intrinsic.
10241
10242         * config/i386/i386.md (UNSPEC_PAUSE): New.
10243         (pause): Likewise.
10244         (*pause): Likewise.
10245         * config/i386/ia32intrin.h (__pause): Likewise.
10246
10247         * doc/extend.texi (X86 Built-in Functions): Add documentation for
10248         pause intrinsic.
10249
10250 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10251
10252         PR tree-optimization/46728
10253         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
10254         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
10255
10256 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
10257
10258         * tree.h (struct tree_exp): Inherit from struct tree_typed.
10259         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
10260         instead of TS_COMMON.
10261
10262 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
10263
10264         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
10265         LIBGCC2_GNU_PREFIX is defined.
10266         (__N): New macro.
10267         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
10268         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
10269         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
10270         __clz_tab): Define using __N.
10271         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
10272         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
10273         * target.def (libfunc_gnu_prefix): New hook.
10274         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
10275         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
10276         * doc/tm.texi: Regenerate.
10277         * system.h (LIBGCC2_GNU_PREFIX): Poison.
10278         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
10279         account.
10280         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
10281         (init_optabs): Likewise for the bswap libfuncs.
10282         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
10283         and divide.
10284         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
10285         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
10286         * libgcc-std.ver: Remove.
10287         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
10288         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
10289         libgcc-std.ver.
10290         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10291         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
10292         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
10293         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
10294         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
10295         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10296         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
10297         * config/fixed-bit.h (FIXED_OP): Define differently depending on
10298         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
10299         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
10300
10301 2011-05-25  Jan Hubicka  <jh@suse.cz>
10302
10303         * lto-streamer-out.c (output_record_start): Use lto_output_enum
10304         (lto_output_tree): Use output_record_start.
10305         * lto-streamer-in.c (input_record_start): Use lto_input_enum
10306         (lto_get_pickled_tree): Use input_record_start.
10307         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
10308         (lto_value_range_error): New function.
10309         * lto-streamer.h (lto_value_range_error): Declare.
10310         (lto_output_int_in_range, lto_input_int_in_range): New functions.
10311         (lto_output_enum, lto_input_enum): New macros.
10312
10313 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
10314
10315         * common.opt (flag_stack_usage_info): New variable.
10316         (-Wstack-usage): New option.
10317         * doc/invoke.texi (Warning options): Document -Wstack-usage.
10318         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
10319         <OPT_fstack_usage>: Likewise.
10320         * toplev.c (output_stack_usage): Handle -Wstack-usage.
10321         * calls.c (expand_call): Test flag_stack_usage_info variable instead
10322         of flag_stack_usage.
10323         (emit_library_call_value_1): Likewise.
10324         * explow.c (allocate_dynamic_stack_space): Likewise.
10325         * function.c (instantiate_virtual_regs ): Likewise.
10326         (prepare_function_start): Likewise.
10327         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
10328         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
10329         * config/arm/arm.c (arm_expand_prologue): Likewise.
10330         (thumb1_expand_prologue): Likewise.
10331         * config/avr/avr.c (expand_prologue): Likewise.
10332         * config/i386/i386.c (ix86_expand_prologue): Likewise.
10333         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
10334         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
10335         * config/mips/mips.c (mips_expand_prologue): Likewise.
10336         * config/pa/pa.c (hppa_expand_prologue): Likewise.
10337         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
10338         * config/s390/s390.c (s390_emit_prologue): Likewise.
10339         * config/sh/sh.c (sh_expand_prologue): Likewise.
10340         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
10341         * config/spu/spu.c (spu_expand_prologue): Likewise.
10342
10343 2011-05-25  Richard Guenther  <rguenther@suse.de>
10344
10345         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
10346         (gimple_canonical_types_compatible_p): Likewise.
10347
10348 2011-05-25  Jan Hubicka  <jh@suse.cz>
10349
10350         PR middle-end/49062
10351         * ipa.c (function_and_variable_visibility): Only add to same
10352         comdat group list if DECL_ONE_ONLY.
10353
10354 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
10355
10356         PR rtl-optimization/49014
10357         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
10358
10359 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
10360
10361         PR target/49128
10362         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
10363
10364 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10365
10366         PR rtl-optimization/48757
10367         * ira-build.c (loop_with_eh_edge_p): Rename to
10368         loop_with_complex_edge_p, check edges on complexity, make function
10369         conditional.
10370         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
10371         conditional.
10372
10373 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10374
10375         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
10376         force flag_ira_share_save_slots to 0.
10377
10378 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10379
10380         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
10381         (vt_initialize): Set PROLOGUE_BB unconditionally.
10382         Add block comment about CFA_BASE_RTX machinery.
10383         Reset FP_CFA_OFFSET to -1 on all invalid paths.
10384         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
10385
10386 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
10387
10388         PR objc/48187
10389         * c-parser.c (c_parser_objc_class_instance_variables): More robust
10390         parsing of syntax error in ObjC instance variable lists.  In
10391         particular, avoid an infinite loop if there is a stray ']'.
10392         Updated error message.
10393
10394 2011-05-24  Ian Lance Taylor  <iant@google.com>
10395
10396         * godump.c (go_define): Don't accept a string immediately after
10397         another operand.
10398
10399 2011-05-24  Ian Lance Taylor  <iant@google.com>
10400
10401         * godump.c (struct godump_container): Add invalid_hash field.
10402         (go_format_type): Return false if type is found in invalid_hash.
10403         (go_output_typedef): Add invalid type to invalid_hash.
10404         (go_finish): Create and delete invalid_hash.
10405
10406 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10407
10408         PR tree-optimization/46728
10409         * tree-ssa-math-opts.c (powi_table): New.
10410         (powi_lookup_cost): New.
10411         (powi_cost): New.
10412         (powi_as_mults_1): New.
10413         (powi_as_mults): New.
10414         (gimple_expand_builtin_powi): New.
10415         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
10416         (gate_cse_sincos): Remove sincos/cexp restriction.
10417
10418 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10419
10420         PR target/3746
10421         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
10422         mips-tdump native.
10423         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
10424         * mips-tdump.c: Likewise.
10425
10426 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
10427
10428         PR target/49128
10429         * config/i386/driver-i386.c (host_detect_local_cpu): Always
10430         add -mno-XXX.  Handle FMA.
10431
10432 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10433
10434         PR rtl-optimization/48633
10435         * ira-build.c (loop_with_eh_edge_p): New function.
10436         (mark_loops_for_removal): Use it.
10437
10438 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
10439
10440         PR rtl-optimization/48971
10441         * ira.c (setup_pressure_classes): Don't check register move cost
10442         for classes with one registers.  Don't add pressure class if there
10443         is a pressure class with the same available hard registers.
10444         Check contains_reg_of_mode.  Fix a typo in collecting
10445         temp_hard_regset.  Ignore hard registers not belonging to a class.
10446
10447 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
10448
10449         PR target/49133
10450         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
10451
10452 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
10453             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10454
10455         PR gcov-profile/48845
10456         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
10457
10458 2011-05-24  Richard Guenther  <rguenther@suse.de>
10459
10460         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
10461         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
10462         (gimple_types_compatible_p_1): Adjust.
10463         (iterative_hash_canonical_type): Do not bother about complete vs.
10464         incomplete types.
10465         (gimple_canonical_types_compatible_p): Likewise.
10466
10467 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10468
10469         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
10470
10471 2011-05-24  Richard Guenther  <rguenther@suse.de>
10472
10473         PR bootstrap/49078
10474         * gimple.c (gimple_register_canonical_type): Revert
10475         previous change.
10476         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
10477         does not for a tree for the case where it matters.  Cache
10478         pointer-type alias-sets.
10479
10480 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
10481
10482         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
10483         (OBJS): Remove options.o, opts-common.o and prefix.o.
10484         (OBJS-libcommon-target): New.
10485         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
10486         (BACKEND): Include libcommon-target.a.
10487         (MOSTLYCLEANFILES): Include libcommon-target.a.
10488         (libcommon-target.a): New.
10489         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
10490         prefix.o.
10491
10492 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
10493
10494         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
10495         parts of output shared with the driver.
10496         * optc-gen.awk: Don't generate parts of output not shared with the
10497         driver.
10498         * opth-gen.awk: Remove GCC_DRIVER conditionals.
10499         * doc/options.texi (SourcerInclude): Mention options-save.c.
10500         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
10501         (OBJS): Add options-save.o.
10502         (options-save.c, options-save.o): New.
10503         (options.o): Update dependencies.
10504         (gcc-options.o): Remove.
10505         (mostlyclean): Remove options-save.c.
10506
10507 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10508
10509         PR debug/49032
10510         * dbxout.c: Include cgraph.h.
10511         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
10512         and without value expr, return NULL if no varpool node exists for
10513         it or if it is not needed.
10514         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
10515
10516         PR c/49120
10517         * c-decl.c (start_decl): Convert expr to void_type_node.
10518
10519 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
10520
10521         PR rtl-optimization/48826
10522         * emit-rtl.c (try_split): When splitting a call that is followed
10523         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
10524
10525 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10526
10527         * cfgexpand.c (expand_debug_expr): For unused non-addressable
10528         parameters passed in memory prefer using DECL_INCOMING_RTL over
10529         the pseudos it will be copied into.
10530
10531 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
10532
10533         PR target/47315
10534         * config/i386/i386.c (ix86_option_override_internal): Save the
10535         initial options after checking vzeroupper.
10536
10537 2011-05-23  David Li  <davidxl@google.com>
10538
10539         PR tree-optimization/48988
10540         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
10541         Initialize has_valid_pred for each pred chain.
10542
10543 2011-05-23  Richard Guenther  <rguenther@suse.de>
10544
10545         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
10546         (iterative_hash_gimple_type): Always hash type names.
10547
10548 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
10549
10550         * c-typeck.c (build_function_call_vec): Tweak call to
10551         check_function_arguments.
10552
10553 2011-05-23  Richard Guenther  <rguenther@suse.de>
10554
10555         PR tree-optimization/49115
10556         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
10557         is not necessarily carried out, do not claim it kills the ref.
10558         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
10559
10560 2011-05-23  Richard Guenther  <rguenther@suse.de>
10561
10562         PR middle-end/15419
10563         * builtins.c (fold_builtin_memory_op): Be less restrictive about
10564         what pointer types we accept for folding.
10565
10566 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10567
10568         * gthr-gnat.c: Remove.
10569         * gthr-gnat.h: Remove.
10570         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
10571         * config/t-freebsd (LIB2ADDEH): Likewise.
10572         * config/t-linux (LIB2ADDEH): Likewise.
10573         * config/t-sol2 (LIB2ADDEH): Likewise.
10574         * config/ia64/t-vms (LIB2ADDEH): Likewise.
10575         * configure.ac (target_thread_file): Remove gnat handling.
10576         * configure: Regenerate.
10577         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
10578
10579 2011-05-23  Tristan Gingold  <gingold@adacore.com>
10580             Eric Botcazou  <ebotcazou@adacore.com>
10581
10582         * gcov.c (create_file_names): If no object directory is specified,
10583         keep the directory of the file.
10584
10585 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10586
10587         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
10588         * configure: Regenerate.
10589
10590 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
10591
10592         PR middle-end/48973
10593         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
10594         failed and the comparison has a single bit signed type, use
10595         constm1_rtx instead of const1_rtx for true value.
10596         (do_store_flag): If ops->type is single bit signed type, disable
10597         signel bit test optimization and pass -1 instead of 1 as last
10598         parameter to emit_store_flag_force.
10599
10600 2011-05-23  Tom de Vries  <tom@codesourcery.com>
10601
10602         PR target/45098
10603         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
10604         function.
10605         (infer_loop_bounds_from_undefined): Use new function.
10606
10607 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
10608
10609         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
10610         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
10611         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
10612         and -O0 otherwise.
10613         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
10614
10615 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10616
10617         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
10618         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
10619         returns true.
10620
10621 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
10622
10623         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
10624
10625 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10626
10627         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
10628         UNSPEC_MOVE_PIC pattern.
10629
10630 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
10631
10632         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
10633         (sparc-*-rtems*): Likewise.
10634         (sparc64-*-elf*): Likewise.
10635         (sparc64-*-rtems*): Likewise.
10636         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
10637         * config/sparc/t-crtin: New file.
10638         * config/sparc/t-sol2 (crti.o): Delete rule.
10639         (crtn.o): Likewise.
10640         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
10641         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
10642         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
10643         (ENDFILE_SPEC): Add crtn.o.
10644
10645 2011-05-22  Tom de Vries  <tom@codesourcery.com>
10646
10647         PR middle-end/48689
10648         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
10649         CODE_CONTAINS_STRUCT (TS_COMMON).
10650
10651 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
10652
10653         PR middle-end/49029
10654         * expmed.c (extract_fixed_bit_field): Test whether target can be used
10655         only after deciding which mode to use.
10656
10657 2011-05-22  Tom de Vries  <tom@codesourcery.com>
10658
10659         PR target/45098
10660         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
10661         for call to get_shiftadd_cost.
10662
10663 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
10664
10665         PR target/49104
10666         * config/i386/cpuid.h (bit_MMXEXT): New define.
10667
10668 2011-05-22  Nick Clifton  <nickc@redhat.com>
10669
10670         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
10671         initialisation of non-existant args[2] element.  Use args[] array
10672         not arg[] array to pass arguments to build_function_type_list.
10673
10674 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
10675
10676         PR tree-optimization/49087
10677         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
10678
10679 2011-05-21  Jason Merrill  <jason@redhat.com>
10680
10681         PR c++/49092
10682         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
10683         static storage duration.
10684
10685 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10686
10687         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
10688         frame pointer.
10689
10690 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
10691
10692         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
10693         false if there are call-saved registers here...
10694         (sparc_can_use_return_insn_p): ...but here instead.
10695         (save_or_restore_regs): Fix thinko.
10696         (sparc_expand_prologue): Use current_function_is_leaf.
10697         (sparc_frame_pointer_required): Likewise.
10698
10699 2011-05-21  Nick Clifton  <nickc@redhat.com>
10700
10701         PR target/49098
10702         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
10703
10704 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
10705
10706         * gengtype.c (walk_type): Implemented "atomic" GTY option.
10707         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
10708
10709 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
10710
10711         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
10712         * optc-gen.awk: Move common code to opt-read.awk.
10713         * opth-gen.awk: Likewise.
10714         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
10715
10716 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
10717
10718         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
10719
10720 2011-05-20  Tom de Vries  <tom@codesourcery.com>
10721
10722         PR target/45098
10723         * tree-ssa-loop-ivopts.c: Include expmed.h.
10724         (get_shiftadd_cost): New function.
10725         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
10726
10727 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
10728
10729         PR bootstrap/49086
10730         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
10731         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
10732
10733 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
10734
10735         * Makefile.in: Update comment referring to $(OBJS-common).
10736
10737 2011-05-20  Ian Lance Taylor  <iant@google.com>
10738
10739         * godump.c (go_output_typedef): Put enum constants in the macro
10740         hash table to avoid duplicate Go const definitions.
10741
10742 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
10743
10744         * Makefile.in (LIBDEPS): Add libcommon.a.
10745         (LIBS): Likewise.
10746         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
10747         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
10748         pretty-print.o and version.o.
10749         (OBJS-libcommon): New.
10750         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
10751         (BACKEND): Add libcommon.a.
10752         (MOSTLYCLEANFILES): Likewise.
10753         (libcommon.a): New.
10754         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
10755         (cpp$(exeext)): Likewise.
10756         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
10757         pretty-print.o and input.o.
10758         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
10759         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
10760         (errors.o): Remove.
10761         (mips-tfile): Don't explicitly use version.o.
10762         (mips-tdump): Likewise.
10763         (gcov.o): Depend on $(DIAGNOSTIC_H).
10764         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
10765         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
10766         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
10767         * gcov-dump.c: Include intl.h and diagnostic.h.
10768         (main): Initialize diagnostics.
10769         * gcov.c: Include diagnostic.h.
10770         (fnotice): Remove.
10771         (main): Initialize diagnostics.
10772         * lto-wrapper.c: Include diagnostic.h.
10773         (main): Initialize diagnostics.
10774
10775 2011-05-20  Michael Matz  <matz@suse.de>
10776
10777         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
10778
10779 2011-05-20  Michael Matz  <matz@suse.de>
10780             Richard Guenther  <rguenther@suse.de>
10781
10782         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
10783         use lto_streamer_cache_append directly instead of returning a VEC.
10784         (preload_common_node): Remove.
10785         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
10786         track seen nodes.
10787         (lto_streamer_cache_create): Call lto_preload_common_nodes.
10788
10789 2011-05-20  Richard Guenther  <rguenther@suse.de>
10790
10791         PR tree-optimization/49079
10792         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
10793         MEM_REFs correctly for the trailing array access detection.
10794         Special case constants the same way as decls for overall size
10795         constraining.
10796
10797 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
10798
10799         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
10800         argument expansion.
10801
10802 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
10803
10804         PR tree-optimization/49073
10805         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
10806         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
10807         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
10808
10809 2011-05-20  Richard Guenther  <rguenther@suse.de>
10810
10811         PR middle-end/48849
10812         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
10813         of pointer types the same way the middle-end does.
10814
10815 2011-05-20  Richard Guenther  <rguenther@suse.de>
10816
10817         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
10818         or pointer-to chains.  Delay all fixup to uniquify_nodes.
10819
10820 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
10821
10822         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
10823         (fma4_fmaddsub): Likewise
10824
10825 2011-05-19  Jan Hubicka  <jh@suse.cz>
10826
10827         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
10828         (GIMPLE_TYPE_PAIR_SIZE): New macro.
10829         (type_pair_cache): New static var.
10830         (lookup_type_pair): Use fixed sized custom hash; make inline.
10831         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
10832         calls of lookup_type_pair.
10833         (print_gimple_types_stats): Remove cache stats.
10834         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
10835         and gtc_ob.
10836
10837 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
10838
10839         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
10840         when TARGET_RDRND is active.
10841         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
10842         Generate dummy SImode target register when target is NULL.
10843
10844 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
10845
10846         * config/arm/arm-fpus.def: New.
10847         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
10848         arm-fpus.def.
10849         * config/arm/arm-tables.opt: Regenerate.
10850         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
10851         (arm_option_override): Don't decode FPU name to string here.
10852         * config/arm/arm.opt (mfpu=): Use Enum.
10853         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
10854         Update dependencies.
10855
10856 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
10857
10858         * collect2.c: Include diagnostic.h.
10859         (fatal_perror, fatal, error, fancy_abort): Remove.
10860         (main): Set progname.  Call xmalloc_set_program_name and
10861         diagnostic_initialize.
10862         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
10863         scan_libraries, resolve_lib_name): Call fatal_error instead of
10864         fatal and fatal_perror.
10865         * collect2.h (error, fatal, fatal_perror): Don't declare.
10866         * tlink.c: Include diagnostic-core.h.
10867         (recompile_files): Call fatal_error instead of fatal_perror.
10868         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
10869         pretty-print.o and input.o.
10870         (collect2.o, tlink.o): Update dependencies.
10871
10872 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10873
10874         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
10875
10876 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10877
10878         PR target/40483
10879         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
10880         COMDAT group syntax, both SPARC and x86 variants.
10881         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
10882         * configure: Regenerate.
10883         * config/sol2.h (TARGET_SOLARIS): Define.
10884         (PUSHSECTION_FORMAT): Remove.
10885         (SECTION_NAME_FORMAT): Define.
10886         * config/sol2.c: Include hashtab.h.
10887         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
10888         expansion, using SECTION_NAME_FORMAT.
10889         (solaris_comdat_htab): New variable.
10890         (struct comdat_entry): Define.
10891         (comdat_hash): New function.
10892         (comdat_eq): New function.
10893         (solaris_elf_asm_comdat_section): New function.
10894         (solaris_define_comdat_signature): New function.
10895         (solaris_code_end): New function.
10896         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
10897         (solaris_code_end): Declare.
10898         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
10899         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
10900         solaris_code_end.
10901         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
10902         Remove ATTRIBUTE_UNUSED.
10903         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
10904         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
10905         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
10906         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
10907         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
10908         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
10909         (PUSHSECTION_FORMAT): Remove.
10910         (SECTION_NAME_FORMAT): Redefine.
10911
10912 2011-05-19  Kai Tietz  <ktietz@redhat.com>
10913
10914         * tree-cfg.c (verify_gimple_assign_binary): Barf on
10915         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
10916         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
10917
10918 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
10919             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10920
10921         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
10922
10923 2011-05-19  Richard Guenther  <rguenther@suse.de>
10924
10925         PR middle-end/48985
10926         * tree-object-size.c (addr_object_size): If the pointed-to
10927         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
10928
10929 2011-05-19  Richard Guenther  <rguenther@suse.de>
10930
10931         * gimple.c (gimple_types_compatible_p_1): Compare names of
10932         the types themselves.
10933         (iterative_hash_gimple_type): And hash them that way.
10934         (gimple_register_type_1): If we register a main variant properly
10935         initialize the leader to ourselves.
10936
10937 2011-05-19  Tom de Vries  <tom@codesourcery.com>
10938
10939         PR target/45098
10940         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
10941         get_loop_invariant_expr_id.
10942         (get_loop_invariant_expr_id): Use get_expr_id.
10943         (parm_decl_cost): New function.
10944         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
10945         Improve bound cost estimation.  Use different inv_expr_id for elim and
10946         express cases.
10947
10948 2011-05-19  Tom de Vries  <tom@codesourcery.com>
10949
10950         PR target/45098
10951         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
10952         cost_base.cost == 0.
10953
10954 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
10955
10956         PR target/49002
10957         * config/i386/sse.md
10958         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
10959         load cast.
10960
10961 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
10962
10963         PR tree-optimization/49039
10964         * tree-vrp.c (extract_range_from_binary_expr): For
10965         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
10966         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
10967
10968 2011-05-18  Tom de Vries  <tom@codesourcery.com>
10969
10970         PR target/45098
10971         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
10972
10973 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
10974
10975         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
10976         (*tls_global_dynamic_64): Ditto.
10977         (*tls_local_dynamic_base_32_gnu): Ditto.
10978         (*tls_local_dynamic_base_64): Ditto.
10979         (tls_initial_exec_64_sun): Ditto.
10980
10981 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
10982
10983         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
10984         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
10985         bf592-none.
10986         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
10987         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
10988         * config/bfin/bfin.c (bfin_cpus): Add bf592.
10989         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
10990         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
10991         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
10992         * config/bfin/elf.h (LIB_SPEC): Add bf592.
10993
10994 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
10995
10996         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
10997         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
10998         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
10999         target_thread_pointer, arm_structure_size_boundary, struct
11000         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
11001         struct abi_name, arm_all_abis): Remove.
11002         (arm_option_override) Don't process most enumerated option values here.
11003         Don't process target_fpe_name here.  Work with integer not string for
11004         structure size boundary; use separate diagnostics for each case.
11005         * config/arm/arm.h (enum float_abi_type, enum
11006         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
11007         to arm-opts.h.
11008         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
11009         arm_structure_size_boundary): Remove.
11010         * config/arm/arm.opt (mabi=): Use Enum and Init.
11011         (arm_abi_type): New Enum and EnumValue entries.
11012         (mfloat-abi=): Use Enum and Init.
11013         (float_abi_type): New Enum and EnumValue entries.
11014         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
11015         (mfp16-format=): Use Enum and Init.
11016         (arm_fp16_format_type): New Enum and EnumValue entries.
11017         (mstructure-size-boundary=): Use UInteger and Init.
11018         (mtp=): Use Enum and Init.
11019         (arm_tp_type): New Enum and EnumValue entries.
11020
11021 2011-05-18  Richard Guenther  <rguenther@suse.de>
11022
11023         PR tree-optimization/49018
11024         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
11025         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
11026         gimple_has_side_effects.
11027
11028 2011-05-18  Richard Guenther  <rguenther@suse.de>
11029
11030         * gimple.c (gimple_register_type_1): New function, split out from ...
11031         (gimple_register_type): ... here.  Avoid infinite recursion.
11032
11033 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
11034
11035         PR tree-optimization/41881
11036         * tree-vectorizer.h (struct _loop_vec_info): Add new field
11037         reduction_chains along with a macro for its access.
11038         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
11039         (destroy_loop_vec_info): Free reduction chains.
11040         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
11041         (vect_is_slp_reduction): New function.
11042         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
11043         (vect_create_epilog_for_reduction): Support SLP reduction chains.
11044         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
11045         definition types for reduction chains.
11046         (vect_supported_load_permutation_p): Don't allow permutations for
11047         reduction chains.
11048         (vect_analyze_slp_instance): Support reduction chains.
11049         (vect_analyze_slp): Try to build SLP instance from reduction chains.
11050         (vect_get_constant_vectors):  Handle reduction chains.
11051         (vect_schedule_slp_instance): Mark the first statement of the
11052         reduction chain as reduction.
11053
11054 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
11055
11056         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
11057         names for group elements access.
11058         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
11059         reduction chains as well.  Remove data reference and interleaving
11060         related words from the fields names.
11061         * tree-vect-loop.c (vect_transform_loop): Use new names for group
11062         elements access.
11063         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
11064         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
11065         vect_update_interleaving_chain, vect_same_range_drs,
11066         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
11067         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
11068         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
11069         vect_analyze_group_access, vect_analyze_data_ref_access,
11070         vect_create_data_ref_ptr, vect_transform_strided_load,
11071         vect_record_strided_load_vectors): Likewise.
11072         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
11073         vect_model_load_cost, vectorizable_store, vectorizable_load,
11074         vect_remove_stores, new_stmt_vec_info): Likewise.
11075         * tree-vect-slp.c (vect_build_slp_tree,
11076         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
11077
11078 2011-05-18  Richard Guenther  <rguenther@suse.de>
11079
11080         PR middle-end/48989
11081         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
11082         operand verification.
11083         (verify_gimple_assign_binary): Likewise.
11084         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
11085         to non-1-precision BOOLEAN_TYPEs.
11086
11087 2011-05-18  Tom de Vries  <tom@codesourcery.com>
11088
11089         PR target/45098
11090         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
11091
11092 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
11093
11094         PR tree-optimization/49000
11095         * tree-ssa.c (execute_update_addresses_taken): Call
11096         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
11097         be rewritten and decl has been marked for renaming, reset
11098         the debug stmt.
11099
11100 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
11101
11102         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
11103         enum_opts_set when testing if attributes have set -mfpmath=.
11104
11105 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
11106
11107         * config/mips/mips.c (mips_handle_option): Remove unused variable.
11108
11109 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
11110
11111         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
11112         info->entry with 0
11113         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
11114         id.transform_lang_insert_block with NULL.
11115
11116 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
11117
11118         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
11119         (output_fp_compare): Change args 3 and 4 to bool.
11120         (ix86_expand_call): Change arg 6 to bool.
11121         (ix86_attr_length_immediate_default): Change arg 2 to bool.
11122         (ix86_attr_length_vex_default): Change arg 3 to bool.
11123         * config/i386/i386.md: Update all uses.
11124         * config/i386/i386.c: Ditto.
11125         (ix86_flags_dependent): Change return type to bool.
11126
11127 2011-05-17  Richard Guenther  <rguenther@suse.de>
11128
11129         * gimple.c (type_hash_pair_compare): Fix comparison.
11130
11131 2011-05-17  Richard Guenther  <rguenther@suse.de>
11132
11133         * gimple.c (iterative_hash_gimple_type): Simplify singleton
11134         case some more, fix final hash value of the non-singleton case.
11135
11136 2011-05-17  Richard Guenther  <rguenther@suse.de>
11137
11138         PR bootstrap/49013
11139         Revert
11140         2011-05-16  Richard Guenther  <rguenther@suse.de>
11141
11142         * gimple.c (gimple_types_compatible_p_1): Use names of the
11143         type itself, not its main variant.
11144         (iterative_hash_gimple_type): Likewise.
11145
11146 2011-05-17  Richard Guenther  <rguenther@suse.de>
11147
11148         * gimple.c (gimple_register_canonical_type): Use the main-variant
11149         leader for computing the canonical type.
11150
11151 2011-05-17  Nick Clifton  <nickc@redhat.com>
11152
11153         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
11154         moves.
11155
11156         * config/rx/rx.md: Add peephole to remove redundant extensions
11157         after loads.
11158         (bitset_in_memory): Use rx_restricted_mem_operand.
11159         (bitinvert_in_memory): Likewise.
11160         (bitclr_in_memory): Likewise.
11161
11162 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
11163             Nick Clifton  <nickc@redhat.com>
11164
11165         * config/rx/rx.md: Add peepholes to match a register move followed
11166         by a comparison of the moved register.  Replace these with an
11167         addition of zero that does both actions in one instruction.
11168
11169 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
11170
11171         PR target/48986
11172         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
11173         predicate to allow CONST_INT.
11174         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
11175
11176 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
11177
11178         * opts-common.c (opt_enum_arg_to_value): New.
11179         * opts.h (opt_enum_arg_to_value): Declare.
11180         * config/i386/i386.opt (fpmath): Remove.
11181         (mfpmath=): Use Enum, Init and Save.
11182         (fpmath_unit): New Enum and EnumValue entries.
11183         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
11184         name for function fpmath state.
11185         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
11186         * config/i386/i386.c: Include diagnostic.h.
11187         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
11188         (ix86_target_string): Take enum fpmath_unit value instead of string.
11189         (ix86_debug_options): Update call to ix86_target_string.
11190         (ix86_option_override_internal): Don't process fpmath strings here.
11191         (x86_function_specific_save, ix86_function_specific_restore):
11192         Don't handle fpmath state specially.
11193         (ix86_function_specific_print): Pass fpmath state to
11194         ix86_target_string instead of printing in this function.
11195         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
11196         Handle enum attributes.
11197         (IX86_ATTR_ENUM, ix86_opt_enum): New.
11198         (ix86_valid_target_attribute_tree): Update option_strings
11199         handling.  Handle fpmath as enum option.
11200         (ix86_can_inline_p): Update field names for function fpmath state.
11201         (ix86_expand_builtin): Update call to ix86_target_string.
11202         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
11203         (ix86_fpmath): Remove.
11204         * config/i386/t-i386 (i386.o): Update dependencies.
11205
11206 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
11207
11208         PR preprocessor/48677
11209         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
11210         from decoded_options[0], not from itself.
11211
11212 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
11213
11214         * config/i386/constraints.md (z): New constraint.
11215         * config/i386/i386.c (c): New mode attribute.
11216         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
11217         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
11218         constraint for operand 0.
11219         (*call_vzeroupper): Ditto.
11220         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
11221         (*call_rex64_ms_sysv_vzeroupper): Ditto.
11222         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
11223         Use "lzm" constraint for operand 0.
11224         (*call_pop_vzeroupper): Ditto.
11225         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
11226         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
11227         constraint for operand 0.
11228         (*sibcall_vzeroupper): Ditto.
11229         (*sibcall_rex64_ms_sysv): Ditto.
11230         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
11231         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
11232         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
11233         (*sibcall_pop_vzeroupper): Ditto.
11234         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
11235         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
11236         mode iterator.  Use "<c>zm" constraint for operand 1.
11237         (*call_value_vzeroupper): Ditto.
11238         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
11239         for operand 1.
11240         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
11241         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
11242         *call_value_pop_1.  Use "lzm" constraint for operand 1.
11243         (*call_value_pop_vzeroupper): Ditto.
11244         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
11245         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
11246         mode iterator.  Use "Uz" constraint for operand 1.
11247         (*sibcall_value_vzeroupper): Ditto.
11248         (*sibcall_value_rex64_ms_sysv): Ditto.
11249         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
11250         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
11251         constraint for operand 1.
11252         (*sibcall_value_pop_vzeroupper): Ditto.
11253         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
11254         and "z" constraint for operand 2.
11255         (*tls_global_dynamic_32_gnu): Ditto.
11256         (*tls_local_dynamic_base_32_gnu): Ditto.
11257         (*tls_local_dynamic_base_64): Ditto.
11258         (*tls_local_dynamic_32_once): Ditto.
11259         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
11260         Update all callers.
11261         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
11262
11263 2011-05-16  Richard Guenther  <rguenther@suse.de>
11264
11265         * gimple.c (gimple_types_compatible_p_1): Use names of the
11266         type itself, not its main variant.
11267         (iterative_hash_gimple_type): Likewise.
11268
11269 2011-05-16  Richard Guenther  <rguenther@suse.de>
11270
11271         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
11272         always visit pointer target and function result and argument types.
11273
11274 2011-05-16  Jason Merrill  <jason@redhat.com>
11275
11276         PR c++/48999
11277         * tree-inline.c (copy_statement_list): Put back recursion.
11278
11279 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
11280
11281         PR target/27663
11282         PR target/41076
11283         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
11284         * config/avr/avr.md ("*ior<mode>qi.byte0",
11285         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
11286
11287 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
11288
11289         PR target/45099
11290         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
11291         register is needed for a function argument.
11292
11293 2011-05-16  Richard Guenther  <rguenther@suse.de>
11294
11295         * gimple.c (struct type_hash_pair): New type.
11296         (type_hash_pair_compare): New function.
11297         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
11298
11299 2011-05-16  Revital Eres  <revital.eres@linaro.org>
11300
11301         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
11302
11303 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
11304
11305         * config/i386/i386.md (floating point move splitters): Fix
11306         usage of standard_80387_constant_p.
11307         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
11308
11309 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
11310
11311         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
11312
11313 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
11314
11315         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
11316         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
11317         (tree_ssa_lim_finalize): Likewise.
11318
11319 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
11320
11321         * config/i386/constraint.md (Yd, Yx): New register constraints.
11322         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
11323         Yd conditional register constraint.
11324         (*movtf_internal): Use standard_sse_constant_opcode.
11325         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
11326         Yx conditional register constraint.
11327         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
11328         Yd conditional register constraint.  Use standard_sse_constant_p to
11329         check for valid SSE constants and call standard_sse_constant_opcode to
11330         output SSE insn.
11331         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
11332         constants and call standard_sse_constant_opcode to output SSE insn.
11333         * config/i386/i386.c (ix86_option_ovverride_internal): Set
11334         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
11335         optimize_size is set.
11336         (standard_sse_constant_opcode): Output conditional AVX insn templates.
11337
11338 2011-05-14  Tobias Burnus  <burnus@net-b.de>
11339
11340         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
11341
11342 2011-05-13  Martin Jambor  <mjambor@suse.cz>
11343
11344         * ipa-prop.c (ipa_cst_from_jfunc): New function.
11345         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
11346         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
11347         (evaluate_conditions_for_ipcp_clone): Removed.
11348         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
11349         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
11350         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
11351
11352 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11353
11354         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
11355         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
11356         lieu of MAY_HAVE_DEBUG_STMTS.
11357         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
11358         debug statements if !MAY_HAVE_DEBUG_STMTS.
11359
11360 2011-05-13  Martin Thuresson  <martint@google.com>
11361
11362         PR gcov-profile/47793
11363         * libgcov.c (gcov_exit): Support relative profile paths.
11364         * doc/invoke.texi (-fprofile-dir): Update for above change.
11365
11366 2011-05-13  Richard Guenther  <rguenther@suse.de>
11367
11368         * gimple.c (gimple_canonical_types_compatible_p): Do not use
11369         type-pair caching, do not compare hashes.
11370
11371 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
11372
11373         PR middle-end/48965
11374         * tree-cfg.c (edge_to_cases_cleanup): Return true.
11375         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
11376
11377 2011-05-13  Kai Tietz  <ktietz@redhat.com>
11378
11379         * gimplify.c (gimplify_expr): Make sure operand is boolified.
11380         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
11381         compatible type for TRUTH_NOT_EXPR.
11382
11383 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
11384
11385         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
11386         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
11387         can_create_pseudo_p ().
11388
11389 2011-05-13  Richard Guenther  <rguenther@suse.de>
11390
11391         PR lto/48978
11392         * gimple.c (iterative_hash_gimple_type): Revert change in
11393         pointer target and function result and argument hashing.
11394
11395 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
11396
11397         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
11398         (*movxf_internal_nointeger): Ditto.
11399         (*movdf_internal_rex64): Ditto.
11400         (*movdf_internal): Ditto.
11401         (*movdf_internal_nointeger): Ditto.
11402         (*movsf_internal): Ditto.
11403         (sincos splitters): Use can_create_pseudo ().
11404
11405 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
11406
11407         * config/i386/i386-opts.h: New.
11408         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
11409         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
11410         ix86_section_threshold): Remove.
11411         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
11412         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
11413         OPT_mbranch_cost_.
11414         (ix86_option_override_internal): Don't decode strings for options
11415         other than -march=, -mtune= and -mfpmath=.  Don't allow for
11416         __attribute__ uses in remaining diagnostics for options with
11417         string arguments.  Don't check for integer arguments being negative.
11418         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
11419         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
11420         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
11421         ix86_branch_cost, ix86_section_threshold): Remove.
11422         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
11423         HeaderInclude.
11424         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
11425         but not Var.
11426         (masm=): Use Enum and Init.
11427         (asm_dialect): New Enum and EnumValue entries.
11428         (mbranch-cost=): Use UInteger.
11429         (mlarge-data-threshold=): Use UInteger and Init.
11430         (mcmodel=): Use Enum and Init.
11431         (cmodel): New Enum and EnumValue entries.
11432         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
11433         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
11434         mregparm=): Use UInteger.
11435         (mstringop-strategy=): Use Enum and Init.
11436         (stringop_alg): New Enum and EnumValue entries.
11437         (mtls-dialect=): Use Enum and Init.
11438         (tls_dialect): New Enum and EnumValue entries.
11439         (mabi=): Use Enum and Init.
11440         (calling_abi): New Enum and EnumValue entries.
11441         (mveclibabi=): Use Enum and Init.
11442         (ix86_veclibabi): New Enum and EnumValue entries.
11443
11444 2011-05-13  Nick Clifton  <nickc@redhat.com>
11445
11446         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
11447         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
11448
11449 2011-05-13  Kai Tietz  <ktietz@redhat.com>
11450
11451         PR middle-end/48984
11452         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
11453         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
11454         (gimple_boolify): Check for cast for boolean_type_node instead for
11455         BOOLEAN_TYPE.
11456
11457 2011-05-13  Richard Guenther  <rguenther@suse.de>
11458
11459         PR tree-optimization/48172
11460         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
11461         multiplying by number of iterations for equal step.
11462         (vect_create_cond_for_alias_checks): Likewise.
11463
11464 2011-05-13  Andreas Schwab  <schwab@redhat.com>
11465
11466         * configure.ac: Use AS_HELP_STRING throughout.
11467         * configure: Regenerate.
11468
11469 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
11470
11471         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
11472         (ix86_emit_restore_regs_using_mov): Likewise.
11473         (ix86_emit_restore_sse_regs_using_mov): Likewise.
11474
11475 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
11476
11477         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
11478         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
11479         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
11480         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
11481         RTX_OK_FOR_OLO10_P): ...here.
11482         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
11483         SYMBOLIC_CONST.
11484
11485 2011-05-12  Kai Tietz  <ktietz@redhat.com>
11486
11487         * gimplify.c (gimple_boolify): Re-boolify expression
11488         arguments even if expression type is of kind BOOLEAN_TYPE.
11489         (gimplify_boolean_expr): Removed.
11490         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
11491         and XOR. Additional take care that we keep expression's type.
11492         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
11493         of TRUTH_AND|OR|XOR_EXPR.
11494
11495 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
11496
11497         PR tree-optimization/48975
11498         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
11499         on all bbs here and free and clear ifc_bbs at the end.
11500
11501 2011-05-12  Richard Guenther  <rguenther@suse.de>
11502
11503         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
11504         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
11505         until after simple checks.
11506         (gimple_types_compatible_p): Likewise.
11507         (iterative_hash_gimple_type): Always hash pointer targets
11508         and function return and argument types.
11509         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
11510         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
11511         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
11512         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
11513         completely in the simple compare section.
11514         (gimple_register_canonical_type): Query the cache again after
11515         registering.
11516
11517 2011-05-12  Richard Guenther  <rguenther@suse.de>
11518
11519         PR tree-optimization/48172
11520         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
11521         the number of iterations from the segment size calculation.
11522         (vect_create_cond_for_alias_checks): Adjust.
11523
11524 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
11525
11526         PR debug/48967
11527         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
11528         if validate_subreg fails.
11529
11530 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
11531
11532         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
11533         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
11534         early.
11535
11536 2011-05-12  DJ Delorie  <dj@redhat.com>
11537
11538         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
11539         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
11540         created builtin into rx_builtins array.
11541         (rx_builtin_decl): New function.
11542         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
11543
11544 2011-05-12  DJ Delorie  <dj@redhat.com>
11545             Nick Clifton  <nickc@redhat.com>
11546
11547         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
11548         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
11549         (rx_is_legitimate_address): Add pre-decrement and post-increment
11550         addressing in HImode and QImode.  Fix test for out of range
11551         REG+INT addressing.
11552         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
11553         (rx_align_for_label): Test label before extracting its usage count.
11554         (rx_adjust_insn_lengths): Fix selection of insn codes.
11555         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
11556
11557 2011-05-11  Jason Merrill  <jason@redhat.com>
11558
11559         * tree.c (type_hash_canon): Use struct tree_type_non_common.
11560
11561 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11562
11563         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
11564         reindent the subsequent block.
11565
11566 2011-05-11  Satoru Takabayashi  <satorux@google.com>
11567             Paul Pluzhnikov  <ppluzhnikov@google.com>
11568
11569         * doc/install.texi (Configuration): Document --with-linker-hash-style.
11570         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
11571         * config.in: Add LINKER_HASH_STYLE.
11572         * configure.ac: Add --with-linker-hash-style.
11573         * configure: Regenerate.
11574
11575 2011-05-11  Richard Guenther  <rguenther@suse.de>
11576
11577         PR middle-end/48964
11578         * gimple.c (iterative_hash_canonical_type): Fix typo.
11579
11580 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
11581
11582         * config/i386/i386.c (legitimize_tls_address)
11583         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11584         expanders directly for TARGET_GNU2_TLS.  Determine pic and
11585         __tls_get_addr symbol reference here.  Update call to
11586         gen_tls_global_dynamic_{32,64} for added arguments.
11587         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
11588         expanders directly for TARGET_GNU2_TLS.  Determine
11589         __tls_get_addr symbol reference here.  Update call to
11590         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
11591         unique UNSPEC REG_EQUIV to libcall block.
11592         (ix86_tls_get_addr): Declare static.
11593         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
11594         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
11595         Do not determine pic and __tls_get_addr symbol reference here. Do not
11596         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
11597         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
11598         (tls_global_dynamic_64): Add operand 2.  Do not determine
11599         __tls_get_addr symbol reference here.  Do not call
11600         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
11601         (tls_local_dynamic_base64): Ditto for operand 1.
11602
11603 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
11604
11605         * function.c (expand_function_start): Initialize stack_check_probe_note
11606         only if the generic stack checking mechanism is used.
11607
11608 2011-05-11  Richard Guenther  <rguenther@suse.de>
11609
11610         PR tree-optimization/15256
11611         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
11612         (A & B) | C, combine (A op CST1) op CST2.
11613         (tree_ssa_forward_propagate_single_use_vars): Only bother to
11614         visit assigns that have uses.
11615
11616 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
11617
11618         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
11619         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
11620         (unpack_ts_type_common_value_fields): ...this.  Update comment.
11621         (unpack_value_fields): Adjust for renaming.
11622         (lto_input_ts_type_tree_pointers): Split into...
11623         (lto_input_ts_type_common_tree_pointer): ...this and...
11624         (lto_input_ts_type_non_common_tree_pointers): ...this.
11625         (lto_input_tree_pointers): Adjust for above split.
11626         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
11627         (pack_ts_type_common_value_fields): ...this.  Update comment.
11628         (lto_output_ts_type_tree_pointers): Split into...
11629         (lto_output_ts_type_common_tree_pointers): ...this and...
11630         (lto_output_ts_type_non_common_tree_pointers): ...this.
11631         (lto_output_tree_pointers): Adjust for above split.
11632         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
11633         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
11634         * stor-layout.c (vector_type_mode): Adjust location of mode field.
11635         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
11636         Define.
11637         (struct tree_type): Split into...
11638         (struct tree_type_common: ...this and...
11639         (struct tree_type_with_lang_specific): ...this and...
11640         (struct tree_type_non_common): ...this.  Adjust accessor macros
11641         accordingly.
11642         (TYPE_VALUES_RAW): Define.
11643         (union tree_node): Update for above changes.
11644         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
11645         TS_TYPE_NON_COMMON.
11646         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
11647         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
11648         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
11649         * treestructu.def (TS_TYPE): Remove.
11650         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
11651         Define.
11652
11653 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
11654
11655         PR debug/48159
11656         * tree-ssa.c (reset_debug_uses): New function.
11657         * tree-flow.h (reset_debug_uses): New prototype.
11658         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
11659         * tree-loop-distribution.c (generate_loops_for_partition): Call
11660         reset_debug_uses on the stmts that will be removed.  Keep around
11661         all debug stmts, don't count them as bits in partition bitmap.
11662         (generate_builtin): Don't count debug stmts or labels as bits in
11663         partition bitmap.
11664
11665 2011-05-11  Richard Guenther  <rguenther@suse.de>
11666
11667         * gimple.c (gimple_type_hash_1): Merge with ...
11668         (gimple_type_hash): ... this.
11669         (gtc_visit): Remove mode parameter and simplify accordingly.
11670         (gimple_types_compatible_p_1): Likewise.
11671         (gimple_types_compatible_p): Likewise.
11672         (iterative_hash_gimple_type): Likewise.
11673         (visit): Likewise.
11674         (gimple_type_eq): Adjust.
11675
11676 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11677
11678         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
11679         enters the branch create an anti edge in the opposite direction
11680         to prevent the creation of reg-moves.
11681         * modulo-sched.c: Adjust comment to reflect the fact we are
11682         scheduling closing branch.
11683         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
11684         (stage_count): New field in struct partial_schedule.
11685         (calculate_stage_count): New function.
11686         (normalize_sched_times): Rename to reset_sched_times and handle
11687         incrementing the sched time of the nodes by a constant value
11688         passed as parameter.
11689         (duplicate_insns_of_cycles): Skip closing branch.
11690         (sms_schedule_by_order): Schedule closing branch.
11691         (ps_insn_find_column): Handle closing branch.
11692         (sms_schedule): Call reset_sched_times and adjust the code to
11693         support scheduling of the closing branch.
11694         (ps_insert_empty_row): Update calls to normalize_sched_times
11695         and rotate_partial_schedule functions.
11696
11697 2011-05-11  Richard Guenther  <rguenther@suse.de>
11698
11699         PR middle-end/48953
11700         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
11701
11702 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
11703
11704         * opts.c (finish_options): Move warning settings from process_options.
11705         * toplev.c (process_options): Move warning settings to finish_options.
11706
11707 2011-05-11  Richard Guenther  <rguenther@suse.de>
11708
11709         PR tree-optimization/18041
11710         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
11711         (simplify_bitwise_binary): ... this.  Handle operand conversions
11712         by applying them to the result instead.
11713         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
11714
11715 2011-05-11  Richard Guenther  <rguenther@suse.de>
11716
11717         * gimple.c (gimple_canonical_types_compatible_p): Split out
11718         from gimple_types_compatible_p and friends.  Do not recurse
11719         to pointed-to types.
11720         (gimple_canonical_type_eq): Use it.
11721         (iterative_hash_canonical_type): Split out from
11722         iterative_hash_gimple_type and friends.  Do not recurse
11723         to pointed-to types.
11724         (gimple_canonical_type_hash): Use it, allocate the hash here.
11725
11726 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11727
11728         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
11729         recognizing doloop.
11730
11731 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11732
11733         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
11734         instead of PREV_INSN.
11735
11736 2011-05-11  Revital Eres  <revital.eres@linaro.org>
11737
11738         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
11739         * loop-doloop.c (doloop_condition_get): Likewise.
11740         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
11741         (doloop_end): New.
11742         * config/arm/arm.md (*addsi3_compare0): Remove "*".
11743
11744 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
11745
11746         * tree.def (CASE_LABEL_EXPR): Add an operand.
11747         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
11748
11749 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11750
11751         * c-decl.c (c_override_global_bindings_to_false): Remove.
11752         (global_bindings_p): Don't check
11753         c_override_global_bindings_to_false.
11754         * c-tree.h (c_override_global_bindings_to_false): Remove.
11755         * c-typeck.c (composite_type): Don't set
11756         c_override_global_bindings_to_false.
11757
11758 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
11759
11760         PR target/48857, 48495
11761         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
11762         (VSX_MODE): Ditto.
11763         (VSX_MOVE_MODE): Ditto.
11764         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
11765         VSX vector types.  Add V2DImode.
11766         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
11767         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
11768         (MODES_TIEABLE_P): Ditto.
11769
11770         * config/rs6000/rs6000.c (rs6000_emit_move): Use
11771         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
11772         VSX_VECTOR_MODE.
11773         (init_cumulative_args): Ditto.
11774         (rs6000_function_arg_boundary): Ditto.
11775         (rs6000_function_arg_advance_1): Ditto.
11776         (rs6000_function_arg): Ditto.
11777         (rs6000_function_ok_for_sibcall): Ditto.
11778         (emit_frame_save): Ditto.
11779         (rs6000_function_value): Ditto.
11780         (rs6000_libcall_value): Ditto.
11781
11782 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11783
11784         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
11785         i386/darwin-lib.h to $libgcc_tm_file.
11786         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
11787
11788 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11789
11790         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
11791
11792 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11793
11794         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
11795         * config/rs6000/rs6000-tables.opt: New file (generated).
11796         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
11797         rs6000/rs6000-tables.opt to extra_options.
11798         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
11799         * config/rs6000/rs6000.c (rs6000_select): Remove.
11800         (processor_target_table): Move contents to rs6000-cpus.def.
11801         (darwin_rs6000_override_options): Check
11802         global_options_set.x_rs6000_cpu_index instead of
11803         rs6000_select[1].string.
11804         (rs6000_option_override_internal): Likewise.
11805         (rs6000_handle_option): Don't assert that global structures are in
11806         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
11807         (rs6000_default_cpu): New variable.
11808         (rs6000_file_start): Set it instead of local default_cpu.  Check
11809         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
11810         global_options_set.x_rs6000_tune_index instead of rs6000_select.
11811         (rs6000_darwin_file_start): Check rs6000_default_cpu and
11812         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
11813         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
11814         rs6000_select): Remove.
11815         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
11816         Remove.
11817         (mcpu=, mtune=): Use Var, Init, Enum and Save.
11818         * config/rs6000/t-rs6000
11819         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
11820         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11821         global_options_set.x_rs6000_cpu_index instead of
11822         rs6000_select[1].string.
11823         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
11824         global_options_set.x_rs6000_cpu_index instead of
11825         rs6000_select[1].string.
11826
11827 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
11828
11829         * config.gcc (libgcc_tm_file): Define instead of including files
11830         from ../../libgcc/config/ in tm_file.
11831         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
11832         * configure: Regenerate.
11833         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
11834         libgcc_tm.h, cs-libgcc_tm.h): New.
11835         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
11836         (clean): Remove libgcc_tm.h.
11837         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
11838         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
11839         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
11840
11841 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
11842
11843         PR target/48896
11844         * config/avr/avr.c (avr_ret_register): Return unsigned int
11845         instead of int.
11846         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
11847         it to avr_libcall_value.
11848         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
11849         expand_expr.
11850         (avr_expand_binop_builtin): Ditto.
11851         (avr_expand_unop_builtin): Ditto.
11852
11853 2011-05-10  DJ Delorie  <dj@redhat.com>
11854
11855         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
11856         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
11857         * config/rx/rx.c (rx_align_for_label): Add label and
11858         uses_threshold parameters.  Do not align when the label is not
11859         used enough.
11860         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
11861
11862 2011-05-10  Richard Guenther  <rguenther@suse.de>
11863
11864         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
11865         a series of conversions and apply foldings similar to what
11866         fold-const does.
11867         (tree_ssa_forward_propagate_single_use_vars): Call it.
11868
11869 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
11870
11871         PR tree-optimization/48611
11872         PR tree-optimization/48794
11873         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
11874         referenced from RESX or EH_DISPATCH arguments.
11875
11876         PR debug/48928
11877         * dfp.c (decimal_to_decnumber): Handle conversion from
11878         dconst{1,2,m1,half}.
11879
11880 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11881
11882         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
11883         for !flag_prefer_avx128.
11884         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
11885
11886 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
11887
11888         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
11889         (fold_ternary_loc): Use expr_location_or.
11890
11891 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
11892
11893         PR debug/48853
11894         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
11895         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
11896         Pmode and mem_mode is not VOIDmode.
11897
11898 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
11899
11900         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
11901         TYPE_QUAL_RESTRICT): Convert to enum.
11902
11903 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11904
11905         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
11906         (const_pow2_1_to_8_operand): Ditto.
11907         (const_pow2_1_to_128_operand): Ditto.
11908         (const_pow2_1_to_32768_operand): Ditto.
11909         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
11910         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
11911         in insn constraint to check integer value of operand 3.
11912         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
11913
11914         (PINSR_MODE): New mode iterator.
11915         (sse2p4_1): New mode attribute.
11916         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
11917         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
11918         iterator.  Use const_int_operand instead of
11919         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
11920         exact_log2 in insn constraint to check integer value of operand 3.
11921
11922 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11923
11924         * config/i386/sse.md (blendbits): Remove mode attribute.
11925         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
11926         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
11927         Check integer value of operand 3 in insn constraint.
11928
11929 2011-05-09  Richard Guenther  <rguenther@suse.de>
11930
11931         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
11932         for diagnostics.
11933         (lto_symtab_merge): Likewise.  Do not register types here.
11934         (lto_symtab_merge_decls_2): Likewise.
11935         (lto_symtab_merge_decls_1): Likewise.
11936         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
11937         * gimple.c (enum gtc_mode): Declare.
11938         (gimple_types_compatible_p): Make static.
11939
11940 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11941
11942         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
11943         temporary register to match Pmode.
11944
11945 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11946
11947         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
11948         and *vec_concatv4si_1_avx.
11949
11950 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
11951
11952         PR rtl-optimization/48927
11953         * ira-conflicts.c (commutative_constraint_p): Use
11954         recog_data.alternative_enabled_p to disable alternatives where
11955         "enabled" attribute is false.
11956         (get_dup_num): Ditto.
11957         * ira-lives.c (single_reg_class): Ditto.
11958         (ira_implicitly_set_insn_hard_regs): Ditto.
11959
11960 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
11961
11962         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
11963         (dataflow_set_preserve_mem_locs): Likewise.
11964
11965 2011-05-09  Philipp Thomas  <pth@suse.de>
11966
11967         * config/mep/mep.c (mep_validate_vliw): Syntax description
11968         should not be translated.
11969
11970 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
11971
11972         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
11973         * config/mips/mips-tables.opt: New file (generated).
11974         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
11975         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
11976         MIPS_ARCH_OPTION_NATIVE): Define.
11977         * config/mips/mips.c (mips_cpu_info_table): Move contents to
11978         mips-cpus.def.
11979         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
11980         mips_parse_cpu): Remove.
11981         (mips_cpu_info_from_opt, mips_default_arch): New.
11982         (mips_handle_option): Don't assert that global structures are in
11983         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
11984         (mips_option_override): Use new variables and functions to set
11985         state of these options.  Use strcmp to check for individual CPU names.
11986         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
11987         definition.
11988         * config/mips/mips.opt (march=): Use ToLower and Enum.
11989         (mips): Use ToLower, Enum and Var.
11990         (mtune=): Use ToLower and Enum.
11991         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
11992
11993 2011-05-08  Jan Hubicka  <jh@suse.cz>
11994
11995         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
11996         Arrange type pairs to be UID ordered.
11997         (gimple_lookup_type_leader): Make inline.
11998
11999 2011-05-09  Nick Clifton  <nickc@redhat.com>
12000
12001         PR target/48899
12002         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
12003         PROCESSOR_DEFAULT.
12004
12005         PR target/48897
12006         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
12007         variable 's'.
12008
12009 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
12010
12011         * combine.c (simplify_comparison): Abstract out parts into...
12012         (simplify_compare_const): ... new function.
12013         (try_combine): Generalize parallel arithmetic/compare combining
12014         to call simplify_compare_const() and CANONICALIZE_COMPARE().
12015
12016 2011-05-08  Jan Hubicka  <jh@suse.cz>
12017
12018         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
12019         (cgraph_create_virtual_clone): Call hooks once virtual clone
12020         is finished.
12021         * cgraph.h (cgraph_clone_node): Update prototype.
12022         * ipa-cp.c (ipcp_estimate_growth): Use
12023         estimate_ipcp_clone_size_and_time.
12024         * ipa-inline-transform.c (clone_inlined_nodes): Update.
12025         * lto-cgraph.c (input_node): Update.
12026         * ipa-inline.c (recursive_inlining): Update.
12027         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
12028         (evaluate_conditions_for_known_args): Break out from ...
12029         (evaluate_conditions_for_edge): ... here.
12030         (evaluate_conditions_for_ipcp_clone): New function.
12031         (inline_node_duplication_hook): Update clone summary based
12032         on parameter map.
12033         (estimate_callee_size_and_time): Rename to ...
12034         (estimate_node_size_and_time): take NODE instead of EDGE;
12035         take POSSIBLE_TRUTHS as argument.
12036         (estimate_callee_size_and_time): Update.
12037         (estimate_ipcp_clone_size_and_time): New function.
12038         (do_estimate_edge_time): Update.
12039
12040 2011-05-08  Richard Guenther  <rguenther@suse.de>
12041
12042         PR middle-end/48908
12043         PR middle-end/48905
12044         * expmed.c (expand_shift_1): Compute adjusted constant shift
12045         amount manually.
12046
12047 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
12048
12049         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
12050
12051 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
12052
12053         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
12054
12055 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
12056
12057         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
12058
12059 2011-05-07  Jan Hubicka  <jh@suse.cz>
12060
12061         * ipa-inline-transform.c (inline_call): Account when program size
12062         decreases.
12063         * ipa-inline.c (relative_time_benefit): New function.
12064         (edge_badness): Reorganize to be power 2 based; fix thinko when
12065         computing badness for negative growth; update comments to match
12066         reality; better dumps.
12067
12068 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
12069
12070         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
12071         type to bool and adjust comment.
12072         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
12073         (fold_mathfn_compare): Remove calls to global_bindings_p.
12074         (fold_inf_compare): Likewise.
12075         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
12076         * c-tree.h (global_bindings_p): Adjust prototype.
12077         * c-decl.c (global_bindings_p): Return bool and simplify.
12078
12079 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
12080
12081         PR tree-optimization/48837
12082         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
12083         when accumulator transformation is performed.
12084
12085 2011-05-06  Jan Hubicka  <jh@suse.cz>
12086
12087         * i386.h (ix86_tune_indices): Add
12088         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
12089         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
12090         * i386.c (initial_ix86_tune_features): Add
12091         X86_SOFTARE_PREFETCHING_BENEFICIAL.
12092         (software_prefetching_beneficial_p): Remove predicate.
12093         (ix86_option_override_internal): Use new macro.
12094
12095 2011-05-06  Jan Hubicka  <jh@suse.cz>
12096
12097         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
12098
12099 2011-05-06  Jan Hubicka  <jh@suse.cz>
12100
12101         * cgraph.c (cgraph_add_thunk): Create real function node instead
12102         of alias node; finalize it and mark needed/reachale; arrange visibility
12103         to be right and add it into the corresponding same comdat group list.
12104         (dump_cgraph_node): Dump thunks.
12105         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
12106         cgraph_function_with_gimple_body_p,
12107         cgraph_first_function_with_gimple_body,
12108         cgraph_next_function_with_gimple_body): New functions.
12109         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
12110         New macros.
12111         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
12112         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
12113         * cgraphunit.c (cgraph_finalize_function): Only look into possible
12114         devirtualization when optimizing.
12115         (verify_cgraph_node): Verify thunks.
12116         (cgraph_analyze_function): Analyze thunks.
12117         (cgraph_mark_functions_to_output): Output thunks only in combination
12118         with function they are assigned to.
12119         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
12120         alias into normal node.
12121         (assemble_thunks): New functoin.
12122         (cgraph_expand_function): Use it.
12123         * lto-cgraph.c (lto_output_node): Stream thunks.
12124         (input_overwrite_node): Stream in thunks.
12125         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
12126         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
12127         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
12128         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
12129         (inline_analyze_function): Do not care about thunk jump functions.
12130         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
12131         * ipa-prop.c (ipa_prop_write_jump_functions): Use
12132         cgraph_function_with_gimple_body_p.
12133         * passes.c (do_per_function_toporder): Use
12134         cgraph_function_with_gimple_body_p.
12135         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
12136         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
12137         (function_called_by_processed_nodes_p): Likewise.
12138
12139 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
12140
12141         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
12142         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
12143         entries.
12144         (mabi=): Replace with separate entries for mabi=altivec,
12145         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
12146         mabi=ieeelongdouble and mabi=ibmlongdouble.
12147         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
12148         check for -mabi=spe without SPE ABI support here.
12149         (rs6000_handle_option): Replace OPT_mabi_ handling with
12150         OPT_mabi_altivec and OPT_mabi_spe handling.
12151
12152 2011-05-06  Cary Coutant  <ccoutant@google.com>
12153
12154         * dwarf2out.c (contains_subprogram_definition): New function.
12155         (should_move_die_to_comdat): Call it.
12156
12157 2011-05-06  Jeff Law  <law@redhat.com>
12158
12159         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
12160         remove_ctrl_stmt_and_useless_edges.
12161         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
12162         (fixup_template_block, thread_single_edge): Likewise.
12163         (mark_threaded_blocks): Use THREAD_TARGET.
12164
12165 2011-05-06  Alan Modra  <amodra@gmail.com>
12166
12167         PR target/48900
12168         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
12169         const0_rtx as the arg to the dummy __tls_get_addr libcall.
12170
12171 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
12172
12173         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
12174         constraint modifier to "r".
12175
12176 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
12177
12178         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
12179         fall through for OPT_mcmodel_.
12180
12181 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12182
12183         * config/s390/s390.c (s390_asm_trampoline_template): Comment
12184         instruction sizes.
12185         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
12186
12187 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12188
12189         PR target/47930
12190         * config/arm/arm.opt (marm): Document it.
12191         (mthumb): Reject negative variant.
12192
12193 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
12194
12195         PR target/48898
12196         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
12197         Fix typo in "ccvt" variable name.
12198
12199 2011-05-06  Tristan Gingold  <gingold@adacore.com>
12200
12201         PR target/48895
12202         * config/vms/vms-ar.c (main): Remove cwd variable.
12203
12204 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
12205
12206         PR debug/48902
12207         * var-tracking.c (prepare_call_arguments): Move else before #endif.
12208
12209 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
12210
12211         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
12212         * gimplify.c (gimplify_switch_expr): Likewise.
12213         * omp-low.c (expand_omp_sections): Likewise.
12214         * tree-eh.c (lower_try_finally_switch): Likewise.
12215         (lower_eh_dispatch): Likewise.
12216         * tree.h (build_case_label): Declare.
12217         * tree.c (build_case_label): Define.
12218
12219 2011-05-05  Jason Merrill  <jason@redhat.com>
12220
12221         PR c++/40975
12222         * tree-inline.c (copy_tree_r): Use copy_statement_list.
12223         (copy_statement_list): Don't recurse.
12224         * stor-layout.c (copy_self_referential_tree_r): Don't allow
12225         STATEMENT_LIST.
12226
12227 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12228
12229         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
12230         through from -mfpu= handling.
12231         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
12232
12233 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
12234
12235         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
12236         POST_MODIFY.
12237
12238 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
12239
12240         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
12241         for 11.31.
12242         (hppa[12]*-*-hpux11*): Ditto.
12243         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
12244         * config/ia64/hpux-unix2003.h: New.
12245         * config/pa/pa-hpux1131.opt: New.
12246         * config/pa/pa-hpux1131.h: New.
12247         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
12248         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
12249         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
12250
12251 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
12252
12253         PR debug/48853
12254         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
12255         instead of mode as 3rd argument to recursive call.
12256         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
12257         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
12258         VOIDmode.
12259         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
12260         don't give up if mode is Pmode and mem_mode is not VOIDmode.
12261         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
12262         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
12263
12264 2011-05-05  Julian Brown  <julian@codesourcery.com>
12265
12266         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
12267         parenthesis in D-register case.
12268
12269 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12270
12271         * opt-functions.awk (var_type_struct): Handle Enum options.
12272         * optc-gen.awk: Don't check range of variables of character type.
12273         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
12274         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
12275         rs6000_sdata_name, rs6000_explicit_options): Remove.
12276         (rs6000_option_override_internal): Check for -malign-power here.
12277         Use global_options_set instead of rs6000_explicit_options.
12278         (rs6000_parse_fpu_option): Remove.
12279         (rs6000_handle_option): Access variables via opts and opts_set
12280         pointers.  Use error_at and warning_at.  Add fall-through
12281         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
12282         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
12283         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
12284         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
12285         here.  Don't use rs6000_parse_fpu_option.
12286         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
12287         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
12288         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
12289         (mrecip=): Use Var.
12290         (mspe): Use Var and Save.
12291         (mtraceback=): Use Enum and Var.
12292         (rs6000_traceback_type): New Enum and EnumValue entries.
12293         (mfloat-gprs=): Use Enum, Var and Save.
12294         (rs6000_float_gprs): New Enum and EnumValue entries.
12295         (mlong-double-): use Var and Save.
12296         (msched-costly-dep=, minsert-sched-nops=): Use Var.
12297         (malign-): Use Enum and Var.
12298         (rs6000_alignment_flags): New Enum and EnumValue entries.
12299         (mfpu=): Use Enum.
12300         (fpu_type_t): New Enum and EnumValue entries.
12301         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12302         global_options_set instead of rs6000_explicit_options.
12303         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12304         global_options_set instead of rs6000_explicit_options.
12305         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12306         global_options_set instead of rs6000_explicit_options.
12307         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
12308         global_options_set instead of rs6000_explicit_options.
12309         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
12310         global_options_set instead of rs6000_explicit_options.
12311         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12312         global_options_set instead of rs6000_explicit_options.
12313         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
12314         definition.
12315         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12316         global_options_set instead of rs6000_explicit_options.
12317         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
12318         (rs6000_cmodel): New Enum and EnumValue entries.
12319         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
12320         global_options_set instead of rs6000_explicit_options.
12321         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
12322         (mtls-size=): Use Enum and Var.
12323         (rs6000_tls_size): New Enum and EnumValue entries.
12324
12325 2011-05-05  Michael Matz  <matz@suse.de>
12326
12327         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
12328         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
12329         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
12330         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
12331         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
12332         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
12333         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
12334         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
12335         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
12336         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
12337         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
12338         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
12339         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
12340         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
12341         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
12342         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
12343
12344 2011-05-05  Richard Guenther  <rguenther@suse.de>
12345
12346         * expmed.c (expand_variable_shift): Rename to ...
12347         (expand_shift_1): ... this.  Take an expanded shift amount.
12348         For rotates recurse directly not building trees for the shift amount.
12349         (expand_variable_shift): Wrap around expand_shift_1.
12350         (expand_shift): Adjust.
12351
12352 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
12353
12354         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
12355
12356 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
12357
12358         * tree.h (get_pending_sizes): Remove prototype.
12359         (put_pending_size): Likewise.
12360         (put_pending_sizes): Likewise.
12361         * stor-layout.c (pending_sizes): Delete.
12362         (get_pending_sizes): Likewise.
12363         (put_pending_size): Likewise.
12364         (put_pending_sizes): Likewise.
12365         (variable_size): Do not call put_pending_size and tidy up.
12366         * function.h (struct function): Remove dont_save_pending_sizes_p.
12367         * lto-streamer-in.c (input_function): Do not stream it.
12368         * lto-streamer-out.c (output_function): Likewise.
12369         * tree-inline.c (initialize_cfun): Do not copy it.
12370         * c-decl.c (store_parm_decls): Do not set it.
12371         * omp-low.c (create_task_copyfn): Likewise.
12372         * tree-optimize.c (tree_rest_of_compilation): Likewise.
12373
12374 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
12375
12376         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
12377         conditions.
12378         (*movdf_internal): Ditto.
12379         (*movdf_internal_nointeger): Ditto.
12380         (*movsf_internal): Ditto.
12381
12382 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
12383
12384         * c-decl.c (finish_decl): Don't call get_pending_sizes.
12385         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
12386         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
12387         (c_variable_size): Remove.
12388         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
12389         call put_pending_sizes.
12390         (get_parm_info): Add parameter expr.  Use it to set
12391         arg_info->pending_sizes.
12392         (store_parm_decls): Use arg_info->pending_sizes instead or calling
12393         get_pending_sizes.
12394         * c-parser.c (c_parser_parms_declarator): Update call to
12395         c_parser_parms_list_declarator.
12396         (c_parser_parms_list_declarator): Take parameter expr.  Update
12397         call to push_parm_decl.  Update recursive call.  Don't call
12398         get_pending_sizes.  Update calls to get_parm_info.
12399         (c_parser_objc_method_definition): Update calls to
12400         c_parser_objc_method_decl and objc_start_method_definition.
12401         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
12402         (c_parser_objc_method_decl): Add parameter expr.  Update call to
12403         grokparm.
12404         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
12405         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
12406         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
12407
12408 2011-05-05  Michael Hope  <michael.hope@linaro.org>
12409
12410         PR pch/45979
12411         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
12412         __ARM_EABI__ hosts.
12413
12414 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12415
12416         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
12417         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
12418         (spu_output_mi_thunk): New function.
12419
12420 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12421
12422         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
12423         targetm.asm_out.print_operand.
12424         * config/sol2.c: Include target.h.
12425
12426 2011-05-04  Jan Hubicka  <jh@suse.cz>
12427
12428         * ipa-inline.c (reset_edge_caches): New function.
12429         (update_caller_keys): Add check_inlinablity_for; do not
12430         reset edge caches; remove now unnecesary loop.
12431         (update_callee_keys): Add comments; reset node_growth_cache of callee.
12432         (update_all_callee_keys): Likewise.
12433         (inline_small_functions): Sanity check cache; update code
12434         recomputing it.
12435
12436 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
12437
12438         PR rtl-optimization/47612
12439         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
12440         as the last insn of the sequence to be moved.
12441
12442 2011-05-04  Tobias Burnus  <burnus@net-b.de>
12443
12444         PR fortran/48864
12445         * doc/invoke.texi (Ofast): Document that it
12446         enables Fortran's -fno-protect-parens.
12447
12448 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
12449
12450         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
12451
12452 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12453
12454         * stor-layout.c (variable_size): Do not issue errors.
12455
12456 2011-05-04  Richard Guenther  <rguenther@suse.de>
12457
12458         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
12459         for array-ref indices.
12460         (tree_coverage_counter_addr): Likewise.
12461         (build_fn_info_type): Use size_int for index types.
12462         (build_gcov_info): Likewise.
12463
12464 2011-05-04  Richard Guenther  <rguenther@suse.de>
12465
12466         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
12467         to build_int_cst.
12468         * c-typeck.c (really_start_incremental_init): Use bitsize_int
12469         for constructor indices.
12470         (push_init_level): Likewise.
12471
12472 2011-05-04  Richard Guenther  <rguenther@suse.de>
12473
12474         * explow.c (promote_mode): Move variable declarations before code.
12475
12476 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
12477
12478         * tree.h (build_function_type_array): Declare.
12479         (build_varargs_function_type_array): Declare.
12480         (build_function_type_vec, build_varargs_function_type_vec): Define.
12481         * tree.c (build_function_type_array_1): New function.
12482         (build_function_type_array): New function.
12483         (build_varargs_function_type_array): New function.
12484
12485 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
12486
12487         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
12488         before setting STMT_VINFO_TYPE.
12489
12490 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12491
12492         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
12493         instead of spu_pass_by_reference.
12494
12495 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12496
12497         * calls.c (emit_library_call_value_1): Invoke
12498         promote_function_mode hook on libcall arguments.
12499         * explow.c (promote_function_mode, promote_mode): Handle TYPE
12500         argument being NULL.
12501         * targhooks.c (default_promote_function_mode): Lisewise.
12502         * config/s390/s390.c (s390_promote_function_mode): Likewise.
12503         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
12504
12505         * doc/tm.texi: Document that TYPE argument might be NULL.
12506
12507 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12508
12509         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
12510
12511 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12512
12513         From Bernd Schmidt
12514         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
12515
12516 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12517
12518         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
12519         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
12520         Move ...
12521         * mips-tfile.c: ... here.
12522         Don't include coretypes.h, tm.h, filenames.h.
12523         (saber_stop): Remove definition and all calls.
12524         [__SABER__]: Remove.
12525         (__LINE__): Remove default.
12526         (Size_t, Ptrdiff_t): Remove definitions.
12527         Replace by size_t, ptrdiff_t.
12528         [!MIPS_DEBUGGING_INFO]: Remove.
12529         (SHASH_SIZE, THASH_SIZE): Remove defaults.
12530         (progname): Add const.
12531         (STATIC): Remove.
12532         Replace all uses by static.
12533         (ALIGN_SYMTABLE_OFFSET): Remove default.
12534         * mips-tdump.c: Don't include coretypes.h, tm.h.
12535         Remove !MIPS_IS_STAB guard.
12536         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
12537         $(TM_H), filenames.h dependencies.
12538         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
12539
12540 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12541
12542         From Jie Zhang
12543         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
12544         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
12545
12546 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12547
12548         From Bernd Schmidt
12549         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
12550         account and save/restore RETS.
12551         (PROFILE_BEFORE_PROLOGUE): Define.
12552         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
12553         the push insn to use predecrement.
12554
12555 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
12556
12557         From Jie Zhang
12558         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
12559
12560 2011-05-04  Nick Clifton  <nickc@redhat.com>
12561
12562         * config/mn10300/mn10300.c: Include cfgloop.h.
12563         (DUMP): New macro.
12564         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
12565         Lcc or a FLcc insn into the instruction stream.
12566         (mn10300_block_contains_call): New function.  Returns true if the
12567         given basic block contains a CALL insn.
12568         (mn10300_loop_contains_call_insn): New function.  Returns true if
12569         the given loop contains a CALL insn.
12570         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
12571         to use the SETLB and Lcc or FLcc insns.
12572         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
12573         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
12574         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
12575         disable the SETLB optimization.
12576         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
12577         __SETLB__ or __NO_SETLB__.
12578         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
12579         (movsf_internal): Handle MDR register.
12580         (cmpsi): Make visible.
12581         (setlb): New pattern.
12582         (Lcc): New pattern.
12583         (FLcc): New pattern.
12584
12585 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
12586
12587         PR target/48860
12588         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
12589         for reg<->xmm moves.
12590         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
12591         (vec_concatv2di_rex64_sse): Ditto.
12592         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
12593         (*vec_extractv2di_1_rex64): Ditto.
12594
12595         Revert:
12596         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
12597
12598         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
12599         reg<->xmm moves.
12600         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
12601
12602 2011-05-04  Richard Guenther  <rguenther@suse.de>
12603
12604         * tree.h (int_const_binop): Remove notrunc argument.
12605         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
12606         create integer constants that are properly truncated.
12607         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
12608         (const_binop): Remove zero notrunc argument to int_const_binop.
12609         (size_binop_loc): Likewise.
12610         (fold_div_compare): Likewise.
12611         (maybe_canonicalize_comparison_1): Likewise.
12612         (fold_comparison): Likewise.
12613         (fold_binary_loc): Likewise.
12614         (multiple_of_p): Likewise.
12615         * expr.c (store_constructor): Likewise.
12616         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
12617         (maybe_fold_stmt_addition): Likewise.
12618         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
12619         * stor-layout.c (layout_type): Likewise.
12620         * tree-data-ref.c (tree_fold_divides_p): Likewise.
12621         * tree-sra.c (build_ref_for_offset): Likewise.
12622         (build_user_friendly_ref_for_offset): Likewise.
12623         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
12624         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
12625         * tree-ssa-loop-niter.c (inverse): Likewise.
12626         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12627         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
12628         * tree-switch-conversion.c (check_range): Likewise.
12629         (build_constructors): Likewise.
12630         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
12631         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
12632         (extract_range_from_assert): Likewise.
12633         (vrp_int_const_binop): Likewise.
12634         (extract_range_from_binary_expr): Likewise.
12635         (extract_range_from_unary_expr): Likewise.
12636         (check_array_ref): Likewise.
12637         (find_case_label_range): Likewise.
12638         (simplify_div_or_mod_using_ranges): Likewise.
12639         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
12640         comparing case labels for merging.
12641
12642 2011-05-03  Mark Wielaard  <mjw@redhat.com>
12643
12644         * dwarf2out.c (debug_str_hash_forced): Removed.
12645         (gen_label_for_indirect_string): Removed.
12646         (get_debug_string_label): Removed.
12647         (AT_string_form): Generate label directly.
12648         (output_indirect_string): Test indirect_string_node for
12649         DW_FORM_strp instead of checking label and refcount.
12650         (prune_indirect_string): Removed.
12651         (prune_unused_types): Don't check debug_str_hash_forced or
12652         call prune_indirect_string.
12653
12654 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
12655
12656         PR other/48093
12657         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
12658
12659 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
12660
12661         PR debug/47994
12662         PR debug/47919
12663         * combine.c (try_combine): Skip debug insns at m_split tests.
12664
12665 2011-04-26  Mark Wielaard  <mjw@redhat.com>
12666
12667         PR42288
12668         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
12669         when info_section_emitted.
12670
12671 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
12672
12673         * config/mips/mips-opts.h: New.
12674         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
12675         to mips-opts.h.
12676         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
12677         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
12678         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
12679         via opts pointer.
12680         * config/mips/mips.h (enum mips_code_readable_setting): Move to
12681         mips-opts.h.
12682         (mips_abi, mips_code_readable): Don't declare.
12683         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
12684         (mabi=): Use Enum and Var.
12685         (mips_abi): New Enum and EnumValue entries.
12686         (mcode-readable=): Use Enum and Var.
12687         (mips_code_readable_setting): New Enum and EnumValue entries.
12688         (mr10k-cache-barrier=): Use Enum and Var.
12689         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
12690
12691 2011-05-03  Jan Hubicka  <jh@suse.cz>
12692
12693         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
12694         replace hash by pointer map.
12695         (cgraph_node_set_element_def, cgraph_node_set_element,
12696         const_cgraph_node_set_element, varpool_node_set_element_def,
12697         varpool_node_set_element, const_varpool_node_set_element): Remove.
12698         (free_cgraph_node_set, free_varpool_node_set): New function.
12699         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
12700         * tree-emutls.c: Free varpool node set.
12701         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
12702         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12703         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
12704         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12705         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
12706         Move here from ipa.c; implement using pointer_map
12707         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
12708         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
12709         debug_cgraph_node_set, varpool_node_set_new,
12710         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
12711         dump_varpool_node_set, debug_varpool_node_set):
12712         Move to ipa-uitls.c.
12713         * passes.c (ipa_write_summaries): Update.
12714
12715 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12716
12717         From Mike Frysinger:
12718         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
12719         bf542/bf544/bf547/bf548/bf549.
12720
12721 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
12722
12723         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
12724
12725 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12726
12727         From Bernd Schmidt:
12728         * config/bfin/bfin.md (MOVCC): New mode_macro.
12729         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
12730         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
12731         comments from generated assembly.
12732
12733 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12734
12735         From Bernd Schmidt
12736         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
12737         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
12738         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
12739         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
12740         * config/bfin/lib1funcs.asm (___muldi3): New function.
12741
12742 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12743
12744         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
12745         build_function_type_list instead of build_function_type.
12746         Rearrange initialization of `args' to do so.
12747
12748 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12749
12750         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
12751         instead of build_function_type.
12752
12753 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12754
12755         * config/rs6000/rs6000.c (spe_init_builtins): Call
12756         build_function_type_list instead of build_function_type.
12757         (paired_init_builtins, altivec_init_builtins): Likewise.
12758         (builtin_function_type): Likewise.
12759
12760 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12761
12762         * config/sh/sh.c (sh_media_init_builtins): Call
12763         build_function_type_list instead of build_function_type.
12764
12765 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12766
12767         * config/sparc/sparc.c (sparc_file_end): Call
12768         build_function_type_list instead of build_function_type.
12769
12770 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12771
12772         * config/alpha/alpha.c (alpha_init_builtins): Call
12773         build_function_type_list instead of build_function_type.
12774
12775 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12776
12777         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
12778         build_function_type_list instead of build_function_type.
12779
12780 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12781
12782         * config/iq2000/i2000.c (iq2000_init_builtins): Call
12783         build_function_type_list instead of build_function_type.
12784         Delete `endlink' variable.
12785
12786 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12787
12788         * config/avr/avr.c (avr_init_builtins): Call
12789         build_function_type_list instead of build_function_type.
12790
12791 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12792
12793         * config/picochip/picochip.c (picochip_init_builtins): Call
12794         build_function_type_list instead of build_function_type.
12795         Delete `endlink' variable.
12796
12797 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
12798
12799         * config/bfin/bfin.c (bfin_init_builtins): Call
12800         build_function_type_list instead of build_function_type.
12801
12802 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12803
12804         From Bernd Schmidt
12805         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
12806         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
12807
12808 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12809
12810         From Jie Zhang:
12811         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
12812         libbffastfp overrides libgcc when -mfast-fp.
12813
12814 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12815
12816         Originally from Bernd Schmidt
12817         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
12818         * config/bfin/bfin.c (override_options): Test it and error if
12819         TARGET_FDPIC.
12820
12821 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
12822
12823         Originally From Bernd Schmidt
12824         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
12825         FD-PIC.
12826
12827 2011-05-03  Jeff Law  <law@redhat.com>
12828
12829         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
12830         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
12831         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
12832         than accessing AUX field directly.  Free the AUX field before
12833         clearing it.
12834         (thread_block, thread_through_loop_header): Likewise.
12835         (thread_single_edge, mark_threaded_blocks): Likewise.
12836         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
12837         (register_jump_thread): Do not attempt to thread to a NULL edge.
12838
12839 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
12840
12841         * function.c (init_function_start): Call decide_function_section.
12842         * varasm.c (decide_function_section): New function.
12843         (assemble_start_function): When not using
12844         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
12845         or first_function_block_is_cold.
12846         * rtl.h (decide_function_section): Declare.
12847
12848 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
12849             Jakub Jelinek  <jakub@redhat.com>
12850
12851         PR target/48774
12852         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
12853         only succeed if req_mode is the same as set_mode.
12854
12855 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
12856
12857         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
12858         * genemit.c (gen_exp): Handle RETURN.
12859         * emit-rtl.c (verify_rtx_sharing): Likewise.
12860         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
12861         * rtl.c (copy_rtx): RETURN is shared.
12862         * rtl.h (enum global_rtl_index): Add GR_RETURN.
12863         (ret_rtx): New.
12864         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
12865         * config/s390/s390.c (s390_emit_epilogue): Likewise.
12866         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
12867         * config/cris/cris.c (cris_expand_return): Likewise.
12868         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
12869         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
12870         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
12871         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
12872         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
12873         Likewise.
12874         * config/v850/v850.c (expand_epilogue): Likewise.
12875         * config/bfin/bfin.c (bfin_expand_call): Likewise.
12876         * config/arm/arm.md (epilogue): Likewise.
12877         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
12878         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
12879         variable to ret_reg.
12880
12881 2011-05-03  Richard Guenther  <rguenther@suse.de>
12882
12883         PR lto/48846
12884         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
12885         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
12886         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
12887
12888 2011-05-03  Richard Guenther  <rguenther@suse.de>
12889
12890         * c-decl.c (grokdeclarator): Instead of looking at
12891         TREE_OVERFLOW check if the constant fits in the index type.
12892
12893 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12894
12895         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
12896         (vec_store_lanes<mode><mode>): Likewise.
12897
12898 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12899
12900         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
12901         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
12902         convert_optab_index values.
12903         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
12904         * genopinit.c (optabs): Initialize the new optabs.
12905         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
12906         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
12907         (expand_STORE_LANES): New functions.
12908         * tree.h (build_array_type_nelts): Declare.
12909         * tree.c (build_array_type_nelts): New function.
12910         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
12911         (vect_model_load_cost): Likewise.
12912         (vect_store_lanes_supported, vect_load_lanes_supported)
12913         (vect_record_strided_load_vectors): Declare.
12914         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
12915         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
12916         (vect_transform_strided_load): Split out statement recording into...
12917         (vect_record_strided_load_vectors): ...this new function.
12918         * tree-vect-stmts.c (create_vector_array, read_vector_array)
12919         (write_vector_array, create_array_ref): New functions.
12920         (vect_model_store_cost): Add store_lanes_p argument.
12921         (vect_model_load_cost): Add load_lanes_p argument.
12922         (vectorizable_store): Try to use store-lanes functions for
12923         interleaved stores.
12924         (vectorizable_load): Likewise load-lanes and loads.
12925         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
12926         to vect_model_store_cost.
12927         (vect_build_slp_tree): Likewise vect_model_load_cost.
12928
12929 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
12930
12931         * hooks.h (hook_bool_mode_uhwi_false): Declare.
12932         * hooks.c (hook_bool_mode_uhwi_false): New function.
12933         * target.def (array_mode_supported_p): New hook.
12934         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
12935         * doc/tm.texi: Regenerate.
12936         * stor-layout.c (mode_for_array): New function.
12937         (layout_type): Use it.
12938         * config/arm/arm.c (arm_array_mode_supported_p): New function.
12939         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
12940
12941 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
12942
12943         PR target/48723
12944         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
12945         for -fstack-check if the size to allocate is negative.
12946
12947 2011-05-02  Lawrence Crowl  <crowl@google.com>
12948
12949         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
12950         (timevar_cond_start): New for starting a timer only when it is not
12951         already running.
12952         (timevar_cond_stop): New for stopping a timer when it was not already
12953         running.
12954
12955         * timevar.c (timevar_stop): Enable start/stop timers to start again.
12956         (timevar_cond_start): New as above.
12957         (timevar_cond_stop): New as above.
12958
12959         * timevar.def: Add start/stop timers for compiler phases,
12960         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
12961         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
12962         and TV_PHASE_FINALIZE.
12963         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
12964         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
12965         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
12966         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
12967         Make unused TV_OVERLOAD into a start/stop timer.
12968
12969         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
12970         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
12971         to indicate that they are start/stop timers.
12972
12973         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
12974         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
12975         Move initialization to do_compile.
12976         (do_compile): Add initialization from above.
12977         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
12978
12979         * c-decl.c (c_write_global_declarations): Add start/stop of
12980         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
12981
12982         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
12983         or TV_PARSE_INLINE, as appropriate.
12984         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
12985         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
12986
12987 2011-05-02  Jason Merrill  <jason@redhat.com>
12988
12989         PR c++/40975
12990         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
12991
12992 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
12993
12994         PR c/35445
12995         * c-decl.c (finish_decl): Only create a composite if the types are
12996         compatible.
12997
12998 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
12999
13000         * config/fr30/fr30-protos.h (Mmode): Don't define.
13001         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
13002         definition where used.
13003         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
13004         define.  Expand definitions where used.
13005         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
13006         Expand definitions where used.
13007         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
13008         rx_function_arg, rx_function_arg_advance,
13009         rx_function_arg_boundary): Expand definitions of those macros.
13010         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
13011         definition where used.
13012
13013 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
13014
13015         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
13016         reg<->xmm moves.
13017         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
13018         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
13019         with *movv2sf_internal_rex64_avx.
13020         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
13021         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
13022         Use %v prefix in insn mnemonic to handle TARGET_AVX.
13023         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
13024         "vex" in "prefix" attribute calculation.
13025         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
13026
13027 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
13028
13029         PR target/47951
13030         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
13031         inputs match the output.
13032
13033 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
13034
13035         PR target/47955
13036         * config/m68k/m68k.c (m68k_expand_prologue): Set
13037         current_function_static_stack_size.
13038
13039 2011-05-02   Jan Hubicka  <jh@suse.cz>
13040
13041         * lto-streamer.c (lto_streamer_cache_insert_1,
13042         lto_streamer_cache_lookup, lto_streamer_cache_create,
13043         lto_streamer_cache_delete): Use pointer map instead of hashtable.
13044         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
13045
13046 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
13047
13048         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
13049         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
13050         config/m68k/t-opts: New files.
13051         * config/m68k/m68k-tables.opt: New file (generated).
13052         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
13053         extra_options and m68k/t-opts to tmake_file.
13054         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
13055         (all_isas): Initialize using m68k-isas.def.
13056         (all_microarchs): Initialize using m68k-microarchs.def.
13057         (m68k_find_selection): Remove.
13058         (m68k_handle_option): Don't assert that global structures are in
13059         use.  Use error_at.  Access variables via opts pointer.  Don't
13060         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
13061         directly for -m68020-40 and -m68020-60.
13062         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
13063         m68k_tune_entry here.
13064         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
13065         to m68k-opts.h.
13066         (m68k_library_id_string): Remove declaration.
13067         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
13068         (m68k_library_id_string): New Variable.
13069         (march=, mcpu=, mtune=): Use Enum and Var.
13070
13071 2011-05-02  Richard Guenther  <rguenther@suse.de>
13072
13073         * varasm.c (output_constructor_regular_field): Compute zero-based
13074         index with double-ints.  Make sure to ICE instead of producing
13075         wrong code.
13076         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
13077         in asserts.  Properly use a signed type.
13078
13079 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
13080
13081         * config/i386/sse.md (V): New mode iterator.
13082         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
13083         TARGET_SSE2.
13084         (V_256): Rename from AVX256MODE.
13085         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
13086         condition to all users.
13087         (VF1): Ditto.
13088         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
13089         condition to all users.
13090         (VF_128): Make V4SF mode unconditional.
13091         (VF_256): Rename from AVX256MODEF2P.
13092         (VI4F_128): Rename from SSEMODE4S.
13093         (VI8F_128): Rename from SSEMODE2D.
13094         (VI4F_256): Rename from AVX256MODE8P.
13095         (VI8F_256): Rename from AVX256MODE4P.
13096         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
13097         (ssescalarmodesuffix): Remove SF and DF modes.
13098         (SSEMODE124): Remove.
13099         (SSEMODE1248): Ditto.
13100         (SSEMODEF2P): Ditto.
13101         (AVXMODEF2P): Ditto.
13102         (AVXMODEFDP): Ditto.
13103         (AVXMODEFSP): Ditto.
13104         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
13105         unconditional.
13106         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
13107         unconditional.
13108         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
13109         xop_pcmov_<mode>256.  Use V mode iterator.
13110
13111         Adjust RTX patterns globally for renamed mode attributes.
13112
13113 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13114
13115         * haifa-sched.c (sched_emit_insn): Emit insn before first
13116         non-scheduled insn.  Inform back-end about new insn.  Add
13117         new insn to scheduled_insns list.
13118
13119 2011-05-02  Richard Guenther  <rguenther@suse.de>
13120
13121         PR tree-optimization/48822
13122         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
13123         (process_scc): Indicate which iteration we start.
13124
13125 2011-05-02  Jan Hubicka  <jh@suse.cz>
13126
13127         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
13128         (lto_section_overrun): New.
13129         * lto-section-out.c (append_block): Rename to ...
13130         (lto_append_block): ... this one; export.
13131         (lto_output_1_stream): Move lto lto-streamer.h
13132         (lto_output_data_stream): Update.
13133         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
13134         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
13135         functions.
13136
13137 2011-05-02  Richard Guenther  <rguenther@suse.de>
13138
13139         * tree.c (tree_code_counts): New global array.
13140         (record_node_allocation_statistics): Count individual tree codes.
13141         (dump_tree_statistics): Dump individual code stats.
13142
13143 2011-05-01  Jan Hubicka  <jh@suse.cz>
13144
13145         * ipa-inline.c (caller_growth_limits): Fix thinko when
13146         looking for largest stack frame.
13147         * ipa-inline.h (dump_inline_summary): Declare.
13148         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
13149         on stack usage.
13150         (dump_inline_summary): Export.
13151         (debug_inline_summary): Declare as DEBUG_FUNCTION.
13152
13153 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
13154
13155         * reginfo.c (memory_move_cost): Change rclass argument type form
13156         'enum reg_class' to reg_class_t.
13157         * reload.h (memory_move_cost): Update prototype.
13158         * postreload.c reload_cse_simplify_set): Change type dclass var to
13159         reg_class_t.
13160         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
13161         Update prototype.
13162         (ira_allocate_and_set_costs): Change aclass argument type form
13163         'enum reg_class' to reg_class_t.
13164         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
13165         Change aclass argument type to reg_class_t.
13166         (update_conflict_hard_reg_costs): Change type aclass and pref vars
13167         to reg_class_t.
13168         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
13169         memory_move_cost call.
13170
13171         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
13172         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
13173         Change type tmp var to reg_class_t.
13174
13175 2011-04-30  Jan Hubicka  <jh@suse.cz>
13176
13177         * ipa-inline.c (can_inline_edge_p): Disregard limits when
13178         inlining into function with flatten attribute.
13179         (want_inline_small_function_p): Be more realistic about inlining
13180         cold calls where callee size grows.
13181
13182 2011-04-30  Jan Hubicka  <jh@suse.cz>
13183
13184         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
13185         flags.
13186
13187 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
13188
13189         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
13190         PRINT_OPERAND_PUNCT_VALID_P): Remove.
13191         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
13192         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
13193         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
13194         (print_operand): Rename to...
13195         (sparc_print_operand): ...this. Make static. Adjust
13196         sparc_print_operand function call.
13197         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
13198         functions.
13199
13200 2011-04-30  Jan Hubicka  <jh@suse.cz>
13201
13202         PR middle-end/48752
13203         * ipa-inline.c (early_inliner): Disable when doing late
13204         addition of function.
13205
13206 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
13207
13208         * dwarf2out.c (get_address_mode): New inline.
13209         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
13210         if not dwarf_strict emit
13211         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
13212         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
13213         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
13214         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
13215         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
13216         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
13217         mem_loc_descriptor callers.
13218         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
13219         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
13220         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
13221         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
13222         (base_types): New variable.
13223         (get_base_type_offset, calc_base_type_die_sizes,
13224         base_type_for_mode, mark_base_types, base_type_cmp,
13225         move_marked_base_types): New functions.
13226         (calc_die_sizes): Assert that die_offset is 0 or equal to
13227         next_die_offset.
13228         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
13229         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
13230         callers.  If not dwarf_strict, call mem_loc_descriptor even for
13231         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
13232         (gen_subprogram_die): Don't give up on call site parameters
13233         with non-integral or large integral modes.  Adjust
13234         mem_loc_descriptor callers.
13235         (prune_unused_types): Call prune_unused_types_mark on base_types
13236         vector entries.
13237         (resolve_addr): Call mark_base_types.
13238         (dwarf2out_finish): Call move_marked_base_types.
13239
13240         PR tree-optimization/48809
13241         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
13242         type.
13243         (gen_inbound_check): Don't compute index_expr - range_min in utype
13244         again, instead reuse SSA_NAME initialized in build_arrays.
13245         Remove two useless gsi_for_stmt calls.
13246
13247 2011-04-29  Jeff Law  <law@redhat.com>
13248
13249         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
13250
13251 2011-04-29  Martin Jambor  <mjambor@suse.cz>
13252
13253         * cgraph.h (cgraph_postorder): Remove declaration.
13254         * ipa-utils.h (ipa_free_postorder_info): Declare.
13255         (ipa_reverse_postorder): Likewise.
13256         * cgraphunit.c: Include ipa-utils.h.
13257         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
13258         * ipa-inline.c: Include ipa-utils.h.
13259         (ipa_inline): Update call to ipa_reverse_postorder.
13260         * ipa-pure-const.c (propagate_pure_const): Update call to
13261         ipa_reduced_postorder and ipa_print_order.  Call
13262         ipa_free_postorder_info to clean up.
13263         (propagate_nothrow): Likewise.
13264         * ipa-reference.c (propagate): Removed a useless call to
13265         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
13266         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
13267         * ipa.c: Include ipa-utils.h.
13268         (ipa_profile): Update call to ipa_reverse_postorder.
13269         (cgraph_postorder): Moved to...
13270         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
13271         (ipa_utils_print_order): Renamed to ipa_print_order.
13272         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
13273         comments.
13274         (ipa_free_postorder_info): New function.
13275         * passes.c: Include ipa-utils.h.
13276         (do_per_function_toporder): Update call to ipa_reverse_postorder.
13277         (ipa_write_summaries): Likewise.
13278         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
13279         (cgraphunit.o): Likewise.
13280         (ipa.o): Likewise.
13281         (ipa-inline.o): Likewise.
13282
13283 2011-04-29  Jan Hubicka  <jh@suse.cz>
13284
13285         * gcc.dg/tree-ssa/inline-10.c: New testcase.
13286         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
13287         * ipa-inline.h (clause_t): Turn into unsigned int.
13288         * ipa-inline-analysis.c (add_clause): Do more simplification.
13289         (and_predicates): Shortcut more cases.
13290         (predicates_equal_p): Move forward; check that clauses are properly
13291         ordered.
13292         (or_predicates): Shortcut more cases.
13293         (edge_execution_predicate): Rewrite as...
13294         (set_cond_stmt_execution_predicate): ... this function; handle
13295         __builtin_constant_p.
13296         (set_switch_stmt_execution_predicate): New .
13297         (compute_bb_predicates): New.
13298         (will_be_nonconstant_predicate): Update TODO.
13299         (estimate_function_body_sizes): Use compute_bb_predicates
13300         and free them later, always try to estimate if stmt is constant.
13301         (estimate_time_after_inlining, estimate_size_after_inlining):
13302         Gracefully handle optimized out edges.
13303         (read_predicate): Fix off by one error.
13304
13305 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
13306
13307         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
13308
13309 2011-04-27  Xinliang David Li  <davidxl@google.com>
13310
13311         * tree-profile.c (init_ic_make_global_vars): Set
13312         tls attribute on ic vars.
13313         * coverage.c (coverage_end_function): Initialize
13314         function_list with zero.
13315
13316 2011-04-29  Richard Guenther  <rguenther@suse.de>
13317
13318         * builtins.c (fold_builtin_classify_type): Use integer_type_node
13319         for the type of the result.
13320         (fold_builtin_isascii): Likewise.
13321         (fold_builtin_toascii): Use integer_type_node where appropriate.
13322         (fold_builtin_logb): Likewise.
13323         (fold_builtin_frexp): Likewise.
13324         (fold_builtin_strstr): Likewise.
13325         (fold_builtin_strpbrk): Likewise.
13326         (fold_builtin_fputs): Likewise.
13327         (fold_builtin_sprintf): Likewise.
13328         (fold_builtin_snprintf): Likewise.
13329         (fold_builtin_printf): Likewise.
13330         (do_mpfr_remquo): Use a proper type for the assigned constant.
13331         (do_mpfr_lgamma_r): Likewise.
13332         * dwarf2out.c (resolve_one_addr): Use size_int.
13333         * except.c (init_eh): Likewise.
13334         (assign_filter_values): Use integer_type_node for filter values.
13335         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
13336         indices.
13337         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
13338         for EH region numbers.
13339         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
13340         for the shift amount.
13341
13342 2011-04-29  Richard Guenther  <rguenther@suse.de>
13343
13344         * expr.h (expand_shift): Rename to ...
13345         (expand_variable_shift): ... this.
13346         (expand_shift): Take a constant shift amount.
13347         * expmed.c (expand_shift): Rename to ...
13348         (expand_variable_shift): ... this.
13349         (expand_shift): New wrapper around expand_variable_shift.
13350         * expr.c (convert_move, emit_group_load_1, emit_group_store,
13351         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
13352         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
13353         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
13354         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
13355         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
13356         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
13357         emit_store_flag_1, emit_store_flag): Likewise.
13358         * builtins.c (expand_builtin_signbit): Likewise.
13359         * calls.c (load_register_parameters): Likewise.
13360         * function.c (assign_parm_setup_block): Likewise.
13361         * lower-subreg.c (resolve_shift_zext): Likewise.
13362         * optabs.c (widen_bswap, expand_abs_nojump,
13363         expand_one_cmpl_abs_nojump, expand_float): Likewise.
13364         * spu/spu.c (spu_expand_extv): Likewise.
13365         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
13366
13367 2011-04-29  Richard Guenther  <rguenther@suse.de>
13368
13369         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
13370         for the remapped region number.
13371         * predict.c (build_predict_expr): Use integer_type_node for the
13372         predict kind.
13373         * fold-const.c (fold_binary_loc): Use integer_type_node for
13374         the shift amount.  Use a proper type for the PLUS_EXPR operand.
13375
13376 2011-04-29  Michael Matz  <matz@suse.de>
13377
13378         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
13379         other trees that just builtins.
13380         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
13381
13382 2011-04-29  Richard Guenther  <rguenther@suse.de>
13383
13384         * tree-nested.c (get_trampoline_type): Use size_int.
13385         (get_nl_goto_field): Likewise.
13386         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
13387         for all indexes.
13388         (lower_eh_constructs_2): Likewise.
13389         (lower_resx): Likewise.
13390         (lower_eh_dispatch): Likewise.
13391         * tree-mudflap.c (mf_build_string): Use size_int.
13392         (mudflap_register_call): Use integer_type_node for the flag.
13393         (mudflap_enqueue_constant): Use size_int.
13394         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
13395         instead of rebuilding it.
13396
13397 2011-04-29  Richard Guenther  <rguenther@suse.de>
13398
13399         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
13400         Handle OBJ_TYPE_REF.
13401         (find_func_aliases_for_call): Use it more consistently.
13402
13403 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
13404
13405         * haifa-sched.c (last_nondebug_scheduled_insn): New.
13406         (rank_for_schedule): Use it.
13407         (schedule_block): Set it.
13408
13409 2011-04-28  David Li  <davidxl@google.com>
13410
13411         * tree.c (crc32_string): Use crc32_byte.
13412         (crc32_byte): New function.
13413         * tree.h (crc32_byte): New function.
13414         * gcov.c (read_graph_file): Handle new cfg_cksum.
13415         (read_count_file): Ditto.
13416         * profile.c (instrument_values): Ditto.
13417         (get_exec_counts): Ditto.
13418         (read_profile_edge_counts): Ditto.
13419         (compute_branch_probabilities): Ditto.
13420         (compute_value_histograms): Ditto.
13421         (branch_prob): Ditto.
13422         (end_branch_prob): Ditto.
13423         * coverage.c (read_counts_file): Ditto.
13424         (get_coverage_counts): Ditto.
13425         (tree_coverage_counter_addr): Ditto.
13426         (coverage_checksum_string): Ditto.
13427         (coverage_begin_output): Ditto.
13428         (coverage_end_function): Ditto.
13429         (build_fn_info_type): Ditto.
13430         (build_fn_info_value): Ditto.
13431         * libgcov.c (gcov_exit): Ditto.
13432         * gcov-dump.c (tag_function): Ditto.
13433         (compute_checksum): Remove.
13434
13435 2011-04-29  Alan Modra  <amodra@gmail.com>
13436
13437         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
13438         unspec plus offset.  Tidy macho code.
13439
13440 2011-04-29  Martin Jambor  <mjambor@suse.cz>
13441
13442         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
13443         node instead of a decl.  Update all callers.
13444         * cgraph.h: Update declaration.
13445
13446 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
13447
13448         PR tree-optimization/48765
13449         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
13450         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
13451         to indicate if loop aware SLP is being used.  Scan the statements
13452         and update the vectorization factor according to the type of
13453         vectorization before statement analysis.
13454         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
13455         pass it to vect_analyze_loop_operations.
13456         (vectorizable_reduction): Set number of copies to 1 in case of pure
13457         SLP statement.
13458         * tree-vect-stmts.c (vectorizable_conversion,
13459         vectorizable_assignment, vectorizable_shift,
13460         vectorizable_operation, vectorizable_type_demotion,
13461         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
13462         Likewise.
13463         (vectorizable_condition): Move the check that it is not SLP
13464         vectorization before the number of copies check.
13465         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
13466         to vectorize the loop using SLP.
13467
13468 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
13469
13470         PR middle-end/48597
13471         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
13472         inline asm.
13473
13474 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
13475
13476         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
13477         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
13478         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
13479         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
13480         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
13481         linux*.h headers.
13482         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
13483         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13484         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13485         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13486         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
13487         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
13488         REG_NAME.
13489         * config/i386/linux.h (REG_NAME): Don't define.
13490         * config/i386/linux64.h (REG_NAME): Don't define.
13491         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
13492         Undefine before defining.
13493
13494 2011-04-28  Jan Hubicka  <jh@suse.cz>
13495
13496         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
13497         nonconstant_names array.
13498         (estimate_function_body_sizes): Build nonconstant_names array; handle
13499         BUILT_IN_CONSTANT_P.
13500
13501 2011-04-28  Richard Guenther  <rguenther@suse.de>
13502
13503         PR bootstrap/48804
13504         Revert
13505         2011-04-28  Richard Guenther  <rguenther@suse.de>
13506
13507         * tree-ssa-structalias.c (solve_constraints): Build succ graph
13508         as late as possible.
13509
13510 2011-04-28  Richard Guenther  <rguenther@suse.de>
13511
13512         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
13513         (debug_constraint): Do it here.
13514         (dump_constraints): And here.
13515         (rewrite_constraints): And here.
13516         (dump_constraint_edge): Remove.
13517         (dump_constraint_graph): Rewrite to produce DOT output.
13518         (solve_constraints): Build succ graph as late as possible.
13519         Dump constraint graphs before and after solving.
13520
13521 2011-04-28  Richard Guenther  <rguenther@suse.de>
13522
13523         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
13524         New function split out from ...
13525         (find_func_aliases): ... here.  Call it.
13526         (find_func_aliases_for_call): Likewise.
13527
13528 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13529
13530         * internal-fn.h (internal_fn_name_array): Declare.
13531         (internal_fn_flags_array): Likewise.
13532
13533 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
13534
13535         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
13536         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
13537         Move from sse.md.
13538         (ssemodefsuffix): Remove.
13539         (ssevecmodesuffix): New mode attribute.
13540         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
13541         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
13542         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
13543         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
13544         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
13545         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
13546         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
13547         ssemodesuffix mode attribute.
13548         (float splitters): Use ssevecmodesuffix mode attribute.
13549         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
13550         (sseinsmode): Rename from avxvecmode.
13551         (avxsizesuffix): Rename from avxmodesuffix.
13552         (sseintvecmode): Rename from avxpermvecmode.
13553         (ssedoublevecmode): Rename from ssedoublesizemode.
13554         (ssehalfvecmode): Rename from avxhalfvecmode.
13555         (ssescalarmode): Rename from avxscalarmode.
13556         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
13557         templates for ssemodesuffix mode attribute.
13558         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
13559         mode attribute.
13560
13561         Adjust RTX patterns globally for renamed mode attributes.
13562
13563 2011-04-27  Jan Hubcika  <jh@suse.cz>
13564
13565         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
13566         * ipa-inline-analysis.c: Include alloc-pool.h.
13567         (edge_predicate_pool): New.
13568         (trye_predicate_p): New function
13569         (false_predicate_p): New function.
13570         (add_clause): Sanity check that false clauses are "optimized";
13571         never add clauses to predicate that is already known to be false.
13572         (and_predicate): Use flase_predicate_p.
13573         (evaulate_predicate): Rename to ...
13574         (evaluate_predicate): ... this one; update all callers; assert
13575         that false is not listed among possible truths.
13576         (dump_predicate): Use true_predicate_p.
13577         (account_size_time): Use false_predicate_p.
13578         (evaulate_conditions_for_edge): Rename to ...
13579         (evaluate_conditions_for_edge) ... this one.
13580         (edge_set_predicate): New function.
13581         (inline_edge_duplication_hook): Duplicate edge predicates.
13582         (inline_edge_removal_hook): Free edge predicates.
13583         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
13584         (dump_inline_summary): Update.
13585         (estimate_function_body_sizes): Set edge predicates.
13586         (estimate_calls_size_and_time): Handle predicates.
13587         (estimate_callee_size_and_time): Update.
13588         (remap_predicate): Add toplev_predicate; update comment.
13589         (remap_edge_predicates): New function.
13590         (inline_merge_summary): Compute toplev predicate; update.
13591         (read_predicate): New function.
13592         (read_inline_edge_summary): Use it.
13593         (inline_read_section): Likewise.
13594         (write_predicate): New function.
13595         (write_inline_edge_summary): Use it.
13596         (inline_write_summary): Likewise.
13597         (inline_free_summary): Free alloc pool and edge summary vec.
13598
13599 2011-04-27  Richard Guenther  <rguenther@suse.de>
13600
13601         * tree-ssa-structalias.c (changed_count): Remove.
13602         (changed): Use a bitmap.
13603         (unify_nodes): Adjust.
13604         (do_sd_constraint): Likewise.
13605         (do_ds_constraint): Likewise.
13606         (do_complex_constraint): Likewise.
13607         (solve_graph): Likewise.
13608
13609 2011-04-27  Jan Hubicka  <jh@suse.cz>
13610
13611         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
13612
13613 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
13614
13615         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
13616         (avx_vperm2f128_*_operand): Ditto.
13617         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
13618         Use avx_vpermilp_parallel in insn condition.
13619         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
13620         Use avx_vperm2f128_parallel in insn condition.
13621
13622 2011-04-27  Richard Guenther  <rguenther@suse.de>
13623
13624         * Makefile.in (tree-ssa-structalias.o): Remove
13625         gt-tree-ssa-structalias.h dependency.
13626         (GTFILES): Remove tree-ssa-structalias.c.
13627         * tree.c (allocate_decl_uid): New function.
13628         (make_node_stat): Use it.
13629         (copy_node_stat): Likewise.
13630         * tree.h (allocate_decl_uid): Declare.
13631         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
13632         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
13633         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
13634         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
13635         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
13636         (struct heapvar_map): Likewise.
13637         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
13638         heapvar_insert): Likewise.
13639         (make_heapvar_for): Rename to ...
13640         (make_heapvar): ... this.  Simplify.
13641         (fake_var_decl_obstack): New global var.
13642         (build_fake_var_decl): New function.
13643         (make_constraint_from_heapvar): Adjust.
13644         (handle_lhs_call): Likewise.
13645         (create_function_info_for): Likewise.
13646         (intra_create_variable_infos): Likewise.
13647         (init_alias_vars): Allocate fake_var_decl_obstack.
13648         (init_alias_heapvars, delete_alias_heapvars): Remove.
13649         (compute_points_to_sets): Do not call init_alias_heapvars.
13650         (ipa_pta_execute): Likewise.
13651         (delete_points_to_sets): Free fake_var_decl_obstack.
13652
13653 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13654
13655         * config/spu/divmovti4.c (union qword_UTItype): New data type.
13656         (si_from_UTItype, si_to_UTItype): New functions.
13657         (__udivmodti4): Use them to implement type-punning.
13658         * config/spu/multi3.c (union qword_TItype): New data type.
13659         (si_from_TItype, si_to_TItype): New functions.
13660         (__multi3): Use them to implement type-punning.
13661
13662 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13663
13664         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
13665
13666 2011-04-27  Jan Hubicka  <jh@suse.cz>
13667
13668         * ipa-prop.c (function_insertion_hook_holder): New holder.
13669         (ipa_add_new_function): New function.
13670         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
13671         Register/deregister holder.
13672
13673 2011-04-27  Richard Guenther  <rguenther@suse.de>
13674
13675         PR tree-optimization/48772
13676         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
13677
13678 2011-04-27  Richard Guenther  <rguenther@suse.de>
13679
13680         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
13681         TARGET_MEM_REF handling.
13682
13683 2011-04-27  Nick Clifton  <nickc@redhat.com>
13684
13685         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
13686         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
13687         (REG_CLASS_NAMES): Likewise.
13688         (REG_CLASS_CONTENTS): Likewise.
13689         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
13690         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
13691         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
13692         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
13693         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
13694         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
13695         duplicate register classes.
13696         (frv_class_likely_spilled_p): Likewise.
13697         (frv_register_move_cost): Likewise.
13698
13699         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
13700         end of the regno_reg_class array.
13701
13702 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
13703
13704         PR c/48742
13705         * c-typeck.c (build_binary_op): Don't wrap arguments if
13706         int_operands is true.
13707
13708 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
13709
13710         PR target/48767
13711         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
13712         targetm.calls.must_pass_in_stack for void type.
13713
13714 2011-04-26  Jan Hubicka  <jh@suse.cz>
13715
13716         * cgraphbuild.c (build_cgraph_edges): Update call
13717         of cgraph_create_edge and cgraph_create_indirect_edge.
13718         * cgraph.c (cgraph_create_edge_including_clones,
13719         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
13720         cgraph_update_edges_for_call_stmt_node): Do not take nest
13721         argument; do not initialize call_stmt_size/time.
13722         (dump_cgraph_node): Do not dump nest.
13723         (cgraph_clone_edge): Do not take loop_nest argument;
13724         do not propagate it; do not clone call_stmt_size/time.
13725         (cgraph_clone_node): Likewise.
13726         (cgraph_create_virtual_clone): Update.
13727         * cgraph.h (struct cgraph_edge): Remove
13728         call_stmt_size/call_stmt_time/loop_nest.
13729         (cgraph_create_edge, cgraph_create_indirect_edge,
13730         cgraph_create_edge_including_clones, cgraph_clone_node): Update
13731         prototype.
13732         * tree-emutls.c (gen_emutls_addr): Update.
13733         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
13734         loop_nest; handle indirect calls, too.
13735         (clone_inlined_nodes): Do not care about updating inline summaries.
13736         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
13737         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
13738         stream call_stmt_size/call_stmt_time/loop_nest.
13739         * ipa-inline.c (edge_badness): Update.
13740         (ipa_inline): dump summaries after inlining.
13741         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
13742         New.
13743         (inline_edge_summary): New function.
13744         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
13745         (inline_edge_removal_hook): Handle edge summaries.
13746         (inline_edge_duplication_hook): New hook.
13747         (inline_summary_alloc): Alloc hooks.
13748         (initialize_growth_caches): Do not register removal hooks.
13749         (free_growth_caches); Do not free removal hook.
13750         (dump_inline_edge_summary): New function.
13751         (dump_inline_summary): Use it.
13752         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
13753         (inline_update_callee_summaries): New function.
13754         (inline_merge_summary): Use it.
13755         (do_estimate_edge_time, do_estimate_edge_growth): Update.
13756         (read_inline_edge_summary): New function.
13757         (inline_read_section): Use it.
13758         (write_inline_edge_summary): New function.
13759         (inline_write_summary): Use it.
13760         (inline_free_summary): Free edge new holders.
13761         * tree-inline.c (copy_bb): Update.
13762
13763 2011-04-26  Jason Merrill  <jason@redhat.com>
13764
13765         * tree-eh.c (lower_try_finally_switch): Create the label along with
13766         the CASE_LABEL_EXPR.
13767
13768 2011-04-26  David S. Miller  <davem@davemloft.net>
13769             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13770
13771         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
13772         * configure: Regenerate.
13773
13774 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13775
13776         PR target/48258
13777         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
13778         reduction.
13779         (VEC_reduc): New code iterator and splitters for vector reduction.
13780         (VEC_reduc_name): Ditto.
13781         (VEC_reduc_rtx): Ditto.
13782         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
13783         (reduc_<VEC_reduc_name>_v4sf): Ditto.
13784
13785         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
13786         support for extracting SF on VSX.
13787
13788         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
13789         generating xscvspdp.
13790         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
13791         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
13792         double add, minimum, maximum vector reduction.
13793         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
13794         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
13795         optimize double vector reduction.
13796         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
13797
13798 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
13799
13800         * config/fr30/fr30.h (inhibit_libc): Don't define.
13801         * config/m32r/m32r-protos.h: Correct comment.
13802         * config/v850/v850.h (GHS_default_section_names,
13803         GHS_current_section_names): Use tree, not union tree_node *.
13804
13805 2011-04-26  Xinliang David Li  <davidxl@google.com>
13806
13807         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
13808         * c-family/c-opts.c (c_common_handle_option): Set
13809         warn_maybe_uninitialized.
13810         * opts.c (common_handle_option): Ditto.
13811         * common.opt:  New option.
13812         * tree-ssa.c (warn_uninit): Add one more parameter.
13813         (warn_uninitialized_var): Pass warning code.
13814         * tree-flow.h: Interface change.
13815
13816 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13817
13818         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
13819         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
13820         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
13821
13822 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13823
13824         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
13825         * config/mips/mips.opt (mmips-tfile): Remove.
13826
13827         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
13828         mips-tdump reference to ...
13829         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
13830         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
13831         reference by Tru64 UNIX.
13832
13833 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
13834
13835         PR debug/48768
13836         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
13837         is error_mark_node, set value to NULL.
13838
13839         PR tree-optimization/48734
13840         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
13841         if return value from maybe_fold_*_comparsions isn't something
13842         the code is prepared to handle.
13843
13844 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
13845
13846         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
13847         mode check.
13848         (ext_QIreg_nomode_operands): Remove.
13849         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
13850         (*andsi_1): Ditto.
13851         (*andhi_1): Ditto.
13852
13853 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
13854
13855         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
13856
13857 2011-04-26  Richard Guenther  <rguenther@suse.de>
13858
13859         * c-typeck.c (build_unary_op): Do not expand array-refs via
13860         pointer arithmetic.  Only adjust qualifiers for function types.
13861
13862 2011-04-26  Richard Guenther  <rguenther@suse.de>
13863
13864         PR middle-end/48694
13865         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
13866         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
13867         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
13868         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
13869
13870 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
13871
13872         * doc/extend.texi: Document __underlying_type.
13873
13874 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
13875
13876         * config/rs6000/titan.md (automata_option "progress"): Remove.
13877
13878 2011-04-25  Jeff Law  <law@redhat.com>
13879
13880         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
13881
13882 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
13883
13884         * system.h (ENUM_BITFIELD): Remove.
13885
13886 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
13887             Eric Botcazou  <ebotcazou@adacore.com>
13888
13889         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
13890         for STORE_FLAG_VALUE==-1 case.
13891
13892 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
13893
13894         PR target/43804
13895         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
13896         LEGITIMATE_PIC_OPERAND_P.
13897
13898 2011-04-24  Jan Hubicka  <jh@suse.cz>
13899
13900         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
13901         WPA hack.
13902         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
13903         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
13904         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
13905         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
13906         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
13907         Sanity check predicate length.
13908         (remap_predicate): Likewise; sanity check jump functions.
13909         (inline_read_section, inline_write_summary): Sanity check
13910         predicate length.
13911
13912 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
13913
13914         PR other/48748
13915         * doc/extend.texi (Type Traits): Document __is_standard_layout,
13916         __is_literal_type, and __is_trivial; update throughout about
13917         possibly cv-qualified void types.
13918
13919 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
13920
13921         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
13922         testsuite and make it version agnostic.
13923
13924 2011-04-22  Jan Hubicka  <jh@suse.cz>
13925
13926         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
13927
13928 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
13929
13930         PR c/48685
13931         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
13932         to VOID_TYPE even around MODIFY_EXPR.
13933
13934 2011-04-22  Mike Stump  <mikestump@comcast.net>
13935
13936         * gensupport.c (read_md_rtx): Fix typo in comment.
13937         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
13938         comment.
13939
13940 2011-04-22  Jan Hubicka  <jh@suse.cz>
13941
13942         * gengtype.c (open_base_files): Add ipa-inline.h include.
13943         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
13944         ipa-prop.c; update all uses.
13945         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
13946         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
13947         merge summary of inlined function into former caller.
13948         * ipa-inline.c (max_benefit): Remove.
13949         (edge_badness): Compensate for removal of benefits.
13950         (update_caller_keys): Use
13951         reset_node_growth_cache/reset_edge_growth_cache.
13952         (update_callee_keys): Likewise.
13953         (update_all_callee_keys): Likewise.
13954         (inline_small_functions): Do not collect max_benefit; do not reset
13955         estimated_growth; call free_growth_caches and initialize_growth_caches.
13956         * ipa-inline.h (struct condition, type clause_t, struct predicate,
13957         struct size_time_entry): New structures.
13958         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
13959         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
13960         and estimated_growth.
13961         (edge_growth_cache_entry): New structure.
13962         (node_growth_cache, edge_growth_cache): New global vars.
13963         (estimate_growth): Turn into inline.
13964         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
13965         initialize_growth_caches, free_growth_caches): Declare.
13966         (estimate_edge_growth): Rewrite.
13967         (estimate_edge_time): Implement as inline cache lookup.
13968         (reset_node_growth_cache, reset_edge_growth_cache): New inline
13969         functions.
13970         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
13971         (NUM_CONDITIONS): New constant.
13972         (predicate_conditions): New enum.
13973         (IS_NOT_CONSTANT): New constant.
13974         (edge_removal_hook_holder): New var.
13975         (node_growth_cache, edge_growth_cache): New global vars.
13976         (true_predicate, single_cond_predicate, false_predicate,
13977         not_inlined_predicate, add_condition, add_clause, and_predicates,
13978         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
13979         dump_clause, dump_predicate, account_size_time,
13980         evaulate_conditions_for_edge): New functions.
13981         (inline_summary_alloc): Move to heap.
13982         (inline_node_removal_hook): Clear condition and entry vectors.
13983         (inline_edge_removal_hook): New function.
13984         (initialize_growth_caches, free_growth_caches): New function.
13985         (dump_inline_summary): Update.
13986         (edge_execution_predicate): New function.
13987         (will_be_nonconstant_predicate): New function.
13988         (estimate_function_body_sizes): Compute BB and constantness predicates.
13989         (compute_inline_parameters): Do not clear estimated_growth.
13990         (estimate_edge_size_and_time): New function.
13991         (estimate_calls_size_and_time): New function.
13992         (estimate_callee_size_and_time): New function.
13993         (remap_predicate): New function.
13994         (inline_merge_summary): New function.
13995         (do_estimate_edge_time): New function based on...
13996         (estimate_edge_time): ... this one.
13997         (do_estimate_edge_growth): New function.
13998         (do_estimate_growth): New function based on....
13999         (estimate_growth): ... this one.
14000         (inline_analyze_function): Analyze after deciding on jump functions.
14001         (inline_read_section): New function.
14002         (inline_read_summary): Use it.
14003         (inline_write_summary): Write all the new data.
14004         * ipa-prop.c (ipa_get_param_decl_index): Export.
14005         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
14006         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
14007         Declare.
14008         (ipa_get_lattice): Move here from ipa-cp.c
14009         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
14010         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
14011         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
14012         cgraph_edge_inlinable_p): Remove.
14013         * cgraphunit.c: Include ipainline.h
14014         (cgraph_process_new_functions): Update call of
14015         compute_inline_parameters.
14016
14017 2011-04-22  Richard Guenther  <rguenther@suse.de>
14018
14019         * tree.c (build_int_cst): Properly create canonicalized integer
14020         constants.
14021         (build_int_cst_type): Remove scary comments.
14022
14023 2011-04-22  Xinliang David Li  <davidxl@google.com>
14024
14025         * toplev.c (process_options): Enable -Werror=coverage-mismatch
14026         by default when -Wno-error is not specified.
14027         * opts-global.c (decode_options): Remove call to
14028         control_warning_options.
14029
14030 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
14031
14032         PR tree-optimization/48717
14033         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
14034         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
14035
14036 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
14037
14038         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
14039         definition where used.
14040
14041 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
14042
14043         PR c/48716
14044         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
14045         TREE_STATIC variables declared inside of some OpenMP construct.
14046
14047 2011-04-22  Martin Jambor  <mjambor@suse.cz>
14048
14049         PR middle-end/48585
14050         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
14051
14052 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
14053
14054         PR c/36750
14055         * c-typeck.c (pop_init_level): Do not warn about initializing
14056         with ` = {0}'.
14057
14058 2011-04-22  Alan Modra  <amodra@gmail.com>
14059
14060         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
14061         when returning call_cookie.
14062         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
14063         pointers, to functions with no more vector args than the current
14064         function, and some non-local calls for ABI_V4.
14065         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
14066         sibcall_nonlocal_aix64): Combine to ..
14067         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
14068         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
14069         (sibcall_value_nonlocal_aix<mode>): ..likewise.
14070         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
14071         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
14072         operand.
14073         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
14074         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
14075         sibcall_value_symbolic_64): Delete.
14076
14077 2011-04-21  Xinliang David Li  <davidxl@google.com>
14078
14079         * cgraph.h: Remove pid.
14080         * cgraph.c: Remove pid.
14081         * value-prof.c (init_node_map): New function.
14082         (del_node_map): New function.
14083         (find_func_by_funcdef_no): New function.
14084         (gimple_ic_transform): Call new function.
14085         * cgraphunit.c (cgraph_finalize_function): Remove pid.
14086         * function.c (get_last_funcdef_no): New function.
14087         * function.h (get_last_funcdef_no): New function.
14088         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
14089         to libgcov function.
14090         (tree-profiling): Call node map init and delete function.
14091
14092 2011-04-21  Ian Lance Taylor  <iant@google.com>
14093
14094         * godump.c (go_format_type): Use exported Go name for anonymous
14095         field name.
14096
14097 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
14098
14099         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
14100         Call builtin_function_type_list instead of builtin_function_type.
14101         (UNARY, BINARY, TRINARY, QUAD): Likewise.
14102
14103 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
14104
14105         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
14106         build_function_type_list instead of build_function_type.
14107         Delete variable `endlink'.
14108
14109 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
14110
14111         * config/s390/s390.c (s390_init_builtins): Call
14112         build_function_type_list instead of build_function_type.
14113
14114 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
14115
14116         * config/ia64/ia64.c (ia64_init_builtins): Call
14117         build_function_type_list instead of builtin_function_type.
14118
14119 2011-04-21  Easwaran Raman  <eraman@google.com>
14120
14121         * cfgexpand.c (stack_var): Remove OFFSET...
14122         (add_stack_var): ...and its reference here...
14123         (expand_stack_vars): ...and here.
14124         (stack_var_cmp): Sort by descending order of size.
14125         (partition_stack_vars): Change heuristic.
14126         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
14127         (dump_stack_var_partition): Add newline after each partition.
14128
14129 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
14130             Jeff Law  <law@redhat.com>
14131
14132         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
14133         * gengtype.c (matching_file_name_substitute): Likewise.
14134
14135 2011-04-21  Richard Guenther  <rguenther@suse.de>
14136
14137         PR lto/48703
14138         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
14139
14140 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
14141
14142         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
14143
14144 2011-04-21  Richard Guenther  <rguenther@suse.de>
14145
14146         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
14147         file name.
14148
14149 2011-04-21  Richard Guenther  <rguenther@suse.de>
14150
14151         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
14152         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
14153         Use DECL_P, not SSA_VAR_P.
14154         (ptr_derefs_may_alias_p): Likewise.
14155         (ptr_deref_may_alias_ref_p_1): Likewise.
14156         (decl_refs_may_alias_p): Likewise.
14157         (refs_may_alias_p_1): Likewise.
14158         (ref_maybe_used_by_call_p_1): Likewise.
14159         (call_may_clobber_ref_p_1): Likewise.
14160         (indirect_ref_may_alias_decl_p): Assume indirect refrences
14161         are either MEM_REF or TARGET_MEM_REF.
14162         (indirect_refs_may_alias_p): Likewise.
14163         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
14164         for MEM_EXPR of indirect calls.
14165
14166 2011-04-21  Tristan Gingold  <gingold@adacore.com>
14167
14168         * vmsdbgout.c (write_srccorr): Compute file length from the string.
14169         (dst_file_info_struct): Remove flen field.
14170         (lookup_filename): Remove code that set flen field.
14171
14172 2011-04-21  Tristan Gingold  <gingold@adacore.com>
14173
14174         * config/ia64/ia64.c (ia64_start_function): Add a guard.
14175
14176 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
14177
14178         PR target/48708
14179         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
14180         vec_extract and vec_concat for non-SSE4_1 targets.
14181
14182 2011-04-21  Richard Guenther  <rguenther@suse.de>
14183
14184         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
14185         return statements.
14186
14187 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
14188
14189         * config/i386/cygming.h (union tree_node, TREE): Don't define or
14190         undefine.
14191         (FILE): Don't undefine.
14192
14193 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
14194
14195         * config/alpha/alpha.c (struct machine_function): Use rtx, not
14196         struct rtx_def *.
14197         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
14198         struct rtx_def *.
14199         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
14200         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
14201         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
14202         rtx_def *.
14203         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
14204         definitions where used.
14205         * config/microblaze/microblaze.h (struct microblaze_args): Use
14206         rtx, not struct rtx_def *.
14207         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
14208         rtx_def *.
14209         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
14210         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
14211         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
14212         not struct rtx_def *.
14213         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
14214         struct rtx_def *.
14215         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
14216         rtx_def *.
14217         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
14218
14219 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14220
14221         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
14222         operand_equal_p to compare DR_BASE_ADDRESSes.
14223         (vect_check_interleaving): Likewise.
14224
14225 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14226
14227         PR target/46329
14228         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
14229         for all Neon struct constants.
14230
14231 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14232
14233         * target.def (legitimate_constant_p): New hook.
14234         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
14235         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
14236         * doc/tm.texi: Regenerate.
14237         * hooks.h (hook_bool_mode_rtx_true): Declare.
14238         * hooks.c (hook_bool_mode_rtx_true): Define.
14239         * system.h (LEGITIMATE_CONSTANT_P): Poison.
14240         * calls.c (precompute_register_parameters): Replace uses of
14241         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
14242         (emit_library_call_value_1): Likewise.
14243         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
14244         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
14245         * ira-costs.c (scan_one_insn): Likewise.
14246         * recog.c (general_operand, immediate_operand): Likewise.
14247         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
14248         * reload1.c (init_eliminable_invariants): Likewise.
14249
14250         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
14251         mode argument.
14252         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
14253         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
14254         argument.
14255         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14256         * config/alpha/predicates.md (input_operand): Update call to
14257         alpha_legitimate_constant_p.
14258
14259         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
14260         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
14261         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
14262         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14263         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
14264         (arm_legitimate_constant_p): New functions.
14265         (arm_cannot_force_const_mem): Make static.
14266
14267         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
14268
14269         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
14270         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
14271         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
14272         instead of bfin_legitimate_constant_p.
14273         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
14274         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14275
14276         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
14277
14278         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
14279
14280         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
14281         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
14282         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14283         (frv_legitimate_constant_p): Make static.  Add a mode argument.
14284
14285         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
14286         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
14287         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
14288
14289         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
14290         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
14291         * config/i386/i386.c (legitimate_constant_p): Rename to...
14292         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
14293         argument.
14294         (ix86_cannot_force_const_mem): Update accordingly.
14295         (ix86_legitimate_address_p): Likewise.
14296         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14297         * config/i386/i386.md: Update commentary.
14298
14299         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
14300         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
14301         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14302         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
14303
14304         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
14305
14306         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
14307         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
14308         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14309         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
14310
14311         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
14312         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
14313         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
14314
14315         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
14316         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14317         (m32r_legitimate_constant_p): New function.
14318
14319         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
14320         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
14321         LEGITIMATE_CONSTANT_P.
14322         (LEGITIMATE_CONSTANT_P): Delete.
14323         * config/m68k/m68k.c (m68k_expand_prologue): Call
14324         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
14325         (m68k_legitimate_constant_p): New function.
14326         * config/m68k/m68k.md: Update comments.
14327
14328         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
14329         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14330         (mcore_legitimate_constant_p): New function.
14331
14332         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
14333         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
14334         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
14335         Add a mode argument.
14336         (mep_legitimate_address): Update accordingly.
14337         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14338
14339         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
14340         Delete.
14341         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
14342         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
14343         static.  Check OP's mode for VOIDmode.
14344         (microblaze_legitimate_constant_p): New function.
14345         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14346
14347         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
14348         * config/mips/mips.c (mips_legitimate_constant_p): New function.
14349         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
14350         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14351         * config/mips/predicates.md: Update comments.
14352
14353         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
14354         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
14355         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14356         (mmix_legitimate_constant_p): Make static, return a bool, and take
14357         a mode argument.
14358         (mmix_print_operand_address): Update accordingly.
14359
14360         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
14361         Delete.
14362         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
14363         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
14364         static.  Add a mode argument.
14365         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14366
14367         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
14368
14369         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
14370         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14371         (pa_legitimate_constant_p): New function.
14372
14373         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
14374
14375         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
14376         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14377         (pdp11_legitimate_constant_p): New function.
14378
14379         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
14380         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14381         (rs6000_legitimate_constant_p): New function.
14382
14383         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
14384         (rx_legitimate_constant_p): ...this.
14385         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
14386         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
14387         (rx_legitimate_constant_p): ...this.
14388         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14389         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
14390
14391         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
14392         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
14393         * config/s390/s390.c (legitimate_constant_p): Rename to...
14394         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
14395         and add a mode argument.
14396         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14397
14398         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
14399
14400         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
14401         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14402         (sh_legitimate_constant_p): New function.
14403
14404         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
14405         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
14406         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14407         (legitimate_constant_p): Rename to...
14408         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
14409         argument.
14410         (constant_address_p): Update accordingly.
14411
14412         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
14413         argument and return a bool.
14414         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
14415         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14416         (spu_legitimate_constant_p): Add a mode argument and return a bool.
14417         (spu_rtx_costs): Update accordingly.
14418         * config/spu/predicates.md (vec_imm_operand): Likewise.
14419
14420         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
14421
14422         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
14423         * config/v850/v850.c (v850_legitimate_constant_p): New function.
14424         (TARGET_LEGITIMATE_CONSTANT_P): Define.
14425
14426         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
14427         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
14428         * config/vax/vax.c (legitimate_constant_p): Likewise.
14429
14430         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
14431         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
14432         (xtensa_legitimate_constant_p): New function.
14433
14434 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
14435
14436         * target.def (cannot_force_const_mem): Add a mode argument.
14437         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
14438         * doc/tm.texi: Regenerate.
14439         * hooks.h (hook_bool_mode_rtx_false): Declare.
14440         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
14441         (hook_bool_mode_const_rtx_true): Likewise.
14442         (hook_bool_mode_rtx_false): New function.
14443         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
14444         to be non-VOID.  Update call to cannot_force_const_mem.
14445         (find_reloads): Update accordingly.
14446         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
14447         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
14448         argument.
14449         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
14450         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
14451         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
14452         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
14453         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
14454         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
14455         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
14456         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14457         (m68k_cannot_force_const_mem): ...this new function.
14458         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
14459         argument.
14460         (mips_const_insns, mips_legitimize_const_move): Update calls.
14461         (mips_secondary_reload_class): Likewise.
14462         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
14463         (pa_cannot_force_const_mem): ...this new function.
14464         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
14465         (rs6000_cannot_force_const_mem): ...this new function.
14466         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
14467         argument.
14468         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
14469         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
14470         to...
14471         (xtensa_cannot_force_const_mem): ...this new function.
14472
14473 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14474
14475         * config/mips/mips.c (mips16_build_function_stub): Call
14476         build_function_type_list instead of build_function_type.
14477         (mips16_build_call_stub): Likewise.
14478
14479 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14480
14481         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
14482         instead of build_function_type.
14483
14484 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
14485
14486         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
14487         instead of build_function_type.
14488
14489 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
14490
14491         PR target/48678
14492         * config/i386/i386.md (insv): Change operand 0 constraint to
14493         "register_operand".  Change operand 1 and 2 constraint to
14494         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
14495         * config/i386/sse.md (sse4_1_pinsrb): Export.
14496         (sse2_pinsrw): Ditto.
14497         (sse4_1_pinsrd): Ditto.
14498         (sse4_1_pinsrq): Ditto.
14499         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
14500         * config/i386/i386.c (ix86_expand_pinsr): New.
14501
14502 2011-04-20  Easwaran Raman  <eraman@google.com>
14503
14504         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
14505         containing union type only with -fstrict-aliasing.
14506
14507 2011-04-20  Jim Meyering  <meyering@redhat.com>
14508
14509         Remove useless if-before-free tests.
14510         * calls.c (expand_call, save_area): Likewise.
14511         * cfgcleanup.c (try_forward_edges): Likewise.
14512         * collect2.c (collect_execute): Likewise.
14513         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
14514         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
14515         * coverage.c (coverage_checksum_string): Likewise.
14516         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
14517         * cselib.c (cselib_init): Likewise.
14518         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
14519         (df_set_clean_cfg): Likewise.
14520         * function.c (free_after_compilation): Likewise.
14521         * gcc.c (do_spec_1, main): Likewise.
14522         * gcov.c (create_file_names): Likewise.
14523         * gensupport.c (identify_predicable_attribute): Likewise.
14524         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
14525         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
14526         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
14527         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
14528         * ipa-pure-const.c (local_pure_const): Likewise.
14529         * ipa-reference.c (propagate): Likewise.
14530         * ira-costs.c (free_ira_costs): Likewise.
14531         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
14532         * matrix-reorg.c (mat_free): Likewise.
14533         * prefix.c (get_key_value): Likewise.
14534         * profile.c (compute_value_histograms): Likewise.
14535         * reload1.c (free_reg_equiv): Likewise.
14536         * sched-deps.c (free_deps): Likewise.
14537         * sel-sched-ir.c (fence_clear): Likewise.
14538         * sese.c (set_rename, if_region_set_false_region): Likewise.
14539         * tree-data-ref.c (free_rdg): Likewise.
14540         * tree-eh.c (lower_try_finally): Likewise.
14541         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
14542         * tree-ssa-live.c (delete_var_map): Likewise.
14543         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
14544         * tree-ssa-pre.c (phi_trans_add): Likewise.
14545
14546 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
14547
14548         PR tree-optimization/48611
14549         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
14550         beyond ERT_MUST_NOT_THROW region.
14551
14552 2011-04-20  Catherine Moore  <clm@codesourcery.com>
14553
14554         * config/mips/mips.opt (mfix-24k): New.
14555         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
14556         * config/mips/mips.md (length): Increase by 4 for stores if
14557         fixing 24K errata.
14558         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
14559         all noreorder if fixing 24K errata.
14560         * doc/invoke.texi: Document mfix-24k.
14561
14562 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
14563
14564         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
14565         quad-word modes, reduce to 9-bit index range when above 1016 limit.
14566
14567 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
14568
14569         * config/arm/arm.c (arm_gen_constant): Move movw support ....
14570         (const_ok_for_op): ... to here.
14571
14572 2011-04-20  Kai Tietz  <ktietz@redhat.com>
14573
14574         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
14575         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
14576
14577 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
14578
14579         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
14580
14581 2011-04-20  Richard Guenther  <rguenther@suse.de>
14582
14583         PR tree-optimization/47892
14584         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
14585         are if-convertible.
14586
14587 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
14588
14589         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
14590
14591 2011-04-20  Tristan Gingold  <gingold@adacore.com>
14592
14593         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
14594
14595 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
14596
14597         PR target/18145
14598
14599         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
14600         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
14601         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
14602         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
14603         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
14604
14605         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
14606         New prototype.
14607
14608         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
14609         (avr_asm_named_section, avr_asm_output_aligned_common,
14610         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
14611         New functions to update...
14612         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
14613         (avr_asm_init_sections): Overwrite section callbacks for
14614         data_section, bss_section.
14615         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
14616         from here to...
14617         (avr_file_end): ...here.
14618
14619 2011-04-20  Richard Guenther  <rguenther@suse.de>
14620
14621         PR middle-end/48695
14622         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
14623         objects and types here.  Adjust for their offset before comparing.
14624
14625 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
14626
14627         * tree-vect-stmts.c (vectorizable_store): Only chain one related
14628         statement per copy.
14629
14630 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
14631
14632         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
14633         (GIMPLE_H): Include $(INTERNAL_FN_H).
14634         (OBJS-common): Add internal-fn.o.
14635         (internal-fn.o): New rule.
14636         * internal-fn.def: New file.
14637         * internal-fn.h: Likewise.
14638         * internal-fn.c: Likewise.
14639         * gimple.h: Include internal-fn.h.
14640         (GF_CALL_INTERNAL): New gf_mask.
14641         (gimple_statement_call): Put fntype into a union with a new
14642         internal_fn field.
14643         (gimple_build_call_internal): Declare.
14644         (gimple_build_call_internal_vec): Likewise.
14645         (gimple_call_same_target_p): Likewise.
14646         (gimple_call_internal_p): New function.
14647         (gimple_call_internal_fn): Likewise.
14648         (gimple_call_fntype): Return null for internal calls.
14649         (gimple_call_set_fntype): Assert that the function is not internal.
14650         (gimple_call_set_fn): Likewise.
14651         (gimple_call_set_fndecl): Likewise.
14652         (gimple_call_set_internal_fn): New function.
14653         (gimple_call_addr_fndecl): Handle null functions.
14654         (gimple_call_return_type): Likewise null types.
14655         * gimple.c (gimple_build_call_internal_1): New function.
14656         (gimple_build_call_internal): Likewise.
14657         (gimple_build_call_internal_vec): Likewise.
14658         (gimple_call_same_target_p): Likewise.
14659         (gimple_call_flags): Handle calls to internal functions.
14660         (gimple_call_fnspec): New function.
14661         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
14662         (gimple_has_side_effects): Handle null functions.
14663         (gimple_rhs_has_side_effects): Likewise.
14664         (gimple_call_copy_skip_args): Handle calls to internal functions.
14665         * cfgexpand.c (expand_call_stmt): Likewise.
14666         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
14667         * gimple-fold.c (gimple_fold_call): Handle null functions.
14668         (gimple_fold_stmt_to_constant_1): Don't fold
14669         calls to internal functions.
14670         * gimple-low.c (gimple_check_call_args): Handle calls to internal
14671         functions.
14672         * gimple-pretty-print.c (dump_gimple_call): Likewise.
14673         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
14674         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
14675         (do_warn_unused_result): Likewise.
14676         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
14677         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
14678         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
14679         the target of a call.
14680         (initialize_hash_element): Update accordingly.
14681         (hashable_expr_equal_p): Use gimple_call_same_target_p.
14682         (iterative_hash_hashable_expr): Handle calls to internal functions.
14683         (print_expr_hash_elt): Likewise.
14684         * tree-ssa-pre.c (can_value_number_call): Likewise.
14685         (eliminate): Handle null functions.
14686         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
14687         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
14688         (find_func_aliases): Likewise.
14689         * value-prof.c (gimple_ic_transform): Likewise.
14690         (gimple_indirect_call_to_profile): Likewise.
14691         * lto-streamer-in.c (input_gimple_stmt): Likewise.
14692         * lto-streamer-out.c (output_gimple_stmt): Likewise.
14693
14694 2011-04-19  Jan Hubicka  <jh@suse.cz>
14695
14696         * ipa-inline-transform.c (save_inline_function_body): Add comments.
14697         * ipa-inline.c (inline_small_functions): Compute summaries first,
14698         populate heap later.
14699
14700 2011-04-19  Jan Hubicka  <jh@suse.cz>
14701
14702         * cgraph.h (save_inline_function_body): Remove.
14703         * ipa-inline-transform.c: New file, broke out of...
14704         * ipa-inline.c: ... this one; Update toplevel comment.
14705         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
14706         make global.
14707         (update_noncloned_frequencies): Move to ipa-inline-transform.c
14708         (cgraph_mark_inline_edge): Rename to inline_call; move to
14709         ipa-inline-transform.c.
14710         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
14711         move to ipa-inline-transform.c
14712         (recursive_inlining, inline_small_functions, flatten_function,
14713         ipa_inline, inline_always_inline_functions,
14714         early_inline_small_functions): Update.
14715         (inline_transform): Move to ipa-inline-transform.c.
14716         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
14717         Declare.
14718         * Makefile.in (ipa-inline-transform.o): New file.
14719         * cgraphunit.c (save_inline_function_body): Move to
14720         ipa-inline-transform.c
14721
14722 2011-04-19  DJ Delorie  <dj@redhat.com>
14723
14724         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
14725         registers if we already know there aren't any.
14726         (m32c_emit_epilogue): Don't emit a barrier here.
14727         (m32c_emit_eh_epilogue): Likewise.
14728         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
14729         operands at expand time.
14730         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
14731         int" wchar type.
14732         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
14733         duplicates.  Provide aliases instead.
14734         * config/m32c/prologue.md (eh_return): Emit a barrier here.
14735         (eh_epilogue): Add a "(return)" here as a hint to other parts of
14736         the compiler.
14737
14738 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
14739
14740         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
14741         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
14742         (general_or_i64_p, sparc_register_move_cost): New function.
14743
14744 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14745
14746         * doc/install.texi (Configuration, --enable-threads): Remove mach.
14747         Add lynx, mipssde.  Sort table.
14748
14749 2011-04-19  Xinliang David Li  <davidxl@google.com>
14750
14751         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
14752         not negative.
14753
14754 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
14755
14756         PR target/48678
14757         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
14758         is a SUBREG with non-MODE_INT mode inside of it.
14759
14760 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14761
14762         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
14763         also according to actual contants.
14764         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
14765         (gimple_fold_call): Use it.
14766         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
14767
14768 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14769
14770         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
14771         non-pointer assignments.
14772
14773 2011-04-19  Martin Jambor  <mjambor@suse.cz>
14774
14775         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
14776         account anc_offset and otr_type from the indirect edge info.
14777         * ipa-prop.c (get_ancestor_addr_info): New function.
14778         (compute_complex_ancestor_jump_func): Assignment analysis moved to
14779         get_ancestor_addr_info, call it.
14780         (ipa_note_param_call): Do not initialize information about polymorphic
14781         calls, return the indirect call graph edge.  Remove the last
14782         parameter, adjust all callers.
14783         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
14784         parameters.  Initialize polymorphic information in the indirect edge.
14785
14786 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14787
14788         PR lto/48148
14789         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
14790         the types if they have different enumeration identifiers.
14791
14792 2011-04-19  Jan Hubicka  <jh@suse.cz>
14793
14794         * cgraph.h (cgraph_optimize_for_size_p): Declare.
14795         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
14796         * predict.c (cgraph_optimize_for_size_p): Break out from ...
14797         (optimize_function_for_size_p) ... here.
14798
14799 2011-04-19  Richard Guenther  <rguenther@suse.de>
14800
14801         PR lto/48207
14802         * tree.c (free_lang_data): Do not reset the decl-assembler-name
14803         langhook.
14804
14805 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
14806
14807         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
14808         if DECL_NO_INLINE_WARNING_P is set on the function.
14809
14810 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
14811
14812         PR fortran/47976
14813         * reload1.c (inc_for_reload): Return void. All callers changed.
14814         (emit_input_reload_insns): Don't try to delete previous output
14815         reloads to a register, or record spill_reg_store for autoincs.
14816
14817 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
14818
14819         * gengtype.h: Updated copyright year.
14820         (struct input_file_st): Add inpisplugin field.
14821         (type_fileloc): New function.
14822         * gengtype.c
14823         (write_typed_struct_alloc_def): Add gcc_assert.
14824         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
14825         (write_typed_alloc_defns): Don't output for plugin files.
14826         (input_file_by_name): Clear inpisplugin field.
14827         (main): Set inpisplugin field for plugin files.
14828
14829 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
14830
14831         * gengtype-state.c (string_eq): New.
14832         (read_state): Use string_eq instead of strcmp when creating the
14833         state_ident_tab.
14834
14835 2011-04-19  Wei Guozhi  <carrot@google.com>
14836
14837         PR target/47855
14838         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
14839         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
14840         linkage.
14841         * config/arm/constraints.md (Uu): New constraint.
14842         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
14843
14844 2011-04-19  Tristan Gingold  <gingold@adacore.com>
14845
14846         * config.gcc (-*-*-*vms): Added.
14847         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
14848         definitions moved.
14849         * config/vms/vms-ld.c: New file.
14850         * config/vms/vms-ar.c: New file.
14851         * config/vms/t-vmsnative: New file.
14852
14853 2011-04-18  Xinliang David Li  <davidxl@google.com>
14854
14855         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
14856
14857 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
14858
14859         PR middle-end/48661
14860         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
14861         if TREE_TYPE (v) is non-NULL.
14862
14863         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
14864         gimple_get_virt_mehtod_for_binfo.
14865         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
14866         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
14867         callers.
14868         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
14869
14870 2011-04-18  Michael Matz  <matz@suse.de>
14871             Steve Ellcey  <sje@cup.hp.com>
14872
14873         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
14874         use its mode as source mode if it isn't VOIDmode.
14875
14876 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
14877
14878         * doc/passes.texi: Fill crossref nodes.
14879
14880 2011-04-18  Jim Meyering  <meyering@redhat.com>
14881
14882         Fix doubled-word typos in comments and strings
14883         * config/alpha/vms-unwind.h: s/for for/for/
14884         * config/arm/unwind-arm.h: Likewise.
14885         * config/microblaze/microblaze.c: Likewise.
14886         * config/sh/constraints.md: s/in in/in/
14887         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
14888
14889 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
14890
14891         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
14892         (AVX_FLOAT_MODE_P): Ditto.
14893         (AVX128_VEC_FLOAT_MODE_P): Ditto.
14894         (AVX256_VEC_FLOAT_MODE_P): Ditto.
14895         (AVX_VEC_FLOAT_MODE_P): Ditto.
14896         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
14897         (UNSPEC_MASKSTORE): Ditto.
14898         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
14899         Merge from <sse>_movmsk<ssemodesuffix> and
14900         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
14901         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
14902         iterator.
14903         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
14904         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
14905         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
14906
14907 2011-04-18  Jan Hubicka  <jh@suse.cz>
14908
14909         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
14910
14911         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
14912         (want_inline_function_called_once_p): Break out the logic from
14913         ipa_inline.
14914         (edge_badness): Ensure that profile is not misupdated.
14915         (lookup_recursive_calls): Prioritize by call frequencies.
14916         (inline_small_functions): Move program size estimates here;
14917         actually process whole queue even when unit growth has been
14918         met. (to properly compute inline_failed reasons and for the
14919         case unit size decrease.) Revisit comments on recursive inlining.
14920         (ipa_inline): Remove unit summary code; first inline hot calls
14921         of functions called once, cold calls next.
14922         (order, nnodes): Remove unused variables.
14923         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
14924         (GTFILES): Remove ipa-inline.c
14925         * sel-sched.c (fill_insns): Silence uninitialized var warning.
14926
14927 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14928
14929         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
14930
14931 2011-04-18  Jie Zhang  <jie@codesourcery.com>
14932             Richard Earnshaw  <rearnsha@arm.com>
14933
14934         * arm.c (neon_builtin_type_bits): Remove.
14935         (typedef enum neon_builtin_mode): New.
14936         (T_MAX): Don't define.
14937         (typedef enum neon_builtin_datum): Remove bits, codes[],
14938         num_vars and base_fcode.  Add mode, code and fcode.
14939         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
14940         VAR10): Change accordingly.
14941         (neon_builtin_data[]): Change accordingly
14942         (arm_init_neon_builtins): Change accordingly.
14943         (neon_builtin_compare): Remove.
14944         (locate_neon_builtin_icode): Remove.
14945         (arm_expand_neon_builtin): Change accordingly.
14946
14947         * arm.h (enum arm_builtins): Move to ...
14948         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
14949
14950         * arm.c (arm_builtin_decl): Declare.
14951         (TARGET_BUILTIN_DECL): Define.
14952         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
14953         (arm_builtin_decls[]): New.
14954         (arm_init_neon_builtins): Store builtin declarations in
14955         arm_builtin_decls[].
14956         (arm_init_tls_builtins): Likewise.
14957         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
14958         (arm_builtin_decl): New.
14959
14960 2011-04-18  Richard Guenther  <rguenther@suse.de>
14961
14962         * tree.c (upper_bound_in_type): Build properly canonicalized
14963         INTEGER_CSTs.
14964         (lower_bound_in_type): Likewise.
14965
14966 2011-04-18  Richard Guenther  <rguenther@suse.de>
14967
14968         * gimple.h (gimple_call_addr_fndecl): New function.
14969         (gimple_call_fndecl): Use it.
14970         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
14971         for direct calls.
14972         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
14973         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
14974
14975 2011-04-18  Richard Guenther  <rguenther@suse.de>
14976
14977         PR middle-end/48650
14978         * tree.c (build_string): STRING_CST is now derived from tree_typed.
14979
14980 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
14981
14982         PR lto/48492
14983         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
14984         DECL_IN_CONSTANT_POOL without RTL.
14985
14986 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
14987             Ira Rosen  <ira.rosen@linaro.org>
14988
14989         PR target/48252
14990         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
14991         to match neon_vzip/vuzp/vtrn_internal.
14992         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
14993         outputs explicitly dependent on both inputs.
14994         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
14995
14996 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
14997
14998         PR tree-optimization/48616
14999         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
15000         whether the shift is by scalar or vector based on whether all SLP
15001         scalar stmts have the same rhs.
15002
15003 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
15004
15005         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
15006         memory operands.
15007
15008 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
15009
15010         PR target/43700
15011         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
15012         registers.
15013
15014 2011-04-17  Jan Hubicka  <jh@suse.cz>
15015
15016         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
15017         * cgrpahunit.c (cgraph_finalize_function): Do not set
15018         finalized_by_frontend.
15019         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
15020         finalized_by_frontend.
15021
15022 2011-04-17  Jan Hubicka  <jh@suse.cz>
15023
15024         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
15025         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
15026         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
15027         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
15028         method.
15029         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
15030         gimple-fold.c
15031         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
15032
15033 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
15034
15035         PR lto/48538
15036         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
15037         is non-null before accessing it.
15038         (input_cgraph): Remove trailing spaces.
15039
15040 2011-04-17  Revital Eres  <revital.eres@linaro.org>
15041
15042         * params.def (sms-min-sc): New param flag.
15043         * modulo-sched.c (sms_schedule): Use it.
15044         * doc/invoke.texi (sms-min-sc): Document it.
15045
15046 2011-04-17  Jan Hubicka  <jh@suse.cz>
15047
15048         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
15049         present, also set gimple_call_set_cannot_inline.
15050         * ipa-inline.c: Update toplevel comment.
15051         (MAX_TIME): Remove.
15052         (cgraph_clone_inlined_nodes): Fix linebreaks.
15053         (cgraph_check_inline_limits): Restructure to ...
15054         (caller_growth_limits): ... this one; be more tolerant
15055         on growth in nested inline chains; add explanatory comment;
15056         fix stack accounting thinko introduced by previous patch.
15057         (cgraph_default_inline_p): Remove.
15058         (report_inline_failed_reason): New function.
15059         (can_inline_edge_p): New function.
15060         (can_early_inline_edge_p): New function.
15061         (leaf_node_p): Move upwards in file.
15062         (want_early_inline_function_p): New function.
15063         (want_inline_small_function_p): New function.
15064         (want_inline_self_recursive_call_p): New function.
15065         (cgraph_edge_badness): Rename to ...
15066         (edge_badness) ... this one; fix linebreaks.
15067         (update_edge_key): Update call of edge_baddness; add
15068         detailed dump about queue updates.
15069         (update_caller_keys): Use can_inline_edge_p and
15070         want_inline_small_function_p.
15071         (cgraph_decide_recursive_inlining): Rename to...
15072         (recursive_inlining): Use can_inline_edge_p and
15073         want_inline_self_recursive_call_p; simplify and remove no longer
15074         valid FIXME.
15075         (cgraph_set_inline_failed): Remove.
15076         (add_new_edges_to_heap): Use can_inline_edge_p and
15077         want_inline_small_function_p.
15078         (cgraph_decide_inlining_of_small_functions): Rename to ...
15079         (inline_small_functions): ... this one; cleanup; use
15080         can/want predicates; cleanup debug ouput; work edges till fibheap
15081         is exhausted and do not stop once unit growth is reached; remove
15082         later loop processing remaining edges.
15083         (cgraph_flatten): Rename to ...
15084         (flatten_function): ... this one; use can_inline_edge_p
15085         and can_early_inline_edge_p predicates.
15086         (cgraph_decide_inlining): Rename to ...
15087         (ipa_inline): ... this one; remove unreachable nodes before
15088         inlining functions called once; simplify the pass.
15089         (cgraph_perform_always_inlining): Rename to ...
15090         (inline_always_inline_functions): ... this one; use
15091         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
15092         (cgraph_decide_inlining_incrementally): Rename to ...
15093         (early_inline_small_functions): ... this one; simplify
15094         using new predicates; cleanup; make dumps prettier.
15095         (cgraph_early_inlining): Rename to ...
15096         (early_inliner): newer inline regular functions into always-inlines;
15097         fix updating of call stmt summaries.
15098         (pass_early_inline): Update for new names.
15099         (inline_transform): Fix formating.
15100         (gate_cgraph_decide_inlining): Rename to ...
15101         (pass_ipa_inline): ... this one.
15102         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
15103         * ipa-inline-analysis.c (dump_inline_summary): Update.
15104         (compute_inline_parameters): Do not compute disregard_inline_limits;
15105         look for mismatching arguments.
15106         (estimate_growth): Fix handlig of non-trivial self recursion.
15107         (inline_read_summary): Do not read info->disregard_inline_limits.
15108         (inline_write_summary): Do not write info->disregard_inline_limits.
15109         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
15110         and move all checks into can_inline_edge_p predicate; re-enable code
15111         comparing optimization levels.
15112         (expand_call_inline): Do not test inline_forbidden_into_p.
15113         * Makefile.in (ipa-inline.o): Update arguments.
15114
15115 2011-04-17  Revital Eres  <revital.eres@linaro.org>
15116
15117         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
15118
15119 2011-04-17  Revital Eres  <revital.eres@linaro.org>
15120
15121         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
15122
15123 2011-04-17  Michael Matz  <matz@suse.de>
15124
15125         PR tree-optimization/48622
15126         PR lto/48645
15127         * ipa-inline-analysis.c (inline_read_summary): Read size/time
15128         in same order as they're written.
15129
15130 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15131
15132         * config/pa/predicates.md: Reorganize and simplify predicates.
15133         Eliminate duplicate code checks.
15134         (arith_operand): Rename to arith14_operand
15135         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
15136         * config/pa/pa.md: Use renamed operands.
15137         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
15138         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
15139         arith11_operand, adddi3_operand, indexed_memory_operand,
15140         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
15141         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
15142         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
15143         move_dest_operand, move_src_operand, prefetch_cc_operand,
15144         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
15145         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
15146         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
15147         div_operand, int5_operand, movb_comparison_operator,
15148         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
15149         arith_double_operand, ireg_operand, lhs_lshift_operand,
15150         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
15151         integer_store_memory_operand): Likewise.
15152         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
15153         (integer_store_memory_operand, read_only_operand,
15154         function_label_operand, borx_reg_operand,
15155         non_hard_reg_operand): Likewise.
15156         (eq_neq_comparison_operator): Delete unused operator.
15157         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
15158         function_label_operand.
15159         (emit_move_sequence): Likewise.
15160
15161 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
15162
15163         * config/i386/sse.md (sseunpackmode): New mode attribute.
15164         (ssepackmode): Ditto.
15165         (vec_pack_trunc_<mode>): Macroize expander from
15166         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
15167         (vec_unpacks_lo_<mode>): Macroize expander from
15168         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
15169         (vec_unpacks_hi_<mode>): Macroize expander from
15170         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
15171         (vec_unpacku_lo_<mode>): Macroize expander from
15172         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
15173         (vec_unpacku_hi_<mode>): Macroize expander from
15174         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
15175         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
15176         ix86_expand_sse4_unpack.
15177         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
15178
15179 2011-04-16  Jan Hubicka  <jh@suse.cz>
15180
15181         * cgraphbuild.c: Include ipa-inline.h.
15182         (reset_inline_failed): Use initialize_inline_failed.
15183         * cgraph.c: Include ipa-inline.h.
15184         (cgraph_create_node_1): Do not initialize estimated_growth.
15185         (initialize_inline_failed): More to ipa-inline-analysis.c
15186         (dump_cgraph_node): Do not dump inline flags.
15187         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
15188         and disregard_inline_limits flags.
15189         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
15190         time, size, estimated_growth.
15191         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
15192         Update.
15193         * cgraphunit.c (cgraph_decide_is_function_needed): Use
15194         DECL_DISREGARD_INLINE_LIMITS.
15195         (cgraph_analyze_function): Do not initialize
15196         node->local.disregard_inline_limits.
15197         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
15198         inlinable, versionable and disregard_inline_limits.
15199         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
15200         cgraph_check_inline_limits, cgraph_default_inline_p,
15201         cgraph_edge_badness, update_caller_keys, update_callee_keys,
15202         add_new_edges_to_heap): Update.
15203         (cgraph_decide_inlining_of_small_function): Update; set
15204         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
15205         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
15206         cgraph_decide_inlining_incrementally): Update.
15207         * ipa-inline.h (inline_summary): Add inlinable, versionable,
15208         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
15209         time, size and estimated_growth parameters.
15210         (estimate_edge_growth): Update.
15211         (initialize_inline_failed): Declare.
15212         * ipa-split.c: Include ipa-inline.h
15213         (execute_split_functions): Update.
15214         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
15215         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
15216         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
15217         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
15218         estimated_growth to INT_MIN.
15219         (inline_node_duplication_hook): Likewise.
15220         (dump_inline_summary): Dump new fields.
15221         (compute_inline_parameters): Update.
15222         (estimate_edge_time, estimate_time_after_inlining,
15223         estimate_size_after_inlining, estimate_growth, inline_read_summary,
15224         inline_write_summary):
15225         (initialize_inline_failed): Move here from cgraph.c.
15226         * tree-sra.c: Include ipa-inline.h.
15227         (ipa_sra_preliminary_function_checks): Update.
15228         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
15229         ipa-inline.h.
15230
15231 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
15232
15233         * config/i386/sse.md (V16): New mode iterator.
15234         (VI1, VI8): Ditto.
15235         (AVXMODEQI, AVXMODEDI): Remove.
15236         (sse2, sse3): New mode attribute.
15237         (mov<mode>): Use V16 mode iterator.
15238         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
15239         (push<mode>1): Use V16 mode iterator.
15240         (movmisalign<mode>): Ditto.
15241         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
15242         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
15243         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
15244         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
15245         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
15246         avx_movdqu<avxmodesuffix>.
15247         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
15248         *avx_movdqu<avxmodesuffix>.
15249         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
15250         avx_lddqu<avxmodesuffix>.
15251         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
15252         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
15253         avx_movnt<AVXMODEDI:mode>.
15254         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
15255         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
15256
15257 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
15258
15259         PR target/48629
15260         * haifa-sched.c (prune_ready_list, schedule_block): Use
15261         sched_pressure_p rather than flag_sched_pressure.
15262
15263 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
15264
15265         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15266         cgraph_get_node instead of cgraph_get_create_node.
15267
15268 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
15269
15270         * cfgexpand.c (expand_debug_expr): Use
15271         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
15272
15273 2011-04-15  Michael Matz  <matz@suse.de>
15274
15275         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
15276         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
15277         * function.c (gimplify_parameters): Ditto.
15278         * gimplify.c (gimplify_vla_decl): Ditto.
15279
15280         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
15281         (gimple_call_set_alloca_for_var): New inline function.
15282         (gimple_call_alloca_for_var_p): Ditto.
15283         * gimple.c (gimple_build_call_from_tree): Remember
15284         CALL_ALLOCA_FOR_VAR_P state.
15285         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
15286
15287         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
15288         calls if they were for VLA objects.
15289
15290 2011-04-15  Martin Jambor  <mjambor@suse.cz>
15291
15292         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
15293         of ADR_EXPRs.
15294
15295 2011-04-15  Martin Jambor  <mjambor@suse.cz>
15296
15297         PR middle-end/48601
15298         * tree-emutls.c (lower_emutls_function_body): Call
15299         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
15300         result is non-NULL.
15301
15302 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
15303
15304         * c-decl.c (detect_field_duplicates): Call
15305         objc_detect_field_duplicates instead of objc_get_interface_ivars.
15306
15307 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
15308
15309         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
15310         * gimple.c (gimple_asm_clobbers_memory_p): Define.
15311         * ipa-pure-const.c (check_stmt): Call it.
15312         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
15313
15314 2011-04-15  Richard Guenther  <rguenther@suse.de>
15315
15316         PR tree-optimization/48290
15317         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
15318         Properly decide inhibiting propagation based on the valueized
15319         operand.  Do loop-closed SSA form preserving here ...
15320         (init_copy_prop): ... not here.
15321
15322 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
15323
15324         PR target/48612
15325         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
15326         (*ieee_smax<mode>3): Likewise.
15327
15328 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15329
15330         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
15331         Replace match_operand with match_dup for the third operand in
15332         these expanders.
15333
15334 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
15335
15336         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
15337         to track processing of conditionals.  Update all callers.
15338         (try_combine, simplify_if_then_else): Update.
15339
15340 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
15341
15342         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
15343         -fsched-pressure.
15344
15345 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
15346
15347         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
15348         instead of match_operand for operand 3.
15349
15350 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
15351
15352         * recog.h (insn_operand_data): Add an "allows_mem" field.
15353         * genoutput.c (output_operand_data): Initialize it.
15354         * optabs.c (maybe_legitimize_operand_same_code): New function.
15355         (maybe_legitimize_operand): Use it when matching the original
15356         op->value.
15357
15358 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15359
15360         * gimplify.c: Fix issues in comments throughout.
15361         (voidify_wrapper_expr): Fix long line.
15362         (build_stack_save_restore): Likewise.
15363         (gimplify_loop_expr): Likewise.
15364         (gimplify_compound_lval): Likewise.
15365         (gimplify_init_ctor_eval): Likewise.
15366         (gimplify_modify_expr_rhs): Likewise.
15367         (omp_notice_threadprivate_variable): Likewise.
15368
15369 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
15370
15371         * cfgexpand.c (expand_call_stmt): Convert the function type to the
15372         original one if this is not a builtin function.
15373
15374 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
15375
15376         PR target/48605
15377         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
15378         offset it as needed based on top 2 bits in operands[3], change
15379         MEM mode to SFmode and mask those 2 bits away from operands[3].
15380
15381 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
15382
15383         * c-parser.c (c_parser_objc_protocol_definition): Updated for
15384         change from objc_declare_protocols() to objc_declare_protocol().
15385
15386 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
15387
15388         * config/i386/sse.md (sse4_1): New mode attribute.
15389         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
15390         avx_blend<ssemodesuffix><avxmodesuffix> and
15391         sse4_1_blend<ssemodesuffix> using VF mode iterator.
15392         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
15393         avx_blendv<ssemodesuffix><avxmodesuffix> and
15394         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
15395         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
15396         avx_dp<ssemodesuffix><avxmodesuffix> and
15397         sse4_1_dp<ssemodesuffix> using VF mode iterator.
15398         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
15399         (sse4_1_packusdw): Merge with *avx_packusdw.
15400         (sse4_1_pblendvb): Merge with *avx_pblendvb.
15401         (sse4_1_pblendw): Merge with *avx_pblendw.
15402         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
15403         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
15404         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
15405         VF mode iterator.
15406         (sse4_1_round<ssescalarmodesuffix>): Merge with
15407         *avx_round<ssescalarmodesuffix>.
15408         (aesenc): Merge with *avx_aesenc.
15409         (aesenclast): Merge with *avx_aesenclast.
15410         (aesdec): Merge with *avx_aesdec.
15411         (aesdeclast): Merge with *avx_aesdeclast.
15412         (pclmulqdq): Merge with *pclmulqdq.
15413         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
15414         New predicate.
15415         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
15416
15417 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
15418
15419         PR middle-end/48608
15420         * cfgexpand.c (get_decl_align_unit): Renamed to ...
15421         (align_local_variable): This.  Update DECL_ALIGN.
15422         (add_stack_var): Updated.
15423         (expand_one_stack_var): Likewise.
15424
15425 2011-04-14  Richard Guenther  <rguenther@suse.de>
15426
15427         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
15428         Remove.
15429         (dse_initialize_block_local_data, dse_leave_block,
15430         record_voperand_set, get_stmt_uid): Likewise.
15431         (dse_possible_dead_store_p): Allow any kind of killing stmt.
15432         (dse_optimize_stmt): Remove voperand set handling code.
15433         Simplify and improve to handle any kind of killing stmt.
15434         (dse_record_phi): Remove.
15435         (dse_enter_block): Simplify.
15436         (tree_ssa_dse): Likewise.
15437         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
15438
15439 2011-04-14  Jan Hubicka  <jh@suse.cz>
15440
15441         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
15442         * cgraph.h (struct inline_summary): Move to ipa-inline.h
15443         (cgraph_local_info): Remove inline_summary.
15444         * ipa-cp.c: Include ipa-inline.h.
15445         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
15446         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
15447         accesor.
15448         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
15449         (input_overwrite_node): Do not set inline summary.
15450         (input_node): Do not stream inline summary.
15451         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
15452         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
15453         growth; we do not have inline parameters computed for that anyway.
15454         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
15455         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
15456         (inline_summary_t): New type and VECtor.
15457         (debug_inline_summary, dump_inline_summaries): Declare.
15458         (inline_summary): Use VOCtor.
15459         (estimate_edge_growth): Kill hack computing call stmt size directly.
15460         * lto-section-in.c (lto_section_name): Add inline section.
15461         * ipa-inline-analysis.c: Include lto-streamer.h
15462         (node_removal_hook_holder, node_duplication_hook_holder): New holders
15463         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
15464         (inline_summary_vec): Define.
15465         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
15466         dump_inline_summaries): New functions.
15467         (estimate_function_body_sizes): Properly compute size/time of outgoing
15468         calls.
15469         (compute_inline_parameters): Alloc inline_summary; do not compute
15470         size/time of incomming calls.
15471         (estimate_edge_time): Avoid missing time summary hack.
15472         (inline_read_summary): Read inline summary info.
15473         (inline_write_summary): Write inline summary info.
15474         (inline_free_summary): Free all hooks and inline summary vector.
15475         * lto-streamer.h: Add LTO_section_inline_summary section.
15476         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
15477         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
15478
15479 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15480
15481         * tree-vectorizer.h (vect_strided_store_supported): Add a
15482         HOST_WIDE_INT argument.
15483         (vect_strided_load_supported): Likewise.
15484         (vect_permute_store_chain): Return void.
15485         (vect_transform_strided_load): Likewise.
15486         (vect_permute_load_chain): Delete.
15487         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
15488         count argument.  Check that the count is a power of two.
15489         (vect_strided_load_supported): Likewise.
15490         (vect_permute_store_chain): Return void.  Update after above changes.
15491         Assert that the access is supported.
15492         (vect_permute_load_chain): Likewise.
15493         (vect_transform_strided_load): Return void.
15494         * tree-vect-stmts.c (vectorizable_store): Update calls after
15495         above interface changes.
15496         (vectorizable_load): Likewise.
15497         (vect_analyze_stmt): Don't check for strided powers of two here.
15498
15499 2011-04-14  Richard Guenther  <rguenther@suse.de>
15500
15501         PR tree-optimization/48590
15502         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
15503         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15504         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
15505         BUILT_IN_STACK_SAVE.
15506         * tree-ssa-dce.c (propagate_necessity): Handle
15507         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
15508
15509 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
15510
15511         * c-parser.c (c_parser_objc_class_declaration): Updated call to
15512         objc_declare_class.
15513
15514 2011-04-14  Richard Guenther  <rguenther@suse.de>
15515
15516         * tree.h (get_object_alignment_1): Declare.
15517         * builtins.c (get_object_alignment_1): Split out worker from ...
15518         (get_object_alignment): ... here.
15519         * fold-const.c (get_pointer_modulus_and_residue): Use
15520         get_object_alignment_1.
15521
15522 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15523
15524         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
15525         type parameter.
15526         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
15527         parameter.  Generalise code to handle arrays as well as vectors.
15528         (vect_setup_realignment): Update accordingly.
15529         * tree-vect-stmts.c (vectorizable_store): Likewise.
15530         (vectorizable_load): Likewise.
15531
15532 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15533
15534         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
15535         within the per-copy loop.
15536
15537 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15538
15539         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
15540         in the dump file.
15541
15542 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
15543
15544         * doc/options.texi (Negative): Explicitly mention that the
15545         Negative chain must be circular.
15546
15547 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
15548
15549         * function.h (block_chainon): Declare.
15550         * function.c (block_chainon): Define.
15551
15552 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
15553             Eric Weddington  <eric.weddington@atmel.com>
15554             Georg-Johann Lay  <avr@gjlay.de>
15555
15556         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
15557         New Includes
15558         (avr_init_builtins, avr_expand_builtin,
15559         avr_expand_delay_cycles, avr_expand_unop_builtin,
15560         avr_expand_binop_builtin ): New functions.
15561         (avr_builtin_id): New enum
15562         (struct avr_builtin_description): New struct
15563         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
15564         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
15565
15566         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
15567         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
15568         UNSPECV_DELAY_CYCLES): new enumeration values
15569         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
15570         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
15571         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
15572         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
15573         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
15574         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
15575         "fmulsu"): New insns
15576
15577         * config/avr/avr-c.c: fix line endings
15578         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
15579         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
15580         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
15581         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
15582         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
15583
15584         * doc/extend.texi (AVR Built-in Functions): New node
15585         (Target Builtins): Add documentation of AVR
15586         built-in functions.
15587
15588 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
15589
15590         PR target/44643
15591         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
15592         alone. Error if non-const data has attribute progmem.
15593
15594 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15595
15596         * tree.h (struct tree_constructor): Include tree_typed instead of
15597         tree_common.
15598         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
15599         TS_TYPED instead of TS_COMMON.
15600
15601 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
15602
15603         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
15604         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
15605         (sse2_psadbw): Merge with *avx_psadbw.
15606         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
15607         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
15608         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
15609         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
15610         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
15611         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
15612         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
15613         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
15614         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
15615         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
15616         (ssse3_palignrti): Merge with *avx_palignrti.
15617
15618 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15619
15620         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
15621         * tree-ssanames.c (fini_ssanames): VEC_free it.
15622         (make_ssa_name_fn): Update for VECness of free_ssanames.
15623         (release_ssa_name, release_dead_ssa_names): Likewise.
15624         * tree.h (struct tree_ssa_name): Include tree_typed instead of
15625         tree_common.
15626         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
15627         TS_TYPED instead of TS_COMMON.
15628
15629 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15630
15631         * postreload-gcse.c (gcse_after_reload_main): Add calls to
15632         statistics_counter_event.
15633         * tree-ssa-copyrename.c (stats): Define.
15634         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
15635         statistics_counter_event.
15636         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
15637         (bswap_stats, widen_mul_stats): Define.
15638         (insert_reciprocals): Increment rdivs_inserted.
15639         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
15640         rfuncs_inserted.  Add calls to statistics_counter_event.
15641         (execute_cse_sincos_1): Increment inserted.
15642         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
15643         statistics_counter_event.
15644         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
15645         of bswap_stats.  Add calls to statistics_counter_event.
15646         (convert_mult_to_widen): Increment widen_mults_inserted.
15647         (convert_plusminus_to_widen): Increment maccs_inserted.
15648         (convert_mult_to_fma): Increment fmas_inserted.
15649         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
15650         calls to statistics_counter_event.
15651
15652 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
15653
15654         PR rtl-optimization/48455
15655         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
15656         `temp_costs->mem_cost'.
15657
15658 2011-04-13  Jan Hubicka  <jh@suse.cz>
15659
15660         * ipa-inline.h: New file.
15661         * ipa-inline-analysis.c: New file. Broken out of ...
15662         * ipa-inline.c: ... this file; update toplevel comment;
15663         include ipa-inline.h
15664         (inline_summary): Move to ipa-inline.h
15665         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
15666         ipa-inline-analysis.c.
15667         (cgraph_estimate_time_after_inlining): Rename to
15668         estiamte_time_after_inlining; move to ipa-inline-analysis.c
15669         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
15670         to estimate_edge_growth.
15671         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
15672         rename to estimate_size_after_inlining.
15673         (cgraph_mark_inline_edge): Update for new naming convention.
15674         (cgraph_check_inline_limits): Likewise.
15675         (cgraph_edge_badness): Likewise.
15676         (cgraph_decide_recursive_inlining): Likewise.
15677         (cgraph_decide_inlining_of_small_functions): Likewise.
15678         (cgraph_decide_inlining_incrementally): Likewise.
15679         (cgraph_estimate_growth): Rename to estimate_growth; move to
15680         ipa-inline-analysis.c.
15681         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
15682         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
15683         (compute_inline_parameters): Likewise.
15684         (compute_inline_parameters_for_current): Likewise.
15685         (pass_inline_parameters): Likewise.
15686         (inline_indirect_intraprocedural_analysis): Likewise.
15687         (analyze_function): Rename to inline_analyze_function; likewise.
15688         (add_new_function): Move to ipa-inline-analysis.c.
15689         (inline_generate_summary): Likewise.
15690         (inline_read_summary): Likewise.
15691         (inline_write_summary): Likewise.
15692         * Makefile.in (ipa-inline-analysis.c): New file.
15693
15694 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15695
15696         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
15697         * configure: Regenerate.
15698
15699 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
15700
15701         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
15702         instead of tree_common.
15703         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
15704         Likewise.
15705         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
15706         TS_TYPED rather than TS_COMMON.
15707         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
15708
15709 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
15710
15711         PR target/45263
15712         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
15713         r20 around calls of __tablejump_elpm__
15714
15715 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
15716
15717         PR middle-end/48591
15718         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
15719         NULL.
15720         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
15721
15722 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
15723
15724         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
15725         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
15726         (cfi_vec): New typedef.
15727         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
15728         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
15729         (cie_cfi_vec): New static variable.
15730         (cie_cfi_head): Delete.
15731         (add_cfi): Accept a cfi_vec * as first argument. All callers and
15732         declaration changed. Use vector rather than list operations.
15733         (new_cfi): Don't initialize the dw_cfi_next field.
15734         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
15735         rather than list operations.
15736         (lookup_cfa): Use vector rather than list operations.
15737         (output_cfis): New argument upto. Accept a cfi_vec rather than
15738         a dw_cfi_ref list head as argument. All callers changed.
15739         Iterate over the vector using upto as a maximum index.
15740         (output_all_cfis): New static function.
15741         (output_fde): Use vector rather than list operations. Use the
15742         new upto argument for output_cfis rather than manipulating a
15743         list.
15744         (dwarf2out_begin_prologue): Change initializations to match
15745         new struct members.
15746         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
15747         from the vector length rather than searching for the end of a list.
15748         Use output_all_cfis.
15749         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
15750
15751 2011-04-13  Nick Clifton  <nickc@redhat.com>
15752
15753         * config/rx/rx.md (movmemsi): Do not use this pattern when
15754         volatile pointers are involved.
15755
15756 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
15757
15758         * config/i386/sse.md (pinsrbits): Remove.
15759         (sse2_packsswb): Merge with *avx_packsswb.
15760         (sse2_packssdw): Merge with *avx_packssdw.
15761         (sse2_packuswb): Merge with *avx_packuswb.
15762         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
15763         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
15764         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
15765         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
15766         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
15767         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
15768         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
15769         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
15770         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
15771         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
15772         (sse2_loadld): Merge with *avx_loadld.
15773         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
15774         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
15775         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
15776         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
15777         (vec_concatv2di): Merge with *vec_concatv2di_avx.
15778
15779 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
15780
15781         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
15782         calling TREE_CHAIN.
15783         * print-tree.c (print_node): Likewise.
15784         * tree-inline.c (copy_tree_r): Likewise.
15785         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
15786         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
15787         instead of TS_COMMON.
15788         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
15789         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
15790         (copy_node_stat): Zero TREE_CHAIN only if necessary.
15791         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
15792         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
15793         ...and these...
15794         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
15795         * tree.h: ...here.
15796         (TREE_CHAIN): Check for a TS_COMMON structure.
15797         (TREE_TYPE): Check for a TS_TYPED structure.
15798
15799 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
15800
15801         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
15802         cgraph_get_create_node instead of cgraph_node.
15803
15804 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15805
15806         * c-parser.c (c_parser_initelt): Updated call to
15807         objc_build_message_expr.
15808         (c_parser_postfix_expression): Likewise.
15809
15810 2011-04-12  Kai Tietz  <ktietz@redhat.com>
15811
15812         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
15813         MASK_MS_BITFIELD_LAYOUT bit.
15814
15815 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15816
15817         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
15818         assert it is always true.
15819         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
15820         moves.
15821
15822 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
15823
15824         * c-parser.c (c_lex_one_token): Rewritten conditional used when
15825         compiling Objective-C to be more efficient.
15826
15827 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
15828
15829         * opts-common.c (decode_cmdline_options_to_array): Remove variable
15830         argv_copied.
15831
15832 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15833
15834         * recog.h, genoutput.c, optabs.c: Revert last patch.
15835
15836 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
15837
15838         PR target/48090
15839         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
15840
15841 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15842
15843         * recog.h (insn_operand_data): Add an "allows_mem" field.
15844         * genoutput.c (output_operand_data): Initialize it.
15845         * optabs.c (maybe_legitimize_operand_same_code): New function.
15846         (maybe_legitimize_operand): Use it when matching the original
15847         op->value.
15848
15849 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15850
15851         * genpreds.c (process_define_predicate): Move most processing
15852         to gensupport.c.  Continue to validate the expression.
15853         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
15854         (process_define_predicate): Move processing to gensupport.c.
15855         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
15856         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
15857         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
15858         argument.
15859         (valid_predicate_name_p): New function, split out from old
15860         genpreds.c:process_define_predicate.
15861         (process_define_predicate): New function, combining code from
15862         old genpreds.c and genrecog.c functions.
15863         (process_rtx): Call it for DEFINE_PREDICATE and
15864         DEFINE_SPECIAL_PREDICATE.
15865
15866 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
15867
15868         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
15869         size of a '%A' memory reference.
15870         (T_DREG, T_QREG): New neon_builtin_type_bits.
15871         (arm_init_neon_builtins): Assert that the load and store operands
15872         are neon_struct_operands.
15873         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
15874         (NEON_ARG_MEMORY): New builtin_arg.
15875         (neon_dereference_pointer): New function.
15876         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
15877         Handle NEON_ARG_MEMORY.
15878         (arm_expand_neon_builtin): Update after above interface changes.
15879         Use NEON_ARG_MEMORY for loads and stores.
15880         * config/arm/predicates.md (neon_struct_operand): New predicate.
15881         * config/arm/iterators.md (V_two_elem): Tweak formatting.
15882         (V_three_elem): Use BLKmode for accesses that have no associated mode.
15883         (V_four_elem): Tweak formatting.
15884         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
15885         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
15886         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
15887         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
15888         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
15889         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
15890         (neon_vst4<mode>): Replace pointer operand with a memory operand.
15891         Use %A in the output template.
15892         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
15893         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
15894         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
15895         the width of the memory access.  Remove post-increment.
15896         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
15897
15898 2011-04-12  Nick Clifton  <nickc@redhat.com>
15899
15900         * config/v850/v850.c (expand_prologue): Do not use the CALLT
15901         instruction for interrupt handlers if the target is the basic V850
15902         architecture.
15903         (expand_epilogue): Likewise.
15904
15905 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15906
15907         PR rtl-optimization/48549
15908         * combine.c (propagate_for_debug): Also stop after BB_END of
15909         this_basic_block.  Process LAST and just stop processing after it.
15910         (combine_instructions): If last_combined_insn has been deleted,
15911         set last_combined_insn to its PREV_INSN.
15912
15913 2011-04-12  Richard Guenther  <rguenther@suse.de>
15914
15915         PR tree-optimization/46076
15916         * gimple.h (struct gimple_statement_call): Add fntype field.
15917         (gimple_call_fntype): Adjust.
15918         (gimple_call_set_fntype): New function.
15919         * gimple.c (gimple_build_call_1): Set the call function type.
15920         * gimplify.c (gimplify_call_expr): Preserve the function
15921         type the frontend used for the call.
15922         (gimplify_modify_expr): Likewise.
15923         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
15924         function type.
15925         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
15926         function type.
15927         * tree-ssa.c (useless_type_conversion_p): Function pointer
15928         conversions are useless.
15929
15930 2011-04-12  Martin Jambor  <mjambor@suse.cz>
15931
15932         * cgraph.h (cgraph_node): Remove function declaration.
15933         (cgraph_create_node): Declare.
15934         (cgraph_get_create_node): Likewise.
15935         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
15936         Updated all callers.
15937         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
15938         the decl does not already exist.  Call cgraph_get_create_node instead
15939         of cgraph_node.
15940         (cgraph_get_create_node): New function.
15941         (cgraph_same_body_alias): Update comment.
15942         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
15943         assert it does not return NULL.
15944         (cgraph_update_edges_for_call_stmt): Likewise.
15945         (cgraph_clone_edge): Likewise.
15946         (cgraph_create_virtual_clone): Likewise.
15947         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
15948         instead of cgraph_node.
15949         (cgraph_add_new_function): Call cgraph_create_node or
15950         cgraph_get_create_node instead of cgraph_node.
15951         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
15952         instead of cgraph_node.
15953         (record_eh_tables): Likewise.
15954         (mark_address): Likewise.
15955         (mark_load): Likewise.
15956         (build_cgraph_edges): Call cgraph_get_create_node instead
15957         of cgraph_node.
15958         (rebuild_cgraph_edges): Likewise.
15959         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
15960         instead of cgraph_node.
15961         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
15962         cgraph_node.
15963         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
15964         cgraph_create_node instead of cgraph_node.
15965         * c-decl.c (finish_function): Call cgraph_get_create_node instead
15966         of cgraph_node.
15967         * lto-cgraph.c (input_node): Likewise.
15968         * lto-streamer-in.c (input_function): Likewise.
15969         * varasm.c (mark_decl_referenced): Likewise.
15970         (assemble_alias): Likewise.
15971
15972 2011-04-12  Martin Jambor  <mjambor@suse.cz>
15973
15974         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
15975         instead of cgraph_node and assert it does not return NULL.
15976         * lto-streamer-in.c (lto_read_body): Likewise.
15977         * omp-low.c (new_omp_context): Likewise.
15978         (create_task_copyfn): Likewise.
15979         * tree-emutls.c (lower_emutls_function_body): Likewise.
15980         * matrix-reorg.c (transform_allocation_sites): Likewise.
15981
15982 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
15983
15984         PR c/48552
15985         * c-typeck.c (build_asm_expr): Error out on attempts to use
15986         void type outputs or inputs for constraints that allow reg or
15987         don't allow memory.
15988
15989 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
15990             Richard Earnshaw  <rearnsha@arm.com>
15991
15992         PR target/48250
15993         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
15994         to use sign-magnitude offsets. Reject unsupported unaligned
15995         cases. Add detailed description in comments.
15996         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
15997         condition from TARGET_32BIT to TARGET_ARM.
15998
15999 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
16000
16001         * tree.h (struct typed_tree): New.
16002         (struct tree_common): Include it instead of tree_base.
16003         (TREE_TYPE): Update for new location of type field.
16004         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
16005         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
16006         (union tree_node): Add typed field.
16007         * treestruct.def (TS_TYPED): New.
16008         * lto-streamer.c (check_handled_ts_structures): Handle it.
16009         * tree.c (MARK_TS_TYPED): New macro.
16010         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
16011
16012 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
16013
16014         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
16015         (force_nonfallthru): Do not alter the loop nest if no basic block
16016         was created.
16017
16018 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
16019
16020         * config/i386/sse.md (VI): New mode iterator.
16021         (SSEMODEI): Remove.
16022         (AVX256MODEI): Ditto.
16023         (AVXMODEF4P): Ditto.
16024         (avxvecpsmode): Ditto.
16025         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
16026         (sse2_andnot<mode>3): New expander.
16027         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
16028         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
16029         (<any_logic:code><mode>3): Use VI mode iterator.
16030         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
16031         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
16032         (*andnottf3): Handle AVX three-operand constraints.
16033         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
16034
16035 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16036             Robert Millan  <rmh@gnu.org>
16037
16038         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
16039         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
16040         GNU_USER_DYNAMIC_LINKER64): Define.
16041         (REG_NAME): Don't undefine.
16042         (MD_UNWIND_SUPPORT): Undefine.
16043         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
16044         (REG_NAME): Don't undefine.
16045         (MD_UNWIND_SUPPORT): Undefine.
16046         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
16047
16048 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16049
16050         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
16051         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
16052
16053 2011-04-11  Xinliang David Li  <davidxl@google.com>
16054
16055         * value-profile.c (check_ic_target): New function.
16056         (gimple_ic_transform): Sanity check indirect call target.
16057         * gimple-low.c (gimple_check_call_args): Interface change.
16058         (gimple_check_call_matching_types): New function.
16059         * tree-inline.c (tree_can_inline_p): Call new function.
16060
16061 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
16062
16063         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
16064         tree-pretty-print.h & realmpfr.h.
16065
16066 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
16067
16068         PR middle-end/48464
16069         * ira.c (setup_pressure_classes): Fix typo in loop condition.
16070         (setup_allocno_and_important_classes): Ditto.
16071
16072 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16073
16074         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
16075         GNU_USER_DYNAMIC_LINKER.
16076         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
16077         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16078         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
16079         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
16080         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
16081         GNU_USER_TARGET_OS_CPP_BUILTINS.
16082         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
16083         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16084         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
16085         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16086         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
16087         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
16088         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
16089         GNU_USER_TARGET_OS_CPP_BUILTINS.
16090         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16091         GNU_USER_DYNAMIC_LINKER.
16092         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
16093         GNU_USER_TARGET_OS_CPP_BUILTINS.
16094         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
16095         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16096         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
16097         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16098         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
16099         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
16100         GNU_USER_DYNAMIC_LINKER64): Remove.
16101         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
16102         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16103         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16104         GNU_USER_DYNAMIC_LINKER.
16105         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
16106         GNU_USER_TARGET_OS_CPP_BUILTINS.
16107         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
16108         GNU_USER_TARGET_OS_CPP_BUILTINS.
16109         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
16110         to GNU_USER_TARGET_OS_CPP_BUILTINS.
16111         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
16112         GNU_USER_TARGET_OS_CPP_BUILTINS.
16113         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
16114         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
16115         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
16116         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
16117         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16118         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16119         GNU_USER_DYNAMIC_LINKER.
16120         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
16121         GNU_USER_TARGET_OS_CPP_BUILTINS.
16122         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
16123         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16124         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16125         GNU_USER_DYNAMIC_LINKER.
16126         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
16127         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16128         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
16129         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16130         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16131         GNU_USER_DYNAMIC_LINKER.
16132         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
16133         GNU_USER_DYNAMIC_LINKERN32.
16134         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
16135         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
16136         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
16137         GNU_USER_DYNAMIC_LINKER32.
16138         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
16139         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16140         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16141         GNU_USER_DYNAMIC_LINKER.
16142         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
16143         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16144         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
16145         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16146         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
16147         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
16148         GNU_USER_DYNAMIC_LINKER32.
16149         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
16150         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
16151         GNU_USER_DYNAMIC_LINKER.
16152         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
16153         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16154         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
16155         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
16156         GNU_USER_DYNAMIC_LINKER64.
16157         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
16158         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16159         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16160         GNU_USER_DYNAMIC_LINKER.
16161         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
16162         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16163         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
16164         GNU_USER_DYNAMIC_LINKER.
16165         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
16166         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16167         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
16168         GNU_USER_DYNAMIC_LINKER32.
16169         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
16170         GNU_USER_DYNAMIC_LINKER64.
16171         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
16172         GNU_USER_DYNAMIC_LINKER64.
16173         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
16174         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16175         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
16176         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
16177         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
16178
16179 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16180
16181         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
16182         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
16183         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
16184         GNU_USER_DYNAMIC_LINKER.
16185         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
16186         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
16187         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
16188         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
16189         GNU_USER_DYNAMIC_LINKER64.
16190         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
16191         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
16192         GNU_USER_LINK_EMULATION.
16193         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
16194         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
16195         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
16196         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
16197         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
16198         CPP_SPEC, CC1_SPEC): Remove.
16199         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
16200         (GNU_USER_DYNAMIC_LINKER): Define.
16201         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
16202         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
16203         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
16204         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
16205         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
16206         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
16207         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
16208         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
16209         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
16210         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
16211         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
16212         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
16213         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
16214         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
16215         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
16216         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
16217         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16218         GNU_USER_DYNAMIC_LINKER.
16219         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16220         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
16221         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16222         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
16223         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
16224         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
16225         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
16226         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
16227         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
16228         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
16229
16230 2011-04-11  Kai Tietz  <ktietz@redhat.com>
16231
16232         PR target/9601
16233         PR target/11772
16234         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
16235         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
16236         comment.
16237         (ix86_is_msabi_thiscall): Removed.
16238         (ix86_is_type_thiscall): Likewise.
16239         (ix86_get_callcvt): New function.
16240         (ix86_comp_type_attributes): Simplify check.
16241         (ix86_function_regparm): Use ix86_get_callcvt for calling
16242         convention attribute checks.
16243         (ix86_return_pops_args): Likewise.
16244         (ix86_static_chain): Likewise.
16245         (x86_this_parameter): Likewise.
16246         (x86_output_mi_thunk): Likewise.
16247         (ix86_function_type_abi): Optimize check for types without attributes.
16248         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
16249         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
16250         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
16251         by flag-values.
16252         (IX86_BASE_CALLCVT): Helper macro.
16253         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
16254         Use ix86_get_callcvt for calling convention attribute checks and avoid
16255         symbol-decoration for stdcall in TARGET_RTD case.
16256         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
16257         Likewise.
16258         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
16259         for declaration.
16260
16261 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
16262
16263         * config/i386/sse.md (VI_128): New mode iterator.
16264         (VI12_128): Rename from SSEMODE12.
16265         (VI14_128): Rename from SSEMODE14.
16266         (VI124_128): New mode iterator.
16267         (VI24_128): Rename from SSEMODE248.
16268         (VI248_128): Rename from SSEMODE248.
16269         (SSEMODE124C8): Remove.
16270         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16271         (*sse2_<plusminus_insn><mode>3): Merge with
16272         *avx_<plusminus_insn><mode>3.
16273         (*mulv8hi3): Merge with *avx_mulv8hi3.
16274         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
16275         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
16276         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
16277         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
16278         (ashr<mode>3): Merge with *avx_ashr<mode>3.
16279         (lshr<mode>3): Merge with *avx_lshr<mode>3.
16280         (ashl<mode>3): Merge with *avx_ashl<mode>3.
16281         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
16282         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
16283         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16284         (*<smaxmin:code>v8hi3): Ditto.
16285         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
16286         (*<smaxmin:code>v16qi3): Ditto.
16287         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
16288         (*sse2_eq<mode>3): Ditto.
16289         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
16290         (*sse2_gt<mode>3): Ditto.
16291         (vcondv2di): Split out of vcond<mode>.
16292         (vconduv2di): Split out of vcondu<mode>.
16293
16294 2011-04-11  Richard Guenther  <rguenther@suse.de>
16295
16296         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
16297         before calling tree_low_cst.
16298
16299 2011-04-11  Richard Guenther  <rguenther@suse.de>
16300
16301         * stor-layout.c (layout_type): Compute all array index size operations
16302         in the original type.
16303         (initialize_sizetypes): Add comment.
16304         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
16305
16306 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
16307
16308         * common.opt (Tbss=, Tdata=, Ttext=): New options.
16309
16310 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16311
16312         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
16313         of cgraph_node, handle NULL return value.
16314         (cgraph_global_info): Likewise.
16315         (cgraph_rtl_info): Likewise.
16316         * tree-inline.c (estimate_num_insns): Likewise.
16317         * gimplify.c (unshare_body): Likewise.
16318         (unvisit_body): Likewise.
16319         (gimplify_body): Likewise.
16320         * predict.c (optimize_function_for_size_p): Likewise.
16321         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
16322         (call_may_clobber_ref_p_1): Likewise.
16323         * varasm.c (function_section_1): Likewise.
16324         (assemble_start_function): Likewise.
16325
16326 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16327
16328         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
16329         of cgraph_node.
16330         * final.c (rest_of_clean_state): Likewise.
16331         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
16332         * passes.c (pass_init_dump_file): Likewise.
16333         (execute_all_ipa_transforms): Likewise.
16334         (function_called_by_processed_nodes_p): Likewise.
16335         * predict.c (maybe_hot_frequency_p): Likewise.
16336         (probably_never_executed_bb_p): Likewise.
16337         (compute_function_frequency): Likewise.
16338         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
16339         (unnest_nesting_tree_1): Likewise.
16340         (lower_nested_functions): Likewise.
16341         * tree-optimize.c (execute_fixup_cfg): Likewise.
16342         (tree_rest_of_compilation): Likewise.
16343         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
16344         * tree-sra.c (ipa_early_sra): Likewise.
16345         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
16346         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
16347         * ipa.c (record_cdtor_fn): Likewise.
16348         * ipa-inline.c (cgraph_early_inlining): Likewise.
16349         (compute_inline_parameters_for_current): Likewise.
16350         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
16351         * ipa-pure-const.c (local_pure_const): Likewise.
16352         * ipa-split.c (split_function): Likewise.
16353         (execute_split_functions): Likewise.
16354         * cgraphbuild.c (build_cgraph_edges): Likewise.
16355         (rebuild_cgraph_edges): Likewise.
16356         (cgraph_rebuild_references): Likewise.
16357         (remove_cgraph_callee_edges): Likewise.
16358         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
16359         (verify_cgraph_node): Likewise.
16360         (cgraph_analyze_functions): Likewise.
16361         (cgraph_preserve_function_body_p): Likewise.
16362         (save_inline_function_body): Likewise.
16363         (save_inline_function_body): Likewise.
16364         * tree-inline.c (copy_bb): Likewise.
16365         (optimize_inline_calls): Likewise.
16366
16367 2011-04-11  Martin Jambor  <mjambor@suse.cz>
16368
16369         PR tree-optimization/48195
16370         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
16371         ipa_check_create_edge_args.
16372         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
16373         ipa_check_create_edge_args.
16374         * ipa-inline.c (inline_generate_summary): Do not call
16375         ipa_check_create_node_params and ipa_check_create_edge_args.
16376         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
16377         ipa_check_create_edge_args.
16378
16379 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
16380
16381         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
16382         instead of loop.
16383         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
16384         * function.c (record_hard_reg_sets): Likewise.
16385         * ira.c (compute_regs_asm_clobbered): Likewise.
16386         * sched-deps.c (sched_analyze_1): Likewise.
16387         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
16388
16389 2011-04-09  Xinliang David Li  <davidxl@google.com>
16390
16391         PR tree-optimization/PR48484
16392         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
16393         has_valid_pred lazily
16394
16395 2011-04-09  Duncan Sands  <baldrick@free.fr>
16396
16397         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
16398
16399 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
16400
16401         * combine.c (combine_validate_cost): Adjust comments.  Set registered
16402         cost of I0 to zero at the end, if any.
16403
16404 2011-04-08  Xinliang David Li  <davidxl@google.com>
16405
16406         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
16407         to insane profile data.
16408
16409 2011-04-08  Xinliang David Li  <davidxl@google.com>
16410
16411         * ipa-cp.c (ipcp_update_profiling): Correct
16412          negative scale factor due to insane profile data.
16413
16414 2011-04-08  Xinliang David Li  <davidxl@google.com>
16415
16416         * final.c (dump_basic_block_info): New function.
16417         (final): Dump basic block.
16418         (final_scan_insn): Remove old dump.
16419
16420 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
16421
16422         PR target/47829
16423         * config.gcc (i386-*-freebsd): Disable unwind table generation for
16424         crtbegin/crtend.
16425
16426 2011-04-08  Michael Matz  <matz@suse.de>
16427
16428         PR middle-end/48389
16429         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
16430         functions.
16431         (rebuild_jump_labels): Call rebuild_jump_labels_1.
16432         * rtl.h (rebuild_jump_labels_chain): Declare.
16433         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
16434         insns inserted on edges.
16435
16436 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
16437
16438         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
16439         * config/arm/arm-arches.def: New.
16440         * config/arm/arm-opts.h: New.
16441         * config/arm/genopt.sh: New.
16442         * config/arm/arm-tables.opt: New (generated).
16443         * config/arm/arm.c (arm_handle_option, arm_target_help,
16444         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
16445         (all_architectures): Get most table contents from arm-arches.def.
16446         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
16447         arm_selected_tune here.
16448         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
16449         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
16450         (march=, mcpu=, mtune=): Use Enum and Var.
16451         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
16452         (arm.o): Update dependencies.
16453
16454 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
16455
16456         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
16457         of header_file.
16458         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
16459         (write_typed_alloc_defns): Likewise.
16460         (main): Calls write_typed_alloc_defns with output_header.
16461
16462 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
16463
16464         PR inline-asm/48435
16465         * ira-color.c (setup_profitable_hard_regs): Add comments.
16466         Don't take prohibited hard regs into account.
16467         (setup_conflict_profitable_regs): Rename to
16468         get_conflict_profitable_regs.
16469         (check_hard_reg_p): Check prohibited hard regs.
16470
16471 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
16472
16473         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
16474         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
16475         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
16476
16477 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16478
16479         PR target/48366
16480         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
16481         move from floating point to shift amount register.
16482         (emit_move_sequence): Remove secondary reload support for floating
16483         point to shift amount amount register copies.
16484         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
16485         amount register copies.
16486         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
16487         register, return false if mode isn't a scalar integer mode.
16488         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
16489
16490 2011-04-08  Richard Guenther  <rguenther@suse.de>
16491
16492         * gimple.c (gimple_call_flags): Remove kludge.
16493
16494 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16495
16496         * sel-sched.c (sel_region_init): Move call to
16497         sel_setup_region_sched_flags after setup_current_loop_nest.
16498
16499 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
16500
16501         PR rtl-optimization/48272
16502         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
16503         init_insn_reg_pressure_info.  Adjust a caller.
16504         * sched-int.h (init_insn_reg_pressure_info): Declare.
16505         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
16506         when sched-pressure is enabled.
16507
16508 2011-04-08  Richard Guenther  <rguenther@suse.de>
16509
16510         * gimple.c (gimple_set_modified): Do not queue calls to
16511         MODIFIED_NORETURN_CALLS here ...
16512         * tree-ssa-operands.c (update_stmt_operands): ... but here.
16513
16514 2011-04-08  Richard Guenther  <rguenther@suse.de>
16515
16516         PR lto/48467
16517         * toplev.c (lang_dependent_init): Do not open asm_out_file
16518         in WPA mode, nor perform debug machinery initialization.
16519         (finalize): Do not unlink asm_out_file in WPA mode.
16520
16521 2011-04-08  Richard Guenther  <rguenther@suse.de>
16522
16523         * gimple.h (gimple_call_fntype): New function.
16524         (gimple_call_return_type): Use it.
16525         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
16526         * gimple-low.c (gimple_check_call_args): Likewise.
16527         * gimple.c (gimple_call_flags): Likewise.
16528         (gimple_call_arg_flags): Likewise.
16529         (gimple_call_return_flags): Likewise.
16530         * tree-cfg.c (verify_gimple_call): Likewise.
16531         (do_warn_unused_result): Likewise.
16532         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
16533         * value-prof.c (gimple_ic_transform): Fix fndecl check.
16534
16535 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
16536
16537         PR rtl-optimization/48235
16538         * sel-sched.c (code_motion_process_successors): Recompute the last
16539         insn in basic block if control flow changed.
16540         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
16541         Update condition for ilist_remove.
16542
16543 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16544
16545         PR rtl-optimization/48302
16546         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
16547         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
16548         it to record added preheader blocks.
16549         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
16550         on to sel_add_loop_preheaders.
16551         (sel_region_init): Move call to setup_current_loop_nest after
16552         sel_init_bbs.
16553
16554 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16555
16556         PR target/48273
16557         * cfgloop.h (loop_has_exit_edges): New helper.
16558         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
16559         non-clonable.
16560         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
16561         that have no exit edges.
16562
16563 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
16564
16565         PR rtl-optimization/48442
16566         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
16567         all callers.  Adjust assert.
16568
16569 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
16570
16571         PR tree-optimization/48377
16572         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
16573         is_packed to true even for types with smaller TYPE_ALIGN than
16574         TYPE_SIZE.
16575
16576 2011-04-08  Richard Guenther  <rguenther@suse.de>
16577
16578         PR bootstrap/48513
16579         * doc/tm.texi: Re-generate.
16580
16581 2011-04-08  Wei Guozhi  <carrot@google.com>
16582
16583         PR target/47855
16584         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
16585         * config/arm/arm.c (arm_attr_length_push_multi): New function.
16586         * config/arm/arm.md (*push_multi): Change the length computation to
16587         call a C function.
16588
16589 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
16590
16591         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
16592         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
16593         * doc/tm.texi: Regenerate.
16594         * system.h (ASM_OUTPUT_BSS): Poison.
16595         * varasm.c (asm_output_bss): Remove function.
16596         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
16597
16598         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
16599         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
16600         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
16601         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16602         Likewise.
16603         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16604         Likewise.
16605         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16606         Likewise.
16607         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
16608
16609 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
16610
16611         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
16612         EnumValue lines.
16613
16614 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
16615
16616         * config/m68k/m68k.c (m68k_handle_option): Don't handle
16617         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
16618         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
16619         OPT_mcpu32.
16620         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
16621         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
16622         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
16623         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
16624         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
16625         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
16626         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16627         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
16628         options.  Don't map other m68k options manually.  Don't handle
16629         old-style options as canonical.
16630         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
16631         * doc/install.texi (m68k-*-*): Document binutils version requirement.
16632
16633 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
16634
16635         * basic-block.h (force_nonfallthru): Move to...
16636         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
16637         (force_nonfallthru): ...here.
16638         * cfghooks.c (force_nonfallthru): New function.
16639         * cfgrtl.c (force_nonfallthru): Rename into...
16640         (rtl_force_nonfallthru): ...this.
16641         (commit_one_edge_insertion): Do not set AUX field.
16642         (commit_edge_insertions): Do not discover new basic blocks.
16643         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
16644         (cfg_layout_rtl_cfg_hooks): Likewise.
16645         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
16646         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
16647         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
16648
16649 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
16650
16651         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
16652         Remove macros.
16653
16654 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
16655
16656         * config/i386/sse.md: Update copyright year.
16657         (avxcvtvecmode): Remove.
16658         (sse_movhlps): Merge with *avx_movhlps.
16659         (sse_movlhps): Merge with *avx_movlhps.
16660         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
16661         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
16662         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
16663         (sse_loadhps): Merge with *avx_loadhps.
16664         (sse_storelps): Merge with *avx_storelps.
16665         (sse_loadlps): Merge with *avx_loadlps.
16666         (sse_movss): Merge with *avx_movss.
16667         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
16668         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
16669         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
16670         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
16671         (vec_set<mode>_0): Ditto.
16672         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
16673         (sse4_1_insertps): Merge with *avx_insertps.
16674         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
16675         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
16676         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
16677         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
16678         (sse2_storehpd): Merge with *avx_storehpd.
16679         (sse2_loadhpd): Merge with *avx_loadhpd.
16680         (sse2_loadlpd): Merge with *avx_loadlpd.
16681         (sse2_movsd): Merge with *avx_movsd.
16682         (*vec_concatv2df): Merge with *vec_concatv2df.
16683
16684 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
16685
16686         PR debug/48343
16687         * combine.c (combine_instructions): Add last_combined_insn,
16688         update it if insn is after it, pass it to all try_combine calls.
16689         (try_combine): Add last_combined_insn parameter, pass it instead of
16690         i3 to propagate_for_debug.
16691
16692 2011-04-07  Nick Clifton  <nickc@redhat.com>
16693
16694         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
16695         to handle MDR <-> data register transfers.
16696         (movhi_internal): Likewise.
16697
16698 2011-04-07  Alan Modra  <amodra@gmail.com>
16699
16700         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
16701         previous stack info.
16702
16703 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16704
16705         PR target/43920
16706         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
16707         flow_find_cross_jump.  Swap variables to implement backward replacement.
16708         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
16709
16710 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16711
16712         PR target/43920
16713         * cfgcleanup.c (walk_to_nondebug_insn): New function.
16714         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
16715         and bb2.
16716         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
16717         src1 or src2.  Redirect edges to the last basic block.  Update
16718         frequency and count on multiple basic blocks in case of fallthru.
16719
16720 2011-04-07  Tom de Vries  <tom@codesourcery.com>
16721
16722         PR target/43920
16723         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
16724         function.
16725         (old_insns_match_p): Change return type.  Replace return false/true
16726         with return dir_none/dir_both.  Use can_replace_by.
16727         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
16728         direction from dir_p.  Register replacement direction in dir, last_dir
16729         and afterlast_dir.  Handle new return type of old_insns_match_p using
16730         merge_dir.  Return replacement direction in dir_p.
16731         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
16732         return type of old_insns_match_p.
16733         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
16734         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
16735         flow_find_cross_jump.
16736         * basic-block.h (enum replace_direction): New type.
16737         (flow_find_cross_jump): Add parameter to declaration.
16738
16739 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
16740
16741         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
16742         (AVXMODEDCVTPS2DQ): Ditto.
16743         (VEC_FLOAT_MODE): Ditto.
16744         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
16745         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16746         (<any_logic:code><mode>3): Use VF mode iterator.
16747         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
16748         Use VF mode iterator.
16749         (copysign<mode>3): Use VF mode iterator.
16750         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
16751         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
16752         (*<any_logic:code><MODEF:mode>3): Merge with
16753         *avx_<any_logic:code><MODEF:mode>3.
16754         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
16755         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
16756         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
16757         (avx_cvtdq2ps<avxmodesuffix>): Remove.
16758         (sse2_cvtdq2ps): Use %v modifier.
16759         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
16760         (avx_cvtps2dq<avxmodesuffix>): Remove.
16761         (sse2_cvtps2dq): Use %v modifier.
16762         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
16763         (avx_cvttps2dq<avxmodesuffix>): Remove.
16764         (sse2_cvttps2dq): Use %v modifier.
16765         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
16766         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
16767         (sse2_cvtsd2siq): Fix insn template.
16768         (sse2_cvtsd2siq_2): Ditto.
16769         (sse2_cvttsd2siq): Ditto.
16770         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
16771         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
16772
16773 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
16774
16775         * gcov-io.c: Use GCC Runtime Library Exception.
16776
16777 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
16778
16779         PR debug/48466
16780         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
16781         as base_reg whatever register reg has been eliminated to, instead
16782         of hardcoding STACK_POINTER_REGNUM.
16783
16784 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
16785
16786         * doc/tm.texi.in: Document C target hooks as separate from general
16787         target hooks.
16788         * doc/tm.texi: Regenerate.
16789         * genhooks.c (struct hook_desc): Add docname field.
16790         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
16791         docname field.
16792         (hook_array): Include c-target.def.
16793         (emit_documentation): Use docname field in output.
16794         (emit_init_macros): Take docname argument.  Only emit definitions
16795         for hooks matching docname.
16796         (main): Expect additional arguments in all cases.  Pass argument
16797         to emit_init_macros.
16798         * target.def: Move initial macro definitions and comments to
16799         target-hooks-macros.h.
16800         (gcc_targetcm): Move to c-family/c-target.def.
16801         * target.h (targetcm): Move declaration to c-family/c-target.h.
16802         * targhooks.c (default_handle_c_option): Move to
16803         c-family/c-opts.c.
16804         * targhooks.h (default_handle_c_option): Move declaration to
16805         c-family/c-common.h.
16806         * target-hooks-macros.h: New file.
16807         * config.gcc (target_has_targetcm): Define and use to add to
16808         c_target_objs and cxx_target_objs.
16809         * config/default-c.c: New file.
16810         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
16811         of target.h and target-def.h.
16812         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
16813         (darwin_objc_construct_string, darwin_cfstring_ref_p,
16814         darwin_check_cfstring_format_arg): Make static.
16815         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16816         TARGET_STRING_OBJECT_REF_TYPE_P,
16817         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
16818         * config/darwin-protos.h (darwin_objc_construct_string,
16819         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
16820         declare.
16821         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
16822         TARGET_STRING_OBJECT_REF_TYPE_P,
16823         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
16824         * config/t-darwin (darwin-c.o): Update dependencies.
16825         * system.h (TARGET_HAS_TARGETCM): Poison.
16826         * Makefile.in (TARGET_H): Update.
16827         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
16828         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
16829         (default-c.o): New target.
16830         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
16831         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
16832         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
16833         c-target.def.
16834         (build/genhooks.o): Update dependencies.
16835
16836 2011-04-06  Richard Guenther  <rguenther@suse.de>
16837
16838         * ipa-inline.c (enum inlining_mode): Remove.
16839         (cgraph_flatten): Use some other token.
16840         (cgraph_edge_early_inlinable_p): New function, split out from ...
16841         (cgraph_perform_always_inlining): New function, split out from ...
16842         (cgraph_decide_inlining_incrementally): ... here.
16843         (cgraph_mark_inline_edge): Adjust.
16844         (cgraph_early_inlining): Re-structure.
16845         (pass_early_inline): Require SSA form.
16846
16847 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
16848             Julian Brown  <julian@codesourcery.com>
16849             Mark Shinwell  <shinwell@codesourcery.com>
16850
16851         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
16852         LO_REGS only for Thumb-1.
16853         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
16854         be used in short instructions when optimising for size on Thumb-2.
16855
16856 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
16857
16858         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
16859         associated with user returns to be preserved.
16860
16861 2011-04-06  Tristan Gingold  <gingold@adacore.com>
16862
16863         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
16864         symbol_queue_size, DBXOUT_DECR_NESTING,
16865         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
16866         if XCOFF_DEBUGGING_INFO.
16867
16868 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
16869
16870         * config/i386/i386.md (attribute isa): New.
16871         (attribute enabled): New.
16872         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
16873         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
16874         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
16875         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
16876         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
16877         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16878         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
16879         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
16880
16881         * config/i386/sse.md (VF): New mode iterator.
16882         (VF1): Ditto.
16883         (VF2): Ditto.
16884         (VF_128): Ditto.
16885         (SSEMODEF4): Remove.
16886         (attribute sse): Handle V8SF and V4DF modes.
16887         (<absneg:code><mode>2): Use VF mode iterator.
16888         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
16889         mode iterator.
16890         (<plusminus_insn><mode>3): Use VF mode iterator.
16891         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
16892         Use VF mode iterator.
16893         (<sse>_vm<plusminus_insn><mode>3): Merge with
16894         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
16895         (mul<mode>3): Use VF mode iterator.
16896         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
16897         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
16898         mode iterator.
16899         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
16900         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
16901         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
16902         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
16903         mode iterator.
16904         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
16905         Use VF1 mode iterator.
16906         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
16907         (sqrt<VF2:mode>2): New expander.
16908         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
16909         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
16910         and sqrtv2df2.  Use VF mode iterator.
16911         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
16912         mode iterator.
16913         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
16914         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
16915         Use VF1 mode iterator.
16916         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
16917         (<smaxmin:code><mode>3): Use VF mode iterator.
16918         (*<smaxmin:code><mode>3_finite): Merge with
16919         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
16920         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
16921         (<sse>_vm<smaxmin:code><mode>2): Merge with
16922         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
16923         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
16924         mode iterator.
16925         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
16926         mode iterator.
16927         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
16928         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
16929         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
16930         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
16931         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
16932         VF mode iterator.
16933         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
16934         Use VF_128 mode iterator.
16935         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
16936         mode iterator.
16937         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
16938         VF_128 mode iterator.
16939         (vcond<mode>): Use VF mode iterator.
16940         * config/i386/predicates.md (sse_comparison_operator): Merge with
16941         avx_comparison_float_operator.  Do not declare as special_predicate.
16942         * config/i386/i386.c (struct builtin_description): Update for renamed
16943         compare patterns.
16944         (ix86_expand_args_builtin): Ditto.
16945         (ix86_expand_sse_compare_mask): Ditto.
16946
16947 2011-04-06  Richard Guenther  <rguenther@suse.de>
16948
16949         * tree-inline.c (estimate_num_insns): For calls simply account
16950         for all passed arguments and a used return value.
16951
16952 2011-04-06  Richard Guenther  <rguenther@suse.de>
16953
16954         PR tree-optimization/47663
16955         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
16956         call_stmt_time fields.
16957         (cgraph_edge_inlinable_p): Declare.
16958         (cgraph_edge_recursive_p): New inline function.
16959         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
16960         (cgraph_clone_edge): Copy it.
16961         * ipa-inline.c (cgraph_estimate_edge_time): New function.
16962         Account for call stmt time.
16963         (cgraph_estimate_time_after_inlining): Take edge argument.
16964         (cgraph_estimate_edge_growth): Account call stmt size.
16965         (cgraph_estimate_size_after_inlining): Take edge argument.
16966         (cgraph_mark_inline_edge): Adjust.
16967         (cgraph_check_inline_limits): Likewise.
16968         (cgraph_recursive_inlining_p): Remove.
16969         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
16970         (cgraph_decide_recursive_inlining): Take edge argument and
16971         adjust.
16972         (cgraph_decide_inlining_of_small_functions): Do not avoid
16973         diags for recursive inlining here.
16974         (cgraph_flatten): Adjust.
16975         (cgraph_decide_inlining_incrementally): Likewise.
16976         (estimate_function_body_sizes): Remove call cost handling.
16977         (compute_inline_parameters): Initialize caller edge call costs.
16978         (cgraph_estimate_edge_growth): New function.
16979         (cgraph_estimate_growth): Use it.
16980         (cgraph_edge_badness): Likewise.
16981         (cgraph_check_inline_limits): Take an edge argument.
16982         (cgraph_decide_inlining_of_small_functions): Adjust.
16983         (cgraph_decide_inlining): Likewise.
16984         * tree-inline.c (estimate_num_insns): Only account for call
16985         return value if it is used.
16986         (expand_call_inline): Avoid diagnostics on recursive inline
16987         functions here.
16988         * lto-cgraph.c (lto_output_edge): Output edge call costs.
16989         (input_edge): Input edge call costs.
16990
16991 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16992
16993         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
16994
16995 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
16996
16997         * doc/invoke.texi (Spec Files): Fix typo.
16998
16999 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
17000
17001         * profile.c (branch_prob): Move declaration of local variable.  Remove
17002         obsolete ??? comment.  Expand the location explicitly instead of using
17003         the LOCATION_FILE and LOCATION_LINE macros.
17004
17005 2011-04-06  Wei Guozhi  <carrot@google.com>
17006
17007         PR target/47855
17008         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
17009         (arm_cond_branch): Likewise.
17010         (arm_cond_branch_reversed): Likewise.
17011         (arm_jump): Likewise.
17012         (push_multi): Likewise.
17013         * config/arm/constraints.md (Py): New constraint.
17014
17015 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17016
17017         PR bootstrap/48471
17018         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
17019         Move these...
17020         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
17021         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
17022         #ifdef DBX_DEBUGGING_INFO.
17023
17024 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
17025
17026         PR bootstrap/48403
17027         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
17028         if old and new states differ.
17029
17030 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
17031
17032         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
17033         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
17034         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
17035         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
17036         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
17037         mcfv4e): Use Alias.
17038         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
17039         ColdFire options to -mcpu= options.
17040
17041 2011-04-05  Jeff Law  <law@redhat.com>
17042
17043         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
17044         check if BB is a successor of LOOP->header and return
17045         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
17046
17047 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
17048
17049         * cprop.c (struct reg_use): Remove.
17050         (reg_use_table): Make an array of RTX.
17051         (find_used_regs, constprop_register, local_cprop_pass,
17052         bypass_block): Simplify users of reg_use_table.
17053         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
17054         on one of the uses found by find_used_regs.
17055
17056 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17057
17058         PR bootstrap/48469
17059         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
17060         declaration.
17061
17062 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17063
17064         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
17065         as an rtx.
17066         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
17067
17068 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
17069
17070         PR middle-end/48441
17071         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
17072
17073 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17074
17075         * combine.c: Include obstack.h.
17076         (struct insn_link): Define.
17077         (uid_log_links): Adjust type.
17078         (FOR_EACH_LOG_LINK): New macro.
17079         (insn_link_obstack): Declare.
17080         (alloc_insn_link): Define.
17081         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
17082         type of link variables.
17083         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
17084         (try_combine, record_promoted_values, distribute_notes): Likewise.
17085         (distribute_links): Likewise.  Tweak prototype.
17086         (clear_log_links): Delete.
17087         (adjust_for_new_dest): Call alloc_insn_link.
17088         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
17089
17090 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17091
17092         * gcse.c (modify_mem_list): Convert to an array of VECs.
17093         (canon_modify_mem_list, compute_transp): Tweak formatting.
17094         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
17095         (load_killed_in_block_p): Likewise.
17096         (record_last_mem_set_info): Likewise.
17097         (clear_modify_mem_tables): Likewise.
17098
17099 2011-04-05  Tom de Vries  <tom@codesourcery.com>
17100
17101         PR middle-end/48461
17102         * function.c (emit_use_return_register_into_block): Only define if
17103         HAVE_return.
17104
17105 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
17106
17107         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
17108
17109 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
17110
17111         * config/rx/rx-opts.h: New.
17112         * config/rx/rx.c (rx_cpu_type): Remove.
17113         (rx_handle_option): Don't assert that global structures are in
17114         use.  Access variables via opts pointer.  Defer most handling of
17115         OPT_mint_register_.  Use error_at.
17116         (rx_option_override): Handle deferred OPT_mint_register_ here.
17117         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
17118         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
17119         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
17120         (rx_cpu_types): New Enum and EnumValue entries.
17121         (mint-register=): Use Defer and use Var accordingly.
17122
17123 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17124
17125         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
17126         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
17127         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
17128         Move these...
17129         (debug_free_queue, debug_nesting, symbol_queue_index):
17130         ...and these...
17131         * dbxout.c: ...to here.  Make static.
17132
17133 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
17134
17135         * gcse.c (modify_pair): Define.  Define a VEC of it.
17136         (canon_modify_mem_list): Convert to an array of VECs.
17137         (free_insn_expr_list_list): Delete.
17138         (clear_modify_mem_tables): Call VEC_free instead.
17139         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
17140         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
17141         (canon_list_insert, compute_transp): Likewise.
17142
17143 2011-04-05  Tom de Vries  <tom@codesourcery.com>
17144
17145         PR target/43920
17146         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
17147         for size.
17148
17149 2011-04-05  Tom de Vries  <tom@codesourcery.com>
17150
17151         PR target/43920
17152         * function.c (emit_use_return_register_into_block): New function.
17153         (thread_prologue_and_epilogue_insns): Use
17154         emit_use_return_register_into_block.
17155
17156 2011-04-05  Tom de Vries  <tom@codesourcery.com>
17157
17158         PR target/43920
17159         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
17160         insn.
17161
17162 2011-04-05  Tom de Vries  <tom@codesourcery.com>
17163
17164         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
17165
17166 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
17167
17168         * config/arm/arm.md (define_constants for unspec): Replace with
17169         define_c_enum.
17170         (define_constants for unspecv): Replace with define_c_enum.
17171         * config/arm/neon.md (define_constants for unspec): Replace with
17172         define_c_enum.
17173
17174 2011-04-04  Richard Henderson  <rth@redhat.com>
17175
17176         PR bootstrap/48400
17177         * dwarf2out.c (output_line_info): Always emit line info from
17178         at least one section.
17179         (dwarf2out_init): Create text_section_line_info here ...
17180         (set_cur_line_info_table): ... not here.
17181
17182 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
17183
17184         PR target/48380
17185         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
17186         not called.
17187
17188         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
17189
17190 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
17191
17192         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
17193         (expr_equiv_p): Remove.
17194         (insert_set_in_table): Look at <dest, src> pair instead of expr.
17195         (hash_scan_set): Update call to insert_set_in_table.
17196         (dump_hash_table): Dump <dest, src> pair.
17197         (lookup_set): Simplify.  Lookup <dest, src> pair.
17198         (compute_transp): Remove, fold heavily simplified code into...
17199         (compute_local_properties): ...here.  Expect COMP and TRANSP
17200         unconditionally.
17201         (find_avail_set): Take set directly from struct expr.
17202         (find_bypass-set): Likewise.
17203         (bypass_block): Likewise.
17204         (cprop_insn): Likewise.  Remove redundant INSN_P test.
17205
17206         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
17207         checks on form of COND from find_implicit_sets to here.
17208         (find_implicit_sets): Cleanup control flow. Split critical edges
17209         if it exposes implicit sets.  Allocate/resize implicit_sets as
17210         necessary.
17211         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
17212         changed something.  Run df_analyze after find_implicit_sets if any
17213         edges were split.  Do not allocate implicit_sets here.
17214
17215         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
17216         (gcse_obstack): Renamed to cprop_obstack.
17217         (GNEW, GNEWVEC, GNEWVAR): Remove.
17218         (gmalloc): Remove.
17219         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
17220         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
17221         (gcse_alloc): Likewise, and rename to cprop_alloc.
17222         (alloc_gcse_men, free_gcse_mem): Remove.
17223         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
17224         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
17225         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
17226
17227         * cprop.c (oprs_not_set_p): Remove.
17228         (mark_set, mark_clobber): Remove.
17229         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
17230         (reg_not_set_p): New function.
17231         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
17232         (cprop_insn): Likewise.
17233         (cprop_jump): Use FOR_EACH_EDGE.
17234
17235 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
17236
17237         PR bootstrap/48403
17238         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
17239         (rank_for_schedule): Use scheduled_insns vector instead of
17240         last_scheduled_insn.
17241         (ok_for_early_queue_removal): Likewise.
17242         (queue_to_ready): Search forward in nonscheduled_insns_begin if
17243         we have a dbg_cnt.
17244         (choose_ready): Likewise.
17245         (commit_schedule): Use VEC_iterate.
17246         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
17247         a dbg_cnt, use it and ensure the first insn is in the ready list.
17248         (haifa_sched_init): Allocate scheduled_insns.
17249         (sched_extend_ready_list): Don't allocate it; reserve space.
17250         (haifa_sched_finish): Free it.
17251
17252 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
17253
17254         * optc-gen.awk: Always remove type from Variable entry before
17255         recording in var_seen.
17256
17257 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
17258
17259         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
17260         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
17261         call to tidy_fallthru_edges.
17262
17263 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
17264
17265         * doc/options.texi (ToLower): Document.
17266         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
17267         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
17268         * opts.h (cl_option): Add cl_tolower field.
17269         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
17270         arguments with lowercase strings.
17271         * config/rx/rx.opt (mcpu=): Add ToLower.
17272         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
17273         argument.
17274
17275 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
17276
17277         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
17278
17279 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
17280
17281         * config/vax/vax.c: Include reload.h.
17282
17283 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
17284
17285         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
17286         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
17287         (sparc_preferred_reload_class): New function.
17288
17289 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
17290
17291         PR debug/48401
17292         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17293         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
17294
17295 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
17296
17297         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
17298         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
17299
17300 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
17301
17302         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
17303         (ASM_OUTPUT_ALIGNED_BSS): Define.
17304
17305 2011-04-03  Michael Matz  <matz@suse.de>
17306
17307         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
17308         and next_slot members.
17309         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
17310         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
17311         (lto_streamer_cache_append): Declare.
17312         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
17313         unsigned index, remove offset parameter, ensure that we append
17314         or update existing entries.
17315         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
17316         parameter, update next_slot for append.
17317         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
17318         parameter.
17319         (lto_streamer_cache_insert_at): Likewise.
17320         (lto_streamer_cache_append): New function.
17321         (lto_streamer_cache_lookup): Use unsigned index.
17322         (lto_streamer_cache_get): Likewise.
17323         (lto_record_common_node): Don't test tree_node_can_be_shared.
17324         (preload_common_node): Adjust call to lto_streamer_cache_insert.
17325         (lto_streamer_cache_delete): Don't free offsets member.
17326         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
17327         (lto_output_string_with_length): Use lto_output_data_stream.
17328         (lto_output_tree_header): Remove ix parameter, don't write it.
17329         (lto_output_builtin_tree): Likewise.
17330         (lto_write_tree): Adjust callers to above, don't track and write
17331         offset, write unsigned index.
17332         (output_unreferenced_globals): Don't emit all global vars.
17333         (write_global_references): Use unsigned indices.
17334         (lto_output_decl_state_refs): Likewise.
17335         (write_symbol): Likewise.
17336         * lto-streamer-in.c (lto_input_chain): Move earlier.
17337         (input_function): Use unsigned index.
17338         (input_alias_pairs): Don't read and then ignore all global vars.
17339         (lto_materialize_tree): Remove ix_p parameter, don't read index,
17340         don't pass it back, use lto_streamer_cache_append.
17341         (lto_register_var_decl_in_symtab): Use unsigned index.
17342         (lto_register_function_decl_in_symtab): Likewise.
17343         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
17344         index.
17345         (lto_get_builtin_tree): Don't read index, use
17346         lto_streamer_cache_append.
17347         (lto_read_tree): Adjust call to lto_materialize_tree.
17348
17349         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
17350         don't use function calls in arguments to MIN.
17351
17352         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
17353         twice.
17354
17355         * gimple.c (gimple_type_leader_entry): Mark deletable.
17356
17357 2011-04-03  Alan Modra  <amodra@gmail.com>
17358
17359         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
17360
17361 2011-04-03  Michael Matz  <matz@suse.de>
17362
17363         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
17364         an integer.
17365         * tree.h (tree_decl_non_common.vindex): Adjust comment.
17366
17367 2011-04-03  Michael Matz  <matz@suse.de>
17368
17369         * cgraphbuild.c (record_reference): Canonicalize constructor values.
17370         * gimple-fold.c (canonicalize_constructor_val): Accept being called
17371         without function context.
17372         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
17373         current_function_decl and cfun.
17374
17375 2011-04-03  Michael Matz  <matz@suse.de>
17376
17377         * tree.c (decl_init_priority_insert): Don't create entry for
17378         default priority.
17379         (decl_fini_priority_insert): Ditto.
17380         (fields_compatible_p, find_compatible_field): Remove.
17381         * tree.h (fields_compatible_p, find_compatible_field): Remove.
17382         * gimple.c (gimple_compare_field_offset): Adjust block comment.
17383
17384 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
17385
17386         * combine.c (try_combine): Remove useless local variable.
17387
17388 2011-04-03  Richard Guenther  <rguenther@suse.de>
17389             Ira Rosen  <ira.rosen@linaro.org>
17390
17391         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
17392         non-variable offsets and compare the remaining bases of the two
17393         accesses instead of looking for exact same data-ref.
17394
17395 2011-04-02  Kai Tietz  <ktietz@redhat.com>
17396
17397         PR target/48416
17398         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
17399
17400         * i386.c (ix86_is_msabi_thiscall): New helper function.
17401         (ix86_is_type_thiscall): New helper function.
17402         (ix86_comp_type_attributes): Handle thiscall for method-functions
17403         special.
17404         (init_cumulative_args): Likewise.
17405         (find_drap_reg): Likewise.
17406         (ix86_static_chain): Likewise.
17407         (x86_this_parameter): Likewise.
17408         (x86_output_mi_thunk): Likewise.
17409
17410 2011-04-01  Olivier Hainque  <hainque@adacore.com>
17411             Nicolas Setton  <setton@adacore.com>
17412             Eric Botcazou  <ebotcazou@adacore.com>
17413
17414         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
17415         (add_gnat_descriptive_type_attribute): New function.
17416         (gen_array_type_die): Call it.
17417         (gen_enumeration_type_die): Likewise.
17418         (gen_struct_or_union_type_die): Likewise.
17419         (modified_type_die): Likewise.
17420         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
17421         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
17422         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
17423
17424 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
17425
17426         PR bootstrap/48148
17427         * dwarf2out.c (resolve_addr): Don't call force_decl_die
17428         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
17429
17430         Revert:
17431         2011-03-17  Richard Guenther  <rguenther@suse.de>
17432
17433         PR bootstrap/48148
17434         * lto-cgraph.c (input_overwrite_node): Clear the abstract
17435         origin for decls in other ltrans units.
17436         (input_varpool_node): Likewise.
17437
17438 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
17439
17440         PR middle-end/48335
17441         * expr.c (expand_assignment): Handle all possibilities
17442         if TO_RTX is CONCAT.
17443         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
17444         (store_split_bit_field): If SUBREG_REG (op0) or
17445         op0 itself has smaller mode than word, return it
17446         for offset 0 and const0_rtx for out-of-bounds stores.
17447         If word is const0_rtx, skip it.
17448
17449 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
17450
17451         * config/h8300/h8300.c (print_operand_address): Rename to...
17452         (h8300_print_operand_address): ...this. Make static. Adjust comments.
17453         Call h8300_print_operand and h8300_print_operand_address instead of
17454         print_operand and print_operand_address. Declare.
17455         (print_operand): Renake to...
17456         (h8300_print_operand): ...this. Make static. Adjust comments.
17457         Call h8300_print_operand instead of print_operand. Declare.
17458         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
17459         (h8300_register_move_cost): Likewise.
17460         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
17461         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
17462         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
17463         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
17464         * config/h8300/h8300-protos.h (print_operand): Delete.
17465         (print_operand_address): Delete.
17466
17467 2011-04-01  Richard Henderson  <rth@redhat.com>
17468
17469         PR 48400
17470         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
17471         in strict mode before dwarf4.  Re-order tests to early out
17472         before switching sections.
17473
17474 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
17475
17476         * config/h8300/constraints.md: New file.
17477         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
17478         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
17479         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
17480         * config/h8300/predicates.md (bit_operand): Likewise.
17481         (incdec_operand): Use satisfies_constraint_M and
17482         satisfies_constraint_O.  Don't use C code block.
17483         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
17484         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
17485         (compute_mov_length): Use satisfies_constraint_G.
17486         (fix_bit_operand): Use satisfies_constraint_U.
17487         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
17488         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
17489         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
17490         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
17491         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
17492         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
17493         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
17494         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
17495         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
17496         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
17497         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
17498         (EXTRA_MEMORY_CONSTRAINT): Delete.
17499
17500 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
17501             Michael Meissner  <meissner@linux.vnet.ibm.com>
17502
17503         PR target/48262
17504         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
17505         operands, as per the specifications.
17506
17507         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
17508         (vec_extract_evenv4sf): Ditto.
17509         (vec_extract_evenv8hi): Ditto.
17510         (vec_extract_evenv16qi): Ditto.
17511         (vec_extract_oddv4si): Ditto.
17512
17513 2011-03-31  Mark Wielaard  <mjw@redhat.com>
17514
17515         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
17516         high_pc attribute if the CU has no associated code. Only output
17517         DW_AT_entry_pc for CU if not generating strict dwarf and
17518         dwarf_version < 4.
17519
17520 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
17521
17522         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
17523         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
17524         out of ...
17525         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
17526         * final.c (final_start_function): Call the new function rather
17527         than using a NULL argument for dwarf2out_frame_debug.
17528
17529         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
17530         that contains the prologue.
17531
17532         * haifa-sched.c (queue_insn): New arg REASON.  All callers
17533         changed.  Print it in debugging output.
17534
17535         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
17536
17537         * sched-ebb.c (begin_schedule_ready): Remove second argument.
17538         Split most of the code into...
17539         (begin_move_insn): ... here.  New function.
17540         (ebb_sched_info): Add a pointer to it.
17541         * haifa-sched.c (scheduled_insns): New static variable.
17542         (sched_extend_ready_list): Allocate it.
17543         (schedule_block): Use it to record the order of scheduled insns.
17544         Perform RTL changes to move insns only after all scheduling
17545         decisions have been made.
17546         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
17547         begin_move_insn field.
17548         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
17549         * sched-int.h (struct haifa_sched_info): Remove second argument
17550         from begin_schedule_ready hook.  Add new member begin_move_insn.
17551         * sched-rgn.c (begin_schedule_ready): Remove second argument.
17552         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
17553
17554         * haifa-sched.c (prune_ready_list): New function, broken out of
17555         schedule_block.
17556         (schedule_block): Use it.
17557
17558 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17559
17560         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
17561
17562 2011-04-01  Kai Tietz  <ktietz@redhat.com>
17563
17564         * config.gcc (*-*-mingw*): Allow as option the
17565         posix threading model.
17566         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
17567         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
17568         definition.
17569         (CPP_SPEC): Add pthread/no-pthread handling.
17570         (LIB_SPEC): Likewise.
17571         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
17572         (LIB_SPEC): Likewise.
17573         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
17574         flag to pass -pthread option for shared libgcc build.
17575         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
17576         for shared libgcc build.
17577         * config/i386/t-mingw-pthread: New file.
17578         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
17579         New define to enable use of library pthread by default.
17580         * config/i386/mingw.opt (pthread): New driver option.
17581         (no-pthread): New driver option.
17582         * config/i386/cygming.opt: Make sure trailing empty line is retained.
17583         * config/i386/mingw-w64.opt: Likewise.
17584
17585 2011-04-01  Gary Funck  <gary@intrepid.com>
17586
17587         * c-decl.c (grokdeclarator): Fix formatting.
17588
17589 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17590
17591         * expr.c (emit_block_move_via_movmem): Use n_generator_args
17592         instead of n_operands.
17593         (set_storage_via_setmem): Likewise.
17594         * optabs.c (maybe_gen_insn): Likewise.
17595         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
17596         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
17597         (mips_expand_builtin_direct): Likewise.
17598         * config/spu/spu.c (expand_builtin_args): Likewise.
17599
17600 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17601
17602         * recog.h (insn_data_d): Add n_generator_args.
17603         * genoutput.c (data): Likewise.
17604         (output_insn_data): Print it.
17605         (max_opno, num_dups): Delete.
17606         (scan_operands): Just fill in "d->operand[...]".
17607         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
17608
17609 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
17610
17611         * gensupport.h (pattern_stats): New structure.
17612         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
17613         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
17614         (max_operand_1, max_operand_vec): Delete.
17615         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
17616
17617 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
17618
17619         * emit-rtl.c (emit_pattern_after_setloc): New function.
17620         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
17621         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
17622         (emit_pattern_after): New function.
17623         (emit_insn_after, emit_jump_insn_after): Call it.
17624         (emit_call_insn_after, emit_debug_insn_after): Likewise.
17625         (emit_pattern_before_setloc): New function.
17626         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
17627         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
17628         Likewise.
17629         (emit_pattern_before): New function.
17630         (emit_insn_before, emit_jump_insn_before): Call it.
17631         (emit_call_insn_before, emit_debug_insn_before): Likewise.
17632
17633 2011-03-31  Richard Henderson  <rth@redhat.com>
17634
17635         * dwarf2out.c (dw_separate_line_info_ref): Remove.
17636         (dw_separate_line_info_entry): Remove.
17637         (enum dw_line_info_opcode): New.
17638         (dw_line_info_entry): Use it.
17639         (dw_line_info_table, dw_line_info_table_p): New.
17640         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
17641         (line_info_table, line_info_label_num): Remove.
17642         (line_info_table_in_use): Remove.
17643         (separate_line_info_table): Remove.
17644         (separate_line_info_table_allocated): Remove.
17645         (separate_line_info_table_in_use): Remove.
17646         (LINE_INFO_TABLE_INCREMENT): Remove.
17647         (line_info_label_num): New.
17648         (cur_line_info_table): New.
17649         (text_section_line_info, cold_text_section_line_info): New.
17650         (separate_line_info): New.
17651         (SEPARATE_LINE_CODE_LABEL): Remove.
17652         (print_dwarf_line_table): Remove.
17653         (debug_dwarf): Don't dump it.
17654         (output_one_line_info_table): New.
17655         (output_line_info): Use it.
17656         (new_line_info_table): New.
17657         (set_cur_line_info_table): New.
17658         (dwarf2out_switch_text_section): Use it.
17659         (dwarf2out_begin_function): Likewise.
17660         (push_dw_line_info_entry): New.
17661         (dwarf2out_source_line): Rewrite for new line info tables.
17662         (dwarf2out_init): Remove dead initailizations.
17663
17664 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
17665
17666         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
17667         various flags.
17668         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
17669         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
17670         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
17671         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
17672         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
17673         * opt-functions.awk (flag_init, switch_bit_fields): New.
17674         (switch_flags): Don't handle flags moved to bit-fields.  Don't
17675         generate CL_MISSING_OK or CL_SAVE.
17676         * optc-gen.awk: Update to generate bit-field output as well as
17677         flags field.
17678         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
17679         bit-field instead of CL_REJECT_DRIVER flag.
17680         * opts-common.c (generate_canonical_option,
17681         decode_cmdline_option): Use bit-fields instead of CL_* flags.
17682         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
17683         instead of CL_REJECT_NEGATIVE flag.
17684         * toplev.c (print_switch_values): Use cl_report bit-field instead
17685         of CL_REPORT flag.
17686
17687 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
17688
17689         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
17690         a zero minimum index only if it is redundant.
17691
17692 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
17693
17694         PR rtl-optimization/48381
17695         * ira-color.c (assign_hard_reg): Use hard reg set intersection
17696         instead of ira_class_hard_reg_index for calculating conflicting
17697         hard registers.
17698
17699 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
17700
17701         * cprop.c: Clean up hash table building.
17702         (reg_avail_info): Remove.
17703         (oprs_available_p): Remove.
17704         (record_last_reg_set_info): Remove.
17705         (record_last_set_info): Remove.
17706         (reg_available_p): New function.
17707         (gcse_constant_p): Do not treat unfolded conditions as constants.
17708         (make_set_regs_unavailable): New function.
17709         (hash_scan_set): Simplify with new reg_available_p.
17710         (compute_hash_table_work): Traverse insns stream only once.
17711         Do not compute reg_avail_info. Traverse insns in reverse order.
17712         Record implicit sets after recording explicit sets from the block.
17713
17714 2011-03-31  Michael Matz  <matz@suse.de>
17715
17716         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
17717
17718 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
17719
17720         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
17721         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
17722         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
17723         (h8300_mode_dependent_address_p): New function.
17724         (h8300_get_index): Make static.
17725
17726 2011-03-31  Jeff Law  <law@redhat.com>
17727
17728         * reload1.c (elimination_effects): Fix typo in recent change.
17729
17730         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
17731         typo potentially leading to null pointer dereference.
17732
17733         * caller-save.c (new_saved_hard_reg): Eliminate return value.
17734         (setup_save_areas): Corresponding changes to avoid useless
17735         assignments.
17736
17737         * jump.c (reversed_comparison_code_parts): Avoid successive return
17738         statements when REVERSE_CONDITION is defined.
17739
17740         * expr.c (expand_assignment): Avoid useless assignments.
17741         (expand_expr_real_1): Likewise.
17742         (expand_expr_real_2): Avoid useless statements.
17743
17744         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
17745
17746         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
17747
17748         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
17749         statements.
17750
17751         * stmt.c (expand_expr_stmt): Avoid useless assignment.
17752
17753 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
17754
17755         PR target/47109
17756         * doc/tm.texi.in (TARGET_VERSION): Remove.
17757         * doc/tm.texi: Regenerate.
17758         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
17759         * collect2.c (main): Don't use TARGET_VERSION.
17760         * mips-tdump.c (main): Don't use TARGET_VERSION.
17761         * mips-tfile.c (main): Don't use TARGET_VERSION.
17762         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
17763         * config/rs6000/vxworksae.h: Remove.
17764         * config/alpha/alpha.h (TARGET_VERSION): Remove.
17765         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
17766         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
17767         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
17768         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17769         * config/arm/arm.h (TARGET_VERSION): Remove.
17770         * config/arm/coff.h (TARGET_VERSION): Remove.
17771         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
17772         * config/arm/elf.h (TARGET_VERSION): Remove.
17773         * config/arm/freebsd.h (TARGET_VERSION): Remove.
17774         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
17775         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
17776         * config/arm/pe.h (TARGET_VERSION): Remove.
17777         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
17778         * config/arm/semi.h (TARGET_VERSION): Remove.
17779         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
17780         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
17781         * config/arm/vxworks.h (TARGET_VERSION): Remove.
17782         * config/avr/avr.h (TARGET_VERSION): Remove.
17783         * config/bfin/bfin.h (TARGET_VERSION): Remove.
17784         * config/fr30/fr30.h (TARGET_VERSION): Remove.
17785         * config/frv/frv.h (TARGET_VERSION): Remove.
17786         * config/h8300/h8300.h (TARGET_VERSION): Remove.
17787         * config/i386/cygwin.h (TARGET_VERSION): Remove.
17788         * config/i386/darwin.h (TARGET_VERSION): Remove.
17789         * config/i386/darwin64.h (TARGET_VERSION): Remove.
17790         * config/i386/djgpp.h (TARGET_VERSION): Remove.
17791         * config/i386/freebsd.h (TARGET_VERSION): Remove.
17792         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
17793         * config/i386/gnu.h (TARGET_VERSION): Remove.
17794         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
17795         * config/i386/i386elf.h (TARGET_VERSION): Remove.
17796         * config/i386/linux.h (TARGET_VERSION): Remove.
17797         * config/i386/linux64.h (TARGET_VERSION): Remove.
17798         * config/i386/lynx.h (TARGET_VERSION): Remove.
17799         * config/i386/mingw32.h (TARGET_VERSION): Remove.
17800         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
17801         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
17802         * config/i386/netware.h (TARGET_VERSION): Remove.
17803         * config/i386/nto.h (TARGET_VERSION): Remove.
17804         * config/i386/openbsd.h (TARGET_VERSION): Remove.
17805         * config/i386/vxworks.h (TARGET_VERSION): Remove.
17806         * config/ia64/elf.h (TARGET_VERSION): Remove.
17807         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
17808         * config/ia64/hpux.h (TARGET_VERSION): Remove.
17809         * config/ia64/linux.h (TARGET_VERSION): Remove.
17810         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
17811         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
17812         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17813         * config/lm32/lm32.h (TARGET_VERSION): Remove.
17814         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
17815         * config/m32c/m32c.h (TARGET_VERSION): Remove.
17816         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
17817         * config/m32r/m32r.h (TARGET_VERSION): Remove.
17818         * config/m68k/linux.h (TARGET_VERSION): Remove.
17819         * config/m68k/m68k.h (TARGET_VERSION): Remove.
17820         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
17821         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
17822         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
17823         * config/mep/mep.h (TARGET_VERSION): Remove.
17824         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
17825         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
17826         * config/mips/iris6.h (MACHINE_TYPE): Remove.
17827         * config/mips/linux.h (TARGET_VERSION): Remove.
17828         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
17829         * config/mips/vxworks.h (TARGET_VERSION): Remove.
17830         * config/mmix/mmix.h (TARGET_VERSION): Remove.
17831         * config/mn10300/linux.h (TARGET_VERSION): Remove.
17832         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
17833         * config/pa/pa.h (TARGET_VERSION): Remove.
17834         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
17835         * config/picochip/picochip.h (TARGET_VERSION): Remove.
17836         * config/rs6000/aix.h (TARGET_VERSION): Remove.
17837         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
17838         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
17839         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
17840         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
17841         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
17842         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
17843         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
17844         * config/rs6000/linux.h (TARGET_VERSION): Remove.
17845         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
17846         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
17847         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
17848         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
17849         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
17850         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
17851         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
17852         * config/s390/linux.h (TARGET_VERSION): Remove.
17853         * config/s390/s390.h (TARGET_VERSION): Remove.
17854         * config/s390/tpf.h (TARGET_VERSION): Remove.
17855         * config/score/score.h (TARGET_VERSION): Remove.
17856         * config/sh/linux.h (TARGET_VERSION): Remove.
17857         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
17858         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
17859         * config/sh/sh.h (TARGET_VERSION): Remove.
17860         * config/sh/sh64.h (TARGET_VERSION): Remove.
17861         * config/sh/superh.h (TARGET_VERSION): Remove.
17862         * config/sh/vxworks.h (TARGET_VERSION): Remove.
17863         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
17864         * config/sparc/linux.h (TARGET_VERSION): Remove.
17865         * config/sparc/linux64.h (TARGET_VERSION): Remove.
17866         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
17867         TARGET_NAME32, TARGET_NAME): Remove.
17868         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
17869         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
17870         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
17871         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
17872         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
17873         * config/spu/spu.h (TARGET_VERSION): Remove.
17874         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
17875         * config/v850/v850.h (TARGET_VERSION): Remove.
17876         * config/vax/linux.h (TARGET_VERSION): Remove.
17877         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
17878         * config/xtensa/elf.h (TARGET_VERSION): Remove.
17879         * config/xtensa/linux.h (TARGET_VERSION): Remove.
17880
17881 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
17882
17883         PR target/48142
17884         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
17885         frame-related from frame-unrelated adjustments to the stack pointer.
17886
17887 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
17888
17889         * common.opt (fdebug-types-section): Move earlier.
17890         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
17891
17892 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
17893
17894         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
17895         var.
17896
17897 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
17898
17899         * tree.h (CASE_CHAIN): Define.
17900         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
17901         (gimple_redirect_edge_and_branch): Likewise.
17902
17903 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
17904
17905         PR middle-end/48367
17906         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
17907         calculation.
17908
17909 2011-03-30  Jeff Law  <law@redhat.com>
17910
17911         * PR bootstrap/48371
17912         * reload1.c (reload): Fix botch in last change.
17913
17914         * reload.h (struct reload): Fix typo introduced in last change.
17915
17916 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17917
17918         * config/arm/arm.opt (mhard-float, msoft-float): Mark
17919         Undocumented.  Remove help text.
17920         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
17921         -mhard-float.
17922
17923 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
17924
17925         * doc/options.texi (NegativeAlias): Document.
17926         (Alias): Mention NegativeAlias.
17927         * opt-functions.awk: Handle NegativeAlias.
17928         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
17929         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
17930         * opts.h (CL_NEGATIVE_ALIAS): Define.
17931         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
17932         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
17933         OPT_mspe_.
17934         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
17935         Alias entries.
17936         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
17937         mno-spe and mno-isel instead of mspe=no and -misel=no.
17938
17939 2011-03-29  Mark Wielaard  <mjw@redhat.com>
17940
17941         * common.opt (fdebug-types-section): New flag.
17942         * doc/invoke.texi: Document new -fno-debug-types-section flag.
17943         * dwarf2out.c (use_debug_types): New define.
17944         (struct die_struct): Mark die_id with GTY desc use_debug_types.
17945         (print_die): Guard output of type unit signatures using
17946         use_debug_types.
17947         (build_abbrev_table): Replace assert of dwarf_version >= 4
17948         with assert on use_debug_types.
17949         (size_of_die): Likewise.
17950         (unmark_dies): Likewise.
17951         (value_format): Decide AT_ref_external form on use_debug_types.
17952         (output_die): Replace dwarf_version version check guard with
17953         use_debug_types where appropriate.
17954         (modified_type_die): Likewise.
17955         (gen_reference_type_die): Likewise.
17956         (dwarf2out_start_source_file): Likewise.
17957         (dwarf2out_end_source_file): Likewise.
17958         (prune_unused_types_walk_attribs): Likewise.
17959         (dwarf2out_finish): Likewise.
17960
17961 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
17962
17963         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
17964
17965 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
17966
17967         PR rtl-optimization/48332
17968         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
17969         mode of input operand N and modeN to its actual mode.
17970
17971 2011-03-30  Jeff Law  <law@redhat.com>
17972
17973         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
17974         define accessor macro.
17975         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
17976         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
17977         (reg_equiv_init): Likewise.
17978         (reg_equivs_size): New variable.
17979         (reg_equiv_init_size): Remove.
17980         (allocate_initial_values): Move prototype to here from....
17981         * integrate.h (allocate_initial_values): Remove prototype.
17982         * integrate.c: Include reload.h.
17983         (allocate_initial_values): Corresponding changes.
17984         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
17985         (fix_reg_equiv_init, no_equiv): Corresponding changes.
17986         (update_equiv_regs): Corresponding changes.
17987         (ira): Corresponding changes.
17988         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
17989         (push_secondary_reload): Corresponding changes.
17990         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
17991         (make_memloc, find_reloads_address): Corresponding changes.
17992         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
17993         (find_reloads_address_1): Corresponding changes.
17994         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
17995         (refers_to_regno_for_reload_p): Corresponding changes.
17996         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
17997         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
17998         * reload1.c: Include ggc.h.
17999         (grow_reg_equivs): New function.
18000         (replace_pseudos_in, reload): Corresponding changes.
18001         (calculate_needs_all_insns, alter_regs): Corresponding changes.
18002         (eliminate_regs_1, elimination_effects): Corresponding changes.
18003         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
18004         (delete_output_reload): Likewise.
18005         * caller-save.c (mark_referenced_regs): Corresponding changes.
18006         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
18007         * frv/predicates.md (frv_load_operand): Corresponding changes.
18008         * microblaze/microblaze.c (double_memory_operand): Corresponding
18009         changes.
18010         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
18011         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
18012         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
18013         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
18014         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
18015         changes.
18016         * pa/pa.c (emit_move_sequence): Corresponding changes.
18017         * vax/vax.c (nonindexed_address_p): Corresponding changes.
18018
18019 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
18020
18021         PR target/47551
18022         * config/arm/arm.c (coproc_secondary_reload_class): Handle
18023         structure modes.  Don't check neon_vector_mem_operand for
18024         vector or structure modes.
18025
18026 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
18027             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18028
18029         PR target/43590
18030         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
18031         operand 1 and reshuffle the operands to match.
18032         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
18033
18034 2011-03-30  Christian Schüler  <cschueler@gmx.de>
18035
18036         PR driver/48208
18037         * config/c.opt (F): Added 'Driver' to -F option.
18038
18039         PR driver/48260
18040         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
18041           handler function.
18042         * config/darwin.opt: Added '-arch' option.
18043
18044 2011-03-30  Nick Clifton  <nickc@redhat.com>
18045
18046         * config/rx/rx.md: Add peepholes and patterns to combine
18047         extending loads and simple arithmetic instructions.
18048         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
18049         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
18050         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
18051         modes to use pre-decrement and post-increment addressing.
18052         (rx_is_restricted_memory_address): Add range checking of REG+INT
18053         addresses.
18054         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
18055         (rx_memory_move_cost): Adjust cost of stores.
18056         (rx_adjust_insn_length): New function.
18057
18058 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
18059
18060         PR c/48305
18061         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
18062         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
18063         matching arg00/arg01 types.
18064
18065 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
18066
18067         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
18068         last_location to UNKNOWN_LOCATION.
18069
18070 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
18071
18072         PR target/48349
18073         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
18074         FLOAT_SSE_REGS.
18075
18076 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
18077             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18078
18079         PR bootstrap/48337
18080         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
18081         Init(PROCESSOR_V7).
18082         (sparc_cpu): Likewise.
18083         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
18084         PROCESSOR_V7.
18085
18086 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
18087
18088         PR target/48336
18089         PR middle-end/48342
18090         PR rtl-optimization/48345
18091         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
18092         hard regs for given mode from profitable regs when doing secondary
18093         allocation.
18094
18095 2011-03-29  Jeff Law  <law@redhat.com>
18096
18097         PR bootstrap/48327
18098         * tree-ssa-threadupdate.c (struct redirection_data): Remove
18099         do_not_duplicate field.
18100         (lookup_redirection_data): Corresponding changes.
18101         (create_duplicates): Always create a template block.
18102         (redirect_edges): Remove code which reused the original block
18103         when it was going to become unreachable code.
18104         (thread_block): Don't set do_not_duplicate field.
18105
18106 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
18107
18108         * lto-opts.c (register_user_option_p, lto_register_user_option):
18109         Make type argument unsigned.
18110         * lto-streamer.h (lto_register_user_option): Make type argument
18111         unsigned.
18112         * opth-gen.awk: Make CL_* macros unsigned.
18113         * opts-common.c (find_opt): Make lang_mask argument unsigned.
18114         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
18115         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
18116         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
18117         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
18118         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
18119         (find_opt): Make lang_mask argument unsigned.
18120
18121 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
18122
18123         PR rtl-optimization/48331
18124         PR rtl-optimization/48334
18125         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
18126         for any used algorithm.
18127
18128 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
18129
18130         * ira-conflicts.c (build_object_conflicts): Add unused attribute
18131         to parent_max.
18132
18133 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
18134
18135         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
18136         (alpha_option_override): Don't set alpha_sr_alias_set.
18137         (emit_frame_store_1): Use gen_frame_mem rather than calling
18138         set_mem_alias_set.
18139         (alpha_expand_epilogue): Ditto.
18140
18141 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
18142
18143         PR tree-optimization/48290
18144         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
18145         vectorization, check that relevant phis in the basic block after
18146         the inner loop are really inner loop's exit phis.
18147
18148 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
18149
18150         PR debug/48190
18151         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
18152         (cached_dw_loc_list_def): New structure.
18153         (cached_dw_loc_list): New typedef.
18154         (cached_dw_loc_list_table): New variable.
18155         (cached_dw_loc_list_table_hash): New function.
18156         (cached_dw_loc_list_table_eq): Likewise.
18157         (add_location_or_const_value_attribute): Take a bool cache_p.
18158         Cache the list when the parameter is true.
18159         (gen_formal_parameter_die): Update caller.
18160         (gen_variable_die): Likewise.
18161         (dwarf2out_finish): Likewise.
18162         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
18163         while generating debug info for the decl.
18164         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
18165         (dwarf2out_init): Initialize cached_dw_loc_list_table.
18166         (resolve_addr): Cache the result of resolving a chain of
18167         location lists.
18168
18169 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
18170
18171         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
18172         conflict object hard regset nodes have intersecting hard reg sets.
18173
18174         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
18175         after regstat_init_n_sets_and_refs.
18176
18177         * ira.c: Add more comments at the top.
18178         (setup_stack_reg_pressure_class, setup_pressure_classes):
18179         Add comments how we compute the register pressure classes.
18180         (setup_allocno_and_important_classes): Add more comments.
18181         (setup_class_translate_array, reorder_important_classes)
18182         (setup_reg_class_relations): Add comments.
18183
18184         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
18185         start of the file.
18186
18187         * ira-color.c: Add 2011 to the Copyright line.
18188         (assign_hard_reg):  Add more comments.
18189         (improve_allocation): Ditto.
18190
18191         * ira-costs.c: Add 2011 to the Copyright line.
18192         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
18193         comments.
18194         (setup_regno_cost_classes_by_mode): Ditto.
18195
18196         Initial patches from ira-improv branch:
18197
18198         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
18199
18200         * ira-build.c (ira_create_object): Remove initialization of
18201         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
18202         (ira_create_allocno): Remove initialization of
18203         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
18204         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
18205         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
18206         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
18207         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
18208         Initialize ALLOCNO_ADD_DATA.
18209         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
18210         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
18211         ALLOCNO_REG.
18212         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
18213         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
18214
18215         * ira.c (ira_reallocate): Remove.
18216         (setup_pressure_classes): Call
18217         ira_init_register_move_cost_if_necessary.  Use
18218         ira_register_move_cost instead of ira_get_register_move_cost.
18219         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
18220         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
18221
18222         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
18223         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
18224         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
18225         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
18226         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
18227         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
18228         Fix formatting.
18229         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
18230         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
18231         (struct allocno_color_data): New.
18232         (allocno_color_data_t): New typedef.
18233         (allocno_color_data): New definition.
18234         (ALLOCNO_COLOR_DATA): New macro.
18235         (struct object_color_data): New.
18236         (object_color_data_t): New typedef.
18237         (object_color_data): New definition.
18238         (OBJECT_COLOR_DATA): New macro.
18239         (update_copy_costs, calculate_allocno_spill_cost): Call
18240         ira_init_register_move_cost_if_necessary.  Use
18241         ira_register_move_cost instead of ira_get_register_move_cost.
18242         (move_spill_restore, update_curr_costs): Ditto.
18243         (allocno_spill_priority): Make it inline.
18244         (color_pass): Allocate and free allocno_color_dat and object_color_data.
18245         (struct coalesce_data, coalesce_data_t): New.
18246         (allocno_coalesce_data): New definition.
18247         (ALLOCNO_COALESCE_DATA): New macro.
18248         (merge_allocnos, coalesced_allocno_conflict_p): Use
18249         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
18250         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
18251         (coalesce_allocnos): Ditto.
18252         (setup_coalesced_allocno_costs_and_nums): Ditto.
18253         (collect_spilled_coalesced_allocnos): Ditto.
18254         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
18255         (setup_slot_coalesced_allocno_live_ranges): Ditto.
18256         (coalesce_spill_slots): Ditto.
18257         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
18258         free allocno_coalesce_data.
18259
18260         * ira-conflicts.c: Fix formatting.
18261         (process_regs_for_copy): Call
18262         ira_init_register_move_cost_if_necessary.  Use
18263         ira_register_move_cost instead of ira_get_register_move_cost.
18264         (build_object_conflicts): Optimize.
18265
18266         * ira-costs.c (record_reg_classes): Optimize.  Call
18267         ira_init_register_move_cost_if_necessary.  Use
18268         ira_register_move_cost, ira_may_move_in_cost, and
18269         ira_may_move_out_cost instead of ira_get_register_move_cost and
18270         ira_get_may_move_cost.
18271         (record_address_regs): Ditto.
18272         (scan_one_insn): Optimize.
18273         (find_costs_and_classes): Optimize.
18274         (process_bb_node_for_hard_reg_moves): Call
18275         ira_init_register_move_cost_if_necessary.  Use
18276         ira_register_move_cost instead of ira_get_register_move_cost.
18277
18278         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
18279         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
18280         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
18281         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
18282         definitions.
18283         (ira_initiate_emit_data, ira_finish_emit_data)
18284         (create_new_allocno): New functions.
18285         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
18286         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
18287         Use ira_register_move_cost instead of ira_get_register_move_cost.
18288
18289         * ira-int.h: Fix some comments.
18290         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
18291         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
18292         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
18293         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
18294         add_data.
18295         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
18296         bitfield after mode.  Make hard_regno a short int.  Make
18297         hard_regno short.  Remove first_coalesced_allocno and
18298         next_coalesced_allocno.  Move mem_optimized_dest_p,
18299         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
18300         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
18301         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
18302         temp, colorable_p.  Add new member add_data.
18303         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
18304         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
18305         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
18306         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
18307         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
18308         (ALLOCNO_ADD_DATA): New macro.
18309         (ira_emit_data_t): New typedef.
18310         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
18311         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
18312         from struct ira_allocno.
18313         (ALLOCNO_EMIT_DATA): New macro.
18314         (ira_allocno_emit_data, allocno_emit_reg): New.
18315         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
18316         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
18317         (OBJECT_ADD_DATA): New macro.
18318         (ira_reallocate): Remove.
18319         (ira_initiate_emit_data, ira_finish_emit_data): New.
18320         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
18321         (ira_init_register_move_cost_if_necessary): New.
18322         (ira_object_conflict_iter_next): Merge into
18323         ira_object_conflict_iter_cond.
18324         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
18325
18326         * ira-live.c (process_single_reg_class_operands): Call
18327         ira_init_register_move_cost_if_necessary.  Use
18328         ira_register_move_cost instead of ira_get_register_move_cost.
18329
18330         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
18331
18332         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
18333
18334         * ira-costs.c: Fix formatting.
18335         (cost_classes, cost_classes_num): Remove.
18336         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
18337         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
18338         (cost_classes_del, cost_classes_htab): New.
18339         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
18340         (initiate_regno_cost_classes, setup_cost_classes): New.
18341         (setup_regno_cost_classes_by_aclass): New.
18342         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
18343         (record_reg_classes): Use regno_cost_classes instead of
18344         cost_classes.  Move checking opposite operand up.
18345         (record_address_regs): Use regno_cost_classes
18346         instead of cost_classes.
18347         (scan_one_insn): Ditto.  Use always general register.
18348         (print_allocno_costs): Use regno_cost_classes instead of
18349         cost_classes.
18350         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
18351         (find_costs_and_classes): Set up cost classes for each registers.
18352         Use also their mode for this.  Use regno_cost_classes instead of
18353         cost_classes.
18354         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
18355         cost_classes.
18356         (free_ira_costs, ira_init_costs): Don't use cost_classes.
18357         (ira_costs, ira_set_pseudo_classes): Call
18358         initiate_regno_cost_classes and finish_regno_cost_classes.
18359
18360         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
18361
18362         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
18363
18364         * target.def (ira_cover_classes): Remove.
18365
18366         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
18367
18368         * doc/tm.texi.in: Ditto.
18369
18370         * ira-conflicts.c: Remove mentioning cover classes from the file.
18371         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
18372         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
18373
18374         * targhooks.c (default_ira_cover_classes): Remove.
18375
18376         * targhooks.h (default_ira_cover_classes): Ditto.
18377
18378         * haifa-sched.c: Remove mentioning cover classes from the file.
18379         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
18380         ira_pressure_classes and ira_pressure_classes_num instead of
18381         ira_reg_class_cover_size and ira_reg_class_cover.  Use
18382         sched_regno_pressure_class instead of sched_regno_cover_class.
18383         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
18384         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18385
18386         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
18387         classes from the file.
18388         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
18389         (struct object_hard_regs, struct object_hard_regs_node): New.
18390         (struct ira_object): New members profitable_hard_regs,
18391         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
18392         (struct ira_allocno): Rename cover_class to aclass.  Rename
18393         cover_class_cost and updated_cover_class_cost to class_cost and
18394         updated_class_cost.  Remove splay_removed_p and
18395         left_conflict_size.  Add new members colorable_p.
18396         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
18397         (ALLOCNO_COLORABLE_P): New macro.
18398         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
18399         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
18400         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
18401         (OBJECT_...): Rename parameter C to O.
18402         (OBJECT_PROFITABLE_HARD_REGS): New macro.
18403         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
18404         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
18405         (struct target_ira_int): New members x_ira_max_memory_move_cost,
18406         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
18407         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
18408         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
18409         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
18410         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
18411         x_ira_reg_class_subunion.
18412         (ira_max_memory_move_cost, ira_max_register_move_cost)
18413         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
18414         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
18415         (ira_important_class_nums, ira_reg_class_superunion): New macros.
18416         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
18417         (ira_reg_class_union): Rename to ira_reg_class_subunion.
18418         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18419         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18420         (ira_tune_allocno_costs_and_cover_classes): Rename to
18421         ira_tune_allocno_costs.
18422         (ira_debug_hard_regs_forest): New.
18423         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
18424         (ira_object_conflict_iter_next): Fix comments.
18425         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
18426         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
18427         cover_class to aclass.
18428         (ira_allocate_and_accumulate_costs): Ditto.
18429         (ira_allocate_and_set_or_copy_costs): Ditto.
18430
18431         * opts.c (decode_options): Remove ira_cover_class check.
18432
18433         * ira-color.c: Remove mentioning cover classes from the file.  Use
18434         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
18435         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
18436         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
18437         (splay-tree.h): Remove include.
18438         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
18439         before copy_freq_compare_func.
18440         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
18441         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
18442         New definitions.
18443         (hard_regs_roots, hard_regs_node_vec): Ditto.
18444         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
18445         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
18446         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
18447         (create_new_object_hard_regs_node): Ditto.
18448         (add_new_object_hard_regs_node_to_forest): Ditto.
18449         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
18450         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
18451         Ditto.
18452         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
18453         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
18454         (remove_unused_object_hard_regs_nodes): Ditto.
18455         (enumerate_object_hard_regs_nodes): Ditto.
18456         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
18457         (object_hard_regs_subnode_t): Ditto.
18458         (struct object_hard_regs_subnode): Ditto.
18459         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
18460         (setup_object_hard_regs_subnode_index): Ditto.
18461         (get_object_hard_regs_subnodes_num): Ditto.
18462         (form_object_hard_regs_nodes_forest): Ditto.
18463         (finish_object_hard_regs_nodes_tree): Ditto.
18464         (finish_object_hard_regs_nodes_forest): Ditto.
18465         (allocnos_have_intersected_live_ranges_p): Rename to
18466         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
18467         (pseudos_have_intersected_live_ranges_p): Rename to
18468         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
18469         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
18470         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
18471         (update_copy_costs): Remove assert.  Skip cost update if the hard
18472         reg does not belong the class.
18473         (assign_hard_reg): Process only profitable hard regs.
18474         (uncolorable_allocnos_num): Make it scalar.
18475         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
18476         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
18477         and ira_reg_class_max_nregs.
18478         (bucket_allocno_compare_func): Check frequency first.
18479         (sort_bucket): Add compare function as a parameter.
18480         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
18481         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
18482         (push_allocno_to_stack): Rewrite for checking new allocno
18483         colorability.
18484         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
18485         (push_only_colorable): Pass new parameter to sort_bucket.
18486         (push_allocno_to_spill): Remove.
18487         (allocno_spill_priority_compare): Make it inline and rewrite.
18488         (splay_tree_allocate, splay_tree_free): Remove.
18489         (allocno_spill_sort_compare): New function.
18490         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
18491         build and use splay tree.  Choose first allocno in uncolorable
18492         allocno bucket to spill.  Remove setting spill cost.
18493         (all_conflicting_hard_regs): Remove.
18494         (setup_allocno_available_regs_num): Check only profitable hard
18495         regs.  Print info about hard regs nodes.
18496         (setup_allocno_left_conflicts_size): Remove.
18497         (put_allocno_into_bucket): Don't call
18498         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
18499         (improve_allocation): New.
18500         (color_allocnos): Call setup_profitable_hard_regs,
18501         form_object_hard_regs_nodes_forest, improve_allocation,
18502         finish_object_hard_regs_nodes_forest.  Setup spill cost.
18503         (print_loop_title): Use pressure classes.
18504         (color_allocnso): Ditto.
18505         (do_coloring): Remove allocation and freeing splay_tree_node_pool
18506         and allocnos_for_spilling.
18507         (ira_sort_regnos_for_alter_reg): Don't setup members
18508         {first,next}_coalesced_allocno.
18509         (color): Remove allocating and freeing removed_splay_allocno_vec.
18510         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
18511         prohibited_class_mode_regs.
18512
18513         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
18514         formatting.
18515         (update_allocno_pressure_excess_length): Use pressure classes.
18516         (inc_register_pressure, dec_register_pressure): Check for pressure
18517         class.
18518         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
18519         pressure class.  Use ira_reg_class_nregs instead of
18520         ira_reg_class_max_nregs.
18521         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
18522         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
18523         (single_reg_class): Use ira_reg_class_nregs instead of
18524         ira_reg_class_max_nregs.
18525         (process_bb_node_lives): Use pressure classes.
18526
18527         * ira-emit.c: Remove mentioning cover classes from the file.  Use
18528         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
18529         (change_loop): Use pressure classes.
18530         (modify_move_list): Call ira_set_allocno_class instead of
18531         ira_set_allocno_cover_class.
18532
18533         * ira-build.c: Remove mentioning cover classes from the file.  Use
18534         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
18535         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
18536         ALLOCNO_UPDATED_CLASS_COST instead of
18537         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
18538         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
18539         (ira_create_allocno): Remove initialization of
18540         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
18541         ALLOCNO_COLORABLE_P.
18542         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
18543         Update conflict regs for the objects.
18544         (create_cap_allocno): Remove assert.  Don't propagate
18545         ALLOCNO_AVAILABLE_REGS_NUM.
18546         (ira_free_allocno_costs): New function.
18547         (finish_allocno): Change a part of code into call of
18548         ira_free_allocno_costs.
18549         (low_pressure_loop_node_p): Use pressure classes.
18550         (object_range_compare_func): Don't compare classes.
18551         (setup_min_max_conflict_allocno_ids): Ditto.
18552
18553         * loop-invariant.c: Remove mentioning cover classes from the file.
18554         Use ira_pressure_classes and ira_pressure_classes_num instead of
18555         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
18556         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
18557         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18558         Use reg_allocno_class instead of reg_cover_class.
18559         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
18560         STACK_REG_COVER_CLASS.
18561         (get_regno_cover_class): Rename to get_regno_pressure_class.
18562         (move_loop_invariants): Initialize and finalize regstat.
18563
18564         * ira.c: Remove mentioning cover classes from the file.  Add
18565         comments about coloring without cover classes.  Use ALLOCNO_CLASS
18566         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
18567         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
18568         setup_class_subset_and_memory_move_costs.
18569         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
18570         (setup_cover_and_important_classes): Rename to
18571         setup_allocno_and_important_classes.
18572         (setup_class_translate_array): New.
18573         (setup_class_translate): Call it for allocno and pressure classes.
18574         (cover_class_order): Rename to allocno_class_order.
18575         (comp_reg_classes_func): Use ira_allocno_class_translate instead
18576         of ira_class_translate.
18577         (reorder_important_classes): Set up ira_important_class_nums.
18578         (setup_reg_class_relations): Set up ira_reg_class_superunion.
18579         (print_class_cover): Rename to print_classes.  Add parameter.
18580         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
18581         Print pressure classes too.
18582         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
18583         setup_reg_subclasses.
18584         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18585         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18586         (setup_prohibited_class_mode_regs): Use
18587         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
18588         (clarify_prohibited_class_mode_regs): New function.
18589         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
18590         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
18591         (ira_init_once): Initialize them.
18592         (free_register_move_costs): Process them.
18593         (ira_init): Move calls of find_reg_classes and
18594         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
18595         Call clarify_prohibited_class_mode_regs.
18596         (ira_no_alloc_reg): Remove.
18597         (too_high_register_pressure_p): Use pressure classes.
18598
18599         * sched-deps.c: Remove mentioning cover classes from the file.
18600         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
18601         ira_pressure_classes and ira_pressure_classes_num instead of
18602         ira_reg_class_cover_size and ira_reg_class_cover.
18603         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
18604         sched_regno_pressure_class instead of sched_regno_cover_class.
18605         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
18606         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
18607
18608         * ira.h: Add 2010 to Copyright.
18609         (ira_no_alloc_reg): Remove external.
18610         (struct target_ira): Rename x_ira_hard_regno_cover_class,
18611         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
18612         x_ira_class_translate to x_ira_hard_regno_allocno_class,
18613         x_ira_allocno_classes_num, x_ira_allocno_classes, and
18614         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
18615         x_ira_pressure_classes, x_ira_pressure_class_translate, and
18616         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
18617         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
18618         x_ira_no_alloc_regs.
18619         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
18620         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
18621         ira_allocno_classes_num and ira_allocno_classes.
18622         (ira_class_translate): Rename to ira_allocno_class_translate.
18623         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
18624         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
18625         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
18626         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
18627         (ira_no_alloc_regs): New.
18628
18629         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
18630         classes from the file.  Use ALLOCNO_CLASS instead of
18631         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
18632         ALLOCNO_COVER_CLASS_COST.
18633         (regno_cover_class): Rename to regno_aclass.
18634         (record_reg_classes): Use ira_reg_class_subunion instead of
18635         ira_reg_class_union.
18636         (record_address_regs): Check overflow.
18637         (scan_one_insn): Ditto.
18638         (print_allocno_costs): Print total mem cost fore regional allocation.
18639         (print_pseudo_costs): Use REG_N_REFS.
18640         (find_costs_and_classes): Use classes intersected with them on the
18641         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
18642         ira_reg_class_union.  Use ira_allocno_class_translate and
18643         regno_aclass instead of ira_class_translate and regno_cover_class.
18644         Modify code for finding regno_aclass.  Setup preferred classes for
18645         the next pass.
18646         (setup_allocno_cover_class_and_costs): Rename to
18647         setup_allocno_class_and_costs.  Use regno_aclass instead of
18648         regno_cover_class.  Use ira_set_allocno_class instead of
18649         ira_set_allocno_cover_class.
18650         (init_costs, finish_costs): Use regno_aclass instead of
18651         regno_cover_class.
18652         (ira_costs): Use setup_allocno_class_and_costs instead of
18653         setup_allocno_cover_class_and_costs.
18654         (ira_tune_allocno_costs_and_cover_classes): Rename to
18655         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
18656         by processing objects.  Use ira_reg_class_max_nregs instead of
18657         ira_reg_class_nregs.
18658
18659         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
18660
18661         * sched-int.h: Remove mentioning cover classes from the file.
18662         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
18663
18664         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
18665         classes from the file.
18666         (struct reg_pref): Rename coverclass into allocnoclass.
18667         (reg_cover_class): Rename to reg_allocno_class.
18668
18669         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
18670
18671         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
18672
18673         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
18674
18675         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
18676
18677         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
18678
18679         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
18680
18681         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
18682
18683         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
18684
18685         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
18686
18687         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
18688
18689         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
18690         (i386_ira_cover_classes): Ditto.
18691
18692         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
18693
18694         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
18695
18696         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
18697
18698         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
18699
18700         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
18701
18702         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
18703
18704         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
18705         (mips_ira_cover_classes): Ditto.
18706
18707         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
18708
18709         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
18710
18711         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
18712
18713         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
18714
18715         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
18716
18717         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
18718         (IRA_COVER_CLASSES_VSX): Ditto.
18719
18720         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
18721         (rs6000_ira_cover_classes): Ditto.
18722
18723         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
18724
18725         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
18726
18727         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
18728
18729         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
18730
18731         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
18732
18733         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
18734
18735         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
18736
18737         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
18738
18739         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
18740
18741         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
18742
18743 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
18744
18745         PR debug/48253
18746         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
18747         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
18748         dw_fde_unlikely_section_end_label, cold_in_std_section,
18749         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
18750         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
18751         fields.
18752         (output_fde): Use dw_fde_second_{begin,end} if second is
18753         true, otherwise dw_fde_{begin,end}.
18754         (output_call_frame_info): Test dw_fde_second_begin != NULL
18755         instead of dw_fde_switched_sections.
18756         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
18757         fields, initialize new fields.  Initialize in_std_section
18758         unconditionally from the first partition.
18759         (dwarf2out_end_epilogue): Don't override dw_fde_end when
18760         dw_fde_second_begin is non-NULL.
18761         (dwarf2out_switch_text_section): Stop initializing removed
18762         dw_fde_struct fields, initialize new fields, initialize
18763         also dw_fde_end here.  Set dw_fde_switch_cfi even when
18764         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
18765         (struct var_loc_list_def): Add last_before_switch field.
18766         (arange_table, arange_table_allocated, arange_table_in_use,
18767         ARANGE_TABLE_INCREMENT, add_arange): Removed.
18768         (size_of_aranges): Count !in_std_section and !second_in_std_section
18769         hunks in fdes, instead of looking at arange_table_in_use.
18770         (output_aranges): Add aranges_length argument, don't call
18771         size_of_aranges here.  Instead of using aranges_table*
18772         emit ranges for fdes when !in_std_section resp.
18773         !second_in_std_section.
18774         (dw_loc_list): Break ranges crossing section switch.
18775         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
18776         use dw_fde_second_end instead of dw_fde_end as end of last range.
18777         (gen_subprogram_die): Don't call add_arange.  Use
18778         dw_fde_{begin,end} for first partition and if switched
18779         section dw_fde_second_{begin,end} for the second.
18780         (var_location_switch_text_section_1,
18781         var_location_switch_text_section): New functions.
18782         (dwarf2out_begin_function): Initialize cold_text_section even
18783         when function_section () isn't text_section.
18784         (prune_unused_types): Don't walk arange_table.
18785         (dwarf2out_finish): Don't needlessly test
18786         flag_reorder_blocks_and_partition when testing cold_text_section_used.
18787         If info_section_emitted, call size_of_aranges and if it indicates
18788         non-empty .debug_aranges, call output_aranges with the computed
18789         size.  Stop using removed dw_fde_struct fields, use
18790         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
18791         for second.
18792
18793         PR debug/48203
18794         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
18795         create ENTRY_VALUE if incoming or address of incoming's MEM
18796         is a hard REG.
18797         * dwarf2out.c (mem_loc_descriptor): Don't emit
18798         DW_OP_GNU_entry_value of DW_OP_fbreg.
18799         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
18800         on ENTRY_VALUE is able to find the canonical parameter VALUE.
18801         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
18802         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
18803         ENTRY_VALUE_EXPs.
18804         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
18805         is a REG_P or MEM_P with REG_P address, compute hash directly
18806         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
18807         (preserve_only_constants): Don't clear VALUES forwaring
18808         ENTRY_VALUE to some other VALUE.
18809
18810 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
18811
18812         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
18813         instead of GEN_INT.
18814
18815 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
18816
18817         * cfgexpand.c (expand_gimple_cond): Always set the source location and
18818         block before expanding the statement.
18819         (expand_gimple_stmt_1): Likewise.  Set them here...
18820         (expand_gimple_stmt): ...and not here.  Tidy.
18821         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
18822         unknown.
18823
18824 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
18825
18826         * Makefile.in: New rule for cprop.o.
18827         * gcse.c: Move constant/copy propagation to cprop.c.
18828         (compute_local_properties): Only handle expression tables.
18829         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
18830         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
18831         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
18832         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
18833         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
18834         compute_cprop_data, find_used_regs, try_replace_reg,
18835         find_avail_set, cprop_jump, constprop_register, cprop_insn,
18836         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
18837         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
18838         find_bypass_set, reg_killed_on_edge, bypass_block,
18839         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
18840         execute_rtl_cprop, pass_rtl_cprop): Move to...
18841         * cprop.c: ...here.  New file, constant/copy propagation for RTL
18842         moved from gcse.c to here with minor cleanups in duplicated code.
18843
18844 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
18845
18846         * config/i386/i386.c (flag_opts): Fix a typo in
18847         -mavx256-split-unaligned-store.
18848
18849 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
18850
18851         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
18852         LIBCALL_VALUE): Remove macros.
18853         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18854         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18855         (h8300_function_value, h8300_libcall_value,
18856         h8300_function_value_regno_p): New functions.
18857
18858 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
18859
18860         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
18861
18862 2011-03-28  Jeff Law  <law@redhat.com>
18863
18864         * tree-ssa-threadupdate.c (redirect_edges): Call
18865         create_edge_and_update_destination_phis as needed.
18866         (create_edge_and_update_destination_phis): Accept new BB argument.
18867         All callers updated.
18868         (thread_block): Do not update the profile when threading around
18869         intermediate blocks.
18870         (thread_single_edge): Likewise.
18871         (determine_bb_domination_status): If BB is not a successor of the
18872         loop header, return NONDOMINATING.
18873         (register_jump_thread): Note when we register a jump thread around
18874         an intermediate block.
18875         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
18876         (thread_across_edge): Use it.
18877
18878 2011-03-28  Tristan Gingold  <gingold@adacore.com>
18879
18880         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
18881         when for_return is 2.
18882
18883 2011-03-28  Jeff Law  <law@redhat.com>
18884
18885         * var-tracking.c (canonicalize_values_mark): Delete unused
18886         lhs assignment.
18887         (canonicalize_values_star, set_variable_part): Likewise.
18888         (clobber_variable_part, delete_variable_part): Likewise.
18889
18890 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
18891
18892         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
18893
18894 2011-03-28  Martin Jambor  <mjambor@suse.cz>
18895
18896         * tree-inline.c (expand_call_inline): Do not check that destination
18897         node is analyzed.
18898         (optimize_inline_calls): Assert that destination node is analyzed.
18899         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
18900         not call tree_lowering_passes.
18901         * cgraph.h (cgraph_analyze_function): Declare.
18902         * cgraphunit.c (cgraph_analyze_function): Make public.
18903
18904 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
18905
18906         * config/sparc/sparc-opts.h: New.
18907         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
18908         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
18909         (sparc_option_override): Store processor_type enumeration rather
18910         than string in cpu_default.  Remove name and enumeration from
18911         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
18912         without using sparc_select.  Use target_flags_explicit instead of
18913         fpu_option_set.
18914         * config/sparc/sparc.h (enum processor_type): Move to
18915         sparc-opts.h.
18916         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
18917         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
18918         HeaderInclude entry.
18919         (mcpu=, mtune=): Use Var and Enum.
18920         (sparc_processor_type): New Enum and EnumValue entries.
18921
18922 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18923             Iain Sandoe  <iains@gcc.gnu.org>
18924
18925         PR target/48245
18926         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
18927
18928 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
18929
18930         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
18931         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
18932         Insert new statements at it in lieu of STMT.
18933         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
18934         * tree-vect-stmts.c (vectorizable_store): Likewise.
18935         (vectorizable_load): Likewise.
18936
18937 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
18938
18939         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
18940         (divtf3): Ditto.
18941         (multf3): Ditto.
18942         (subtf3): Ditto.
18943
18944 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18945
18946         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
18947         unaligned 256bit load/store.
18948         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
18949         (*avx_movdqu<avxmodesuffix>): Likewise.
18950
18951 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18952
18953         PR target/48288
18954         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
18955         * config/pa/pa.md (iordi3): Use new predicate in expander.
18956         (iorsi3): Likewise.
18957
18958 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
18959
18960         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
18961         FUNCTION_VALUE_REGNO_P): Remove macros.
18962         * config/mips/mips-protos.h (mips_function_value): Remove.
18963         * config/mips/mips.c (mips_function_value): Rename to...
18964         (mips_function_value_1): ... this. Make static.  Handle receiving
18965         the function type in 'fn_decl_or_type' argument.
18966         (mips_function_value, mips_libcall_value,
18967         mips_function_value_regno_p): New function.
18968         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
18969         TARGET_FUNCTION_VALUE_REGNO_P): Define.
18970
18971 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
18972
18973         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
18974         and -mavx256-split-unaligned-store.
18975         (ix86_option_override_internal): Split 32-byte AVX unaligned
18976         load/store by default.
18977         (ix86_avx256_split_vector_move_misalign): New.
18978         (ix86_expand_vector_move_misalign): Use it.
18979
18980         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
18981         -mavx256-split-unaligned-store.
18982
18983         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
18984         256bit load/store.  Generate unaligned store on misaligned memory
18985         operand.
18986         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
18987         256bit load/store.
18988         (*avx_movdqu<avxmodesuffix>): Likewise.
18989
18990         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
18991         -mavx256-split-unaligned-store.
18992
18993 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
18994
18995         PR target/38598
18996         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
18997         Update commentary.
18998
18999 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
19000
19001         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
19002         opno arguments with an expand_operand.  Use create_input_operand.
19003         (mips_prepare_builtin_target): Delete.
19004         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
19005         functions.
19006         (mips_expand_builtin_direct): Use create_output_operand and
19007         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
19008         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
19009         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
19010
19011 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
19012
19013         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
19014         function.
19015         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
19016
19017 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
19018
19019         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
19020         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
19021         basic blocks and call commit_edge_insertions directly.
19022         (fixup_abnormal_edges): Move from here to...
19023         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
19024         on the edges and return whether some have actually been inserted.
19025         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
19026         compensation code.
19027
19028 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
19029
19030         PR rtl-optimization/48144
19031         * sel-sched-ir.c (merge_history_vect): Factor out from ...
19032         (merge_expr_data): ... here.
19033         (av_set_intersect): Rename to av_set_code_motion_filter.
19034         Update all callers.  Call merge_history_vect when an expression
19035         is found in both sets.
19036         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
19037
19038 2011-03-26  Alan Modra  <amodra@gmail.com>
19039
19040         * config/rs6000/predicates.md (word_offset_memref_op): Handle
19041         cmodel medium addresses.
19042         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
19043         64-bit gpr loads and stores.
19044         (rs6000_secondary_reload_ppc64): New function.
19045         * config/rs6000/rs6000-protos.h: Declare it.
19046         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
19047
19048 2011-03-26  Alan Modra  <amodra@gmail.com>
19049
19050         PR target/47487
19051         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
19052         GNU Go in traceback table.
19053
19054 2011-03-25  Richard Henderson  <rth@redhat.com>
19055
19056         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
19057         if there are exactly 6 operands.
19058         (set_storage_via_setmem): Similarly.
19059
19060 2011-03-25  Kai Tietz  <ktietz@redhat.com>
19061
19062         * collect2.c (write_c_file_stat): Handle backslash
19063         as right-hand directory separator.
19064         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
19065         checking just for slash.
19066         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
19067         instead of checking for trailing slash.
19068         * gcc.c (record_temp_file): Use filename_cmp instead
19069         of strcmp.
19070         (do_spec_1): Likewise.
19071         (replace_outfile_spec_function): Likewise.
19072         (is_directory): Use filename_ncmp instead of strncmp.
19073         (print_multilib_info): Likewise.
19074         * gcov.c (find_source): Use filename_cmp instead
19075         instead of strcmp.
19076         (make_gcov_file_name): Fix order of slash/backslash
19077         checks.
19078         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
19079         (add_standard_paths): Likewise.
19080         * mips-tfile.c (saber_stop): Handle backslash.
19081         * prefix.c (update_path): Use filename_ncmp instead of
19082         strncmp.
19083         * profile.c (output_location): Use filename_cmp instead
19084         of strcmp.
19085         * read-md.c (handle_toplevel_file): Handle backslash.
19086         * tlink.c (frob_extension):  Likewise.
19087         * tree-cfg.c (same_line_p): Use filename_cmp instead of
19088         strcmp.
19089         * tree-dump.c (dequeue_and_dump): Handle backslash.
19090         * tree.c (get_file_function_name): Likewise.
19091         * gengtype.c (read_input_list): Likewise.
19092         (get_file_realbasename): Likewise.
19093         (get_output_file_with_visibility): Use filename_cmp
19094         instead of strcmp.
19095
19096 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
19097
19098         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
19099         case to VFPv1.
19100
19101 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
19102
19103         * fold-const.c (expr_location_or): New function.
19104         (fold_truth_not_expr): Call it.
19105
19106 2011-03-25  Jeff Law  <law@redhat.com>
19107
19108         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
19109         va_end.
19110         * c-family/c-common.c (def_fn_type): Likewise.
19111         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
19112         * emit-rtl.c (gen_rtvec): Likewise.
19113         * lto/lto-lang.c (def_fn_type): Likewise.
19114
19115 2011-03-25  Richard Guenther  <rguenther@suse.de>
19116
19117         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
19118         also generate copies.
19119         (fini_copy_prop): Handle constant values properly.
19120
19121 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
19122
19123         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
19124         mode size instead of bitsize with DWARF2_ADDR_SIZE.
19125         (hash_loc_operands, compare_loc_operands): Handle
19126         DW_OP_GNU_entry_value.
19127
19128 2011-03-25  Kai Tietz  <ktietz@redhat.com>
19129
19130         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
19131         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
19132         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
19133         comment and use macro TARGET_64BIT_MS_ABI instead.
19134         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
19135         and change default behavior for 32-bit MS_ABI.
19136         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
19137         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
19138         32-bit, too.
19139         (ix86_cfun_abi): Likewise.
19140         (ix86_maybe_switch_abi): Adjust comment.
19141         (init_cumulative_args): Check for bit-ness in MS_ABI case.
19142         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
19143         instead of checking for SYSV_ABI.
19144         (ix86_nsaved_sseregs): Likewise.
19145         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
19146         to 16 bytes.
19147         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
19148         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
19149         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
19150         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
19151         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
19152
19153 2011-03-25  Richard Guenther  <rguenther@suse.de>
19154
19155         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
19156         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
19157         (verify_gimple): Remove.
19158         * tree-cfg.c (verify_gimple_call): Merge verification
19159         from verify_stmts.
19160         (verify_gimple_phi): Merge verification from verify_stmts.
19161         (verify_gimple_label): New function.
19162         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
19163         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
19164         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
19165         (verify_stmts): Rename to verify_gimple_in_cfg.
19166         (verify_gimple_in_cfg): New function.
19167         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
19168         * tree-ssa.c (verify_ssa): Likewise.
19169         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
19170
19171 2011-03-25  Richard Guenther  <rguenther@suse.de>
19172
19173         * passes.c (init_optimization_passes): Add FRE pass after
19174         early SRA.
19175
19176 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
19177             Andrew Stubbs  <ams@codesourcery.com>
19178
19179         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
19180         for Cortex-A8.
19181         (arm_movdi_vfp_cortexa8): New pattern.
19182         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
19183         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
19184         instructions when tuning for Cortex-A8.  Set attribute "arch".
19185         * config/arm/arm.md: Move include arm-tune.md up a bit.
19186         (define_attr "arch"): Add "onlya8" and "nota8" values.
19187         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
19188
19189 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
19190
19191         PR bootstrap/48282
19192         Revert:
19193         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19194
19195         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
19196         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
19197         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
19198         * passes.c (init_optimization_passes): Move
19199         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
19200
19201 2011-03-25  Kai Tietz  <ktietz@redhat.com>
19202
19203         * c-typeck.c (comptypes_internal): Replace target
19204         hook call of comp_type_attributes by version in tree.c file.
19205         * gimple.c (gimple_types_compatible_p_1): Likewise.
19206         * tree-ssa.c (useless_type_conversion_p): Likewise.
19207         * tree.c (build_type_attribute_qual_variant): Likewise.
19208         (attribute_value_equal): New static helper function.
19209         (comp_type_attributes): New function.
19210         (merge_attributes): Use attribute_value_equal for comparison.
19211         (attribute_list_contained): Likewise.
19212         * tree.h (comp_type_attributes): New prototype.
19213
19214 2011-03-25  Richard Guenther  <rguenther@suse.de>
19215
19216         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
19217         of complex types at -O0.
19218         (verify_gimple_assign_binary): Likewise.
19219         (verify_gimple_assign_ternary): Likewise.
19220
19221 2011-03-24  Mark Wielaard  <mjw@redhat.com>
19222
19223         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
19224         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
19225
19226 2011-03-24  Mark Wielaard  <mjw@redhat.com>
19227
19228         PR debug/48041
19229         * dwarf2out.c (output_abbrev_section): Only write table when
19230         abbrev_die_table_in_use > 1.
19231
19232 2011-02-24  Richard Henderson  <rth@redhat.com>
19233
19234         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
19235         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
19236         (alpha_expand_unaligned_load_words): Use extql.
19237         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
19238         (emit_insxl): Handle all modes for consistency.
19239
19240 2011-02-24  Richard Henderson  <rth@redhat.com>
19241
19242         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
19243         (alpha_expand_unaligned_load): Likewise.
19244         (alpha_expand_unaligned_store): Likewise.
19245         (alpha_expand_unaligned_load_words): Likewise.
19246         (alpha_expand_unaligned_store_words): Likewise.
19247         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
19248         (alpha_split_lock_test_and_set_12): Likewise.
19249         (print_operand, alpha_fold_builtin_extxx): Likewise.
19250         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
19251         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
19252         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
19253         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
19254         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
19255         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
19256         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
19257         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
19258         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
19259         (extwl, extll, extql): Similarly.
19260         (inswh, inslh, insqh): Similarly.
19261         (mskbl, mskwl, mskll, mskql): Similarly.
19262         (mskwh, msklh, mskqh): Similarly.
19263
19264 2011-02-24  Richard Henderson  <rth@redhat.com>
19265
19266         * config/alpha/alpha.md (attribute isa): Add er, ner.
19267         (attribute enabled): Handle them.
19268         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
19269
19270 2011-02-24  Richard Henderson  <rth@redhat.com>
19271
19272         * config/alpha/alpha.md (attribute isa): Add vms.
19273         (attribute enabled): Handle it.
19274         (*movsf): Merge *movsf_{nofix,fix,nofp}.
19275         (*movdf): Merge *movdf_{nofix,fix,nofp}.
19276         (*movtf): Rename from *movtf_internal for consistency.
19277         (*movsi): Merge with *movsi_nt_vms.
19278         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
19279         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
19280         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
19281         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
19282
19283 2011-02-24  Richard Henderson  <rth@redhat.com>
19284
19285         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
19286         (extendqisi2, extendhisi2): Likewise.
19287         (extendqidi2): Simplify BWX/non-BWX expansions.
19288         (extendhidi2): Similarly.
19289
19290 2011-02-24  Richard Henderson  <rth@redhat.com>
19291
19292         * config/alpha/alpha.md (attribute isa): New.
19293         (attribute enabled): New.
19294         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
19295         (zero_extendqisi2, zero_extendqidi2): Similarly.
19296         (zero_extendhisi2, zero_extendhidi2): Similarly.
19297         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
19298
19299 2011-02-24  Richard Henderson  <rth@redhat.com>
19300
19301         * config/alpha/predicates.md (input_operand): Revert last change;
19302         update comment to mention 32-bit VMS rather than Windows.
19303
19304 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19305
19306         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
19307         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
19308         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
19309         * passes.c (init_optimization_passes): Move
19310         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
19311
19312 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19313
19314         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
19315
19316 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
19317
19318         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
19319         correctly.
19320
19321 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
19322
19323         PR debug/48204
19324         * simplify-rtx.c (simplify_const_unary_operation): Call
19325         real_convert when changing mode class with FLOAT_EXTEND.
19326
19327 2011-03-24  Nick Clifton  <nickc@redhat.com>
19328
19329         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
19330         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
19331         * config/rx/rx.c (rx_option_override): Set align_jumps,
19332         align_loops and align_labels if not set by the user.
19333         (rx_align_for_label): New function.
19334         (rx_max_skip_for_label): New function.
19335         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
19336         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
19337         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
19338         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
19339         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
19340
19341 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19342
19343         PR rtl-optimization/48263
19344         * optabs.c (expand_binop_directly): Reinstate convert_modes code
19345         and original commutative_p handling.  Use maybe_gen_insn.
19346
19347 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19348
19349         * reload.c (find_reloads_subreg_address): Add address_reloaded
19350         parameter and return true there if the full address has been
19351         reloaded.
19352         (find_reloads_toplev): Pass address_reloaded flag.
19353         (find_reloads_address_1): Don't use address_reloaded parameter.
19354
19355 2011-03-24  Jeff Law  <law@redhat.com>
19356
19357         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
19358         unused variable "ann".
19359         (remove_unused_locals): Likewise.
19360
19361         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
19362         statement.
19363
19364         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
19365         after it is freed.
19366
19367 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19368
19369         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
19370         for invalid symbolic addresses.
19371         (s390_secondary_reload): Don't use s390_check_symref_alignment for
19372         larl operands.
19373
19374 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19375
19376         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
19377         the argument in calls to fold_truth_not_expr.
19378
19379 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19380
19381         * tree.c (record_node_allocation_statistics): New function.
19382         (make_node_stat, copy_node_stat, build_string): Call it.
19383         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
19384         (build1_stat, build_omp_clause): Likewise.
19385
19386 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19387
19388         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
19389         last commit.
19390
19391 2011-03-24  Richard Guenther  <rguenther@suse.de>
19392
19393         PR tree-optimization/48271
19394         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
19395         blocks that still exist.
19396
19397 2011-03-24  Richard Guenther  <rguenther@suse.de>
19398
19399         PR tree-optimization/48270
19400         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
19401         not free datarefs before ddrs.
19402
19403 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
19404
19405         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
19406         from the address built for a reference with variable offset.
19407
19408 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
19409
19410         PR target/48237
19411         * config/i386/i386.md (*movdf_internal_rex64): Do not split
19412         alternatives that can be handled with movq or movabsq insn.
19413         (*movdf_internal): Disable for !TARGET_64BIT.
19414         (*movdf_internal_nointeger): Ditto.
19415         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
19416
19417 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
19418
19419         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
19420         (FUNCTION_ARG_ADVANCE): Likewise.
19421         * tm.texi.in: Change references to them to hook references.
19422         * tm.texi: Regenerate.
19423         * targhooks.c (default_function_arg): Eliminate check for target macro.
19424         (default_function_incoming_arg): Likewise.
19425         (default_function_arg_advance): Likewise.
19426         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
19427         (function_arg_advance): Likewise.
19428         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
19429
19430 2011-03-24  Richard Guenther  <rguenther@suse.de>
19431
19432         PR middle-end/48269
19433         * tree-object-size.c (addr_object_size): Do not double-account
19434         for MEM_REF offsets.
19435
19436 2011-03-24  Diego Novillo  <dnovillo@google.com>
19437
19438         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
19439         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
19440         (lto_input_data_block): Move from lto-opts.c.  Make extern.
19441         Update all users.
19442         (lto_input_string): Rename from input_string.  Make extern.
19443         Update all users.
19444         * lto-streamer-out.c (lto_output_string_with_length): Rename from
19445         output_string_with_length.
19446         Output 0 to indicate a non-NULL string.  Update all callers to
19447         not emit 0.
19448         (lto_output_string): Rename from output_string.  Make extern.
19449         Update all users.
19450         (lto_output_decl_state_streams): Make extern.
19451         (lto_output_decl_state_refs): Make extern.
19452         * lto-streamer.h (lto_input_string): Declare.
19453         (lto_input_data_block): Declare.
19454         (lto_output_string): Declare.
19455         (lto_output_string_with_length): Declare.
19456         (lto_output_decl_state_streams): Declare.
19457         (lto_output_decl_state_refs): Declare.
19458
19459 2011-03-24  Richard Guenther  <rguenther@suse.de>
19460
19461         PR tree-optimization/46562
19462         * tree.c (build_invariant_address): New function.
19463         * tree.h (build_invariant_address): Declare.
19464         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
19465         a renamed function moved ...
19466         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
19467         Take valueization callback parameter.
19468         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
19469         * gimple-fold.h: New file.
19470         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
19471         (ccp_fold, fold_const_aggregate_ref,
19472         fold_ctor_reference, fold_nonarray_ctor_reference,
19473         fold_array_ctor_reference, fold_string_cst_ctor_reference,
19474         get_base_constructor): Move ...
19475         * gimple-fold.c: ... here.
19476         (gimple_fold_stmt_to_constant_1): New function
19477         split out from ccp_fold.  Take a valueization callback parameter.
19478         Valueize all operands.
19479         (gimple_fold_stmt_to_constant): New wrapper function.
19480         (fold_const_aggregate_ref_1): New function split out from
19481         fold_const_aggregate_ref.  Take a valueization callback parameter.
19482         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
19483         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
19484         invariant POINTER_PLUS_EXPRs to invariant form.
19485         (vn_valueize): New function.
19486         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
19487         * tree-vrp.c (vrp_valueize): New function.
19488         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
19489         to fold statements to constants.
19490         * tree-ssa-pre.c (eliminate): Properly guard propagation of
19491         function declarations.
19492         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
19493         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
19494
19495 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
19496
19497         * config/h8300/predicates.md (jump_address_operand): Fix register
19498         mode check.
19499
19500 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
19501
19502         * doc/invoke.texi (max-stores-to-sink): Document.
19503         * params.h (MAX_STORES_TO_SINK): Define.
19504         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
19505         if either vectorization or if-conversion is disabled.
19506         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
19507         tree-vect-data-refs.c vect_equal_offsets.
19508         (dr_equal_offsets_p): New function.
19509         (find_data_references_in_bb): Remove static.
19510         * tree-data-ref.h (find_data_references_in_bb): Declare.
19511         (dr_equal_offsets_p): Likewise.
19512         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
19513         (vect_drs_dependent_in_basic_block): Update calls to
19514         vect_equal_offsets.
19515         (vect_check_interleaving): Likewise.
19516         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
19517         (cond_if_else_store_replacement): Rename to...
19518         (cond_if_else_store_replacement_1): ... this.  Change arguments and
19519         documentation.
19520         (cond_if_else_store_replacement): New function.
19521         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
19522         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
19523
19524 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
19525
19526         PR target/46934
19527         * config/arm/arm.md (casesi): Use the gen_int_mode() function
19528         to subtract lower bound instead of GEN_INT().
19529
19530 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
19531
19532         PR other/48179
19533         PR other/48221
19534         PR other/48234
19535         * doc/extend.texi (Alignment): Move section to match order in TOC.
19536         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
19537         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
19538
19539 2011-03-23  Jeff Law  <law@redhat.com>
19540
19541         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
19542         before removing the edge.
19543
19544         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
19545         it may have been freed by redirect_branch_edge or
19546         redirect_edge_succ_nodup.
19547
19548 2011-03-23  Richard Guenther  <rguenther@suse.de>
19549
19550         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
19551         (check_va_list_escapes): Likewise.
19552         (check_all_va_list_escapes): Likewise.
19553
19554 2011-03-23  Richard Guenther  <rguenther@suse.de>
19555
19556         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
19557         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
19558         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
19559         (alias.o): Likewise.
19560         (ipa-type-escape.o): Remove.
19561         (ipa-struct-reorg.o): Likewise.
19562         (GTFILES): Remove ipa-struct-reorg.c.
19563         * alias.c: Do not include ipa-type-escape.h.
19564         * tree-ssa-alias.c: Likewise.
19565         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
19566         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
19567         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
19568         and ipa-type-escape passes.
19569         * tree-pass.h (pass_ipa_type_escape): Remove.
19570         (pass_ipa_struct_reorg): Likewise.
19571         * ipa-struct-reorg.h: Remove.
19572         * ipa-struct-reorg.c: Likewise.
19573         * ipa-type-escape.h: Likewise.
19574         * ipa-type-escape.c: Likewise.
19575         * doc/invoke.texi (-fipa-struct-reorg): Remove.
19576         (--param struct-reorg-cold-struct-ratio): Likewise.
19577         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19578         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
19579         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
19580
19581 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19582
19583         * config/s390/2084.md: Enable all insn reservations also for z9_ec
19584         cpu attribute value.
19585         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
19586         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
19587         * config/s390/s390.c (processor_flags_table): New constant array.
19588         (s390_handle_arch_option): Remove.
19589         (s390_handle_option): Remove s390_handle_arch_option invocations
19590         and OPT_mwarn_framesize_ handling.
19591         (s390_option_override): Remove s390_handle_arch_option invocation.
19592         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
19593         warnings.
19594         * config/s390/s390.md (cpu attribute): Add z9_ec value.
19595         * config/s390/s390.opt (s390_tune, s390_arch)
19596         (march=): Replace s390_arch_option enum and values with
19597         processor_type.  Set variable name to s390_arch.  Set
19598         initialization value.
19599         (mtune=): Replace s390_arch_option with processor_type.  Set
19600         variable name to s390_tune.  Set initialization value.
19601
19602 2011-03-23  Julian Brown  <julian@codesourcery.com>
19603
19604         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
19605         accesses which are not naturally aligned.
19606
19607 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
19608
19609         PR target/47553
19610         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
19611
19612 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
19613
19614         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
19615         parameter from "int" to "enum insn_code".
19616         (expand_operand_type): New enum.
19617         (expand_operand): New structure.
19618         (create_expand_operand): New function.
19619         (create_fixed_operand, create_output_operand): Likewise
19620         (create_input_operand, create_convert_operand_to): Likewise.
19621         (create_convert_operand_from, create_address_operand): Likewise.
19622         (create_integer_operand): Likewise.
19623         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
19624         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19625         (expand_insn, expand_jump_insn): Likewise.
19626         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
19627         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
19628         (expand_movstr, expand_builtin___clear_cache): Likewise.
19629         (expand_builtin_lock_release): Likewise.
19630         * explow.c (allocate_dynamic_stack_space): Likewise.
19631         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
19632         and use the default handling in that case.
19633         * expmed.c (check_predicate_volatile_ok): Delete.
19634         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
19635         (emit_cstore): Likewise.
19636         * expr.c (emit_block_move_via_movmem): Likewise.
19637         (set_storage_via_setmem, expand_assignment): Likewise.
19638         (emit_storent_insn, try_casesi): Likewise.
19639         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
19640         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
19641         (expand_vec_shift_expr, expand_binop_directly): Likewise.
19642         (expand_twoval_unop, expand_twoval_binop): Likewise.
19643         (expand_unop_direct, emit_indirect_jump): Likewise.
19644         (emit_conditional_move, vector_compare_rtx): Likewise.
19645         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
19646         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
19647         (expand_sync_lock_test_and_set): Likewise.
19648         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
19649         (emit_unop_insn): Likewise.
19650         (expand_copysign_absneg): Change icode to an insn_code.
19651         (create_convert_operand_from_type): New function.
19652         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
19653         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
19654         (expand_insn, expand_jump_insn): Likewise.
19655         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
19656         than const_int_operand for operand 2.
19657
19658 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19659
19660         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
19661         if possible.
19662
19663 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19664
19665         * emit-rtl.c (emit_pattern_before_noloc): New function.
19666         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
19667         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
19668         (emit_pattern_after_noloc): New function.
19669         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
19670         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
19671
19672 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
19673
19674         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
19675         (__ffsDI2): Likewise.
19676
19677 2011-03-22  Richard Henderson  <rth@redhat.com>
19678
19679         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
19680         of !TARGET_ABI_OPEN_VMS.
19681         (alpha_trampoline_init, alpha_start_function): Likewise.
19682         (alpha_expand_epilogue, alpha_file_start): Likewise.
19683         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
19684         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
19685         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
19686         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
19687         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
19688
19689 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19690
19691         * config/s390/s390-opts.h: New.
19692         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
19693         s390_arch_flags, s390_warn_framesize, s390_stack_size,
19694         s390_stack_guard): Remove.
19695         (s390_handle_arch_option): Return void.  Take enum
19696         s390_arch_option value instead of string and searching array.
19697         (s390_handle_option): Don't assert that global structures are in
19698         use.  Access variables via opts pointer.  Use error_at.  Don't use
19699         sscanf for -mstack-guard= or -mstack-size=.  Update call to
19700         s390_handle_arch_option.
19701         (s390_option_override): Update call to s390_handle_arch_option.
19702         (s390_emit_prologue): Use %d format for s390_stack_size in
19703         diagnostic.  Use %wd for HOST_WIDE_INT.
19704         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
19705         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
19706         * config/s390/s390.opt (config/s390/s390-opts.h): New
19707         HeaderInclude entry.
19708         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
19709         s390_arch_flags, s390_warn_framesize): New Variable entries.
19710         (s390_arch_option): New Enum and EnumValue entries.
19711         (march=): Use Enum instead of Var.
19712         (mstack-guard=, mstack-size=): Use UInteger and Var.
19713         (mtune=): Use Enum.
19714
19715 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19716
19717         * config/score/score.c (score_handle_option): Don't assert that
19718         global structures are in use.  Access target_flags via opts
19719         pointer.  Use value of -march= option to determine target_flags
19720         settings.
19721         * config/score/score.opt (march=): Use Enum.
19722         (score_arch): New Enum and EnumValue entries.
19723
19724 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19725
19726         * config/mep/mep.c (option_mtiny_specified): Remove.
19727         (mep_option_override): Move register handling for -mivc2 from
19728         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
19729         instead of option_mtiny_specified.
19730         (mep_handle_option): Access target_flags via opts pointer.  Don't
19731         assert that global structures are in use.  Defer part of -mivc2
19732         handling and move it to mep_option_override.
19733         * config/mep/mep.opt (IVC2): New Mask entry.
19734         (mivc2): Use Var and Defer instead of Mask.
19735
19736 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19737
19738         * config/v850/v850-opts.h: New.
19739         * config/v850/v850.c (small_memory): Replace with
19740         small_memory_physical_max array.  Make that array static const.
19741         (v850_handle_memory_option): Take integer value of argument.  Take
19742         gcc_options pointer, option text and location.  Return void.
19743         Update for changes to small memory structures.
19744         (v850_handle_option): Access target_flags via opts pointer.  Don't
19745         assert that global structures are in use.  Update calls to
19746         v850_handle_memory_option.
19747         (v850_encode_data_area): Update references to small memory settings.
19748         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
19749         (enum small_memory_type): Move to v850-opts.h.
19750         * config/v850/v850.opt (config/v850/v850-opts.h): New
19751         HeaderInclude entry.
19752         (small_memory_max): New Variable entry.
19753         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
19754         (mtda, mzda): Likewise.
19755
19756 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19757
19758         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
19759         pointer.  Don't assert that global structures are in use.
19760
19761 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19762
19763         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
19764         via opts pointer.  Don't assert that global structures are in use.
19765
19766 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19767
19768         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
19769         (munix=93): Use Var.
19770         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
19771         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
19772         * config/pa/pa-opts.h: New.
19773         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
19774         (pa_handle_option): Don't assert that global structures are in
19775         use.  Access target_flags via opts pointer.  Don't handle
19776         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
19777         OPT_munix_98 here.
19778         (pa_option_override): Handle deferred OPT_mfixed_range_.
19779
19780 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19781
19782         * config/mn10300/mn10300-opts.h: New.
19783         * config/mn10300/mn10300.c (mn10300_processor,
19784         mn10300_tune_string): Remove.
19785         (mn10300_handle_option): Don't assert that global structures are
19786         in use.  Access mn10300_processor via opts pointer.  Don't handle
19787         OPT_mtune_ here.
19788         * config/mn10300/mn10300.h (enum processor_type): Move to
19789         mn10300-opts.h.
19790         (mn10300_processor): Remove.
19791         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
19792         HeaderInclude entry.
19793         (mn10300_processor): New Variable entry.
19794         (mtune=): Use Var.
19795
19796 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19797
19798         * config/microblaze/microblaze.c: Don't include opts.h.
19799         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
19800         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
19801         (mno-clearbss): Use Var and Warn.
19802
19803 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19804
19805         * config/m32r/m32r-opts.h: New.
19806         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
19807         (m32r_handle_option): Don't assert that global structures are in
19808         use.  Access target_flags and m32r_cache_flush_func via opts
19809         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
19810         OPT_mno_flush_trap here.
19811         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
19812         include of m32r-opts.h.
19813         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
19814         HeaderInclude entry.
19815         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
19816         (mmodel=): Use Enum and Var.
19817         (m32r_model): New Enum and EnumValue entries.
19818         (mno-flush-trap): Use Var.
19819         (msdata=): Use Enum and Var.
19820         (m32r_sdata): New Enum and EnumValue entries.
19821
19822 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19823
19824         * config/m32c/m32c.c: Don't include opts.h.
19825         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
19826         m32c_handle_option): Remove.
19827         (m32c_option_override): Check global_options_set.x_target_memregs
19828         instead of target_memregs_set.
19829         * config/m32c/m32c.h (target_memregs): Remove.
19830         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
19831         variable.
19832
19833 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19834
19835         * config/iq2000/iq2000-opts.h: New.
19836         * config/iq2000/iq2000.c: Don't include opts.h.
19837         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
19838         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
19839         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
19840         HeaderInclude entry.
19841         (iq2000_tune): New Variable entry.
19842         (march=): Add comment.  Use Enum.
19843         (iq2000_arch): New Enum and EnumValue entries.
19844         (mcpu=): Use Enum and Var.
19845         (iq2000_tune): New Enum and EnumValue entries.
19846
19847 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19848
19849         * config/ia64/ia64-opts.h: New.
19850         * config/ia64/ia64.c (ia64_tune): Remove.
19851         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
19852         here.  Use error_at.
19853         (ia64_option_override): Handle deferred OPT_mfixed_range_.
19854         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
19855         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
19856         HeaderInclude entry.
19857         (ia64_tune): New Variable entry.
19858         (mfixed-range=): Use Defer and Var.
19859         (mtune=): Use Enum and Var.
19860         (ia64_tune): New Enum and EnumValue entries.
19861
19862 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19863
19864         * config/frv/frv-opts.h: New.
19865         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
19866         frv-opts.h.
19867         (frv_cpu_type): Remove.
19868         * config/frv/frv.c: Don't include opts.h.
19869         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
19870         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
19871         (frv_cpu_type): New Variable entry.
19872         (frv_cpu): New Enum and EnumValue entries.
19873
19874 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19875
19876         * config/cris/cris.c (cris_handle_option): Access target_flags via
19877         opts pointer.  Don't assert that global structures are in use.
19878         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
19879         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
19880
19881 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19882
19883         * config/bfin/bfin-opts.h: New.
19884         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
19885         bfin_si_revision, bfin_workarounds): Remove.
19886         (bfin_cpus): Make static const.
19887         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
19888         not bfin_lib_id_given.
19889         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
19890         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
19891         pointer. Use error_at.  Don't assert that global structures are in use.
19892         * config/bfin/bfin.h: Include bfin-opts.h.
19893         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
19894         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
19895         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
19896         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
19897         entries.
19898
19899 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19900
19901         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
19902         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
19903         or -msoft-float here.
19904         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
19905         -msoft-float and -mhard-float.
19906         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
19907         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19908         msoft-float.
19909         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
19910         -msoft-float.
19911         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
19912         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
19913         not mhard-float.
19914         (LIBGCC_SPEC): Don't handle -msoft-float.
19915         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
19916         -mhard-float.
19917         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
19918         msoft-float.
19919         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
19920         -mfloat-abi=*, not -msoft-float and -mhard-float.
19921         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
19922         -msoft-float.
19923         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
19924         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
19925         mhard-float and msoft-float.
19926         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
19927         mfloat-abi=soft in comments, not mhard-float and msoft-float.
19928         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
19929         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
19930         mhard-float.
19931         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
19932         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
19933         msoft-float.
19934         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
19935         not mhard-float.
19936         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
19937         not msoft-float.
19938
19939 2011-03-22  Richard Henderson  <rth@redhat.com>
19940
19941         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
19942         TARGET_ABI_WINDOWS_NT.
19943         (alpha_output_function_end_prologue): Likewise.
19944         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
19945         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19946         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
19947         (trap, *movsi_nt_vms): Likewise.
19948         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
19949         (*tablejump_osf_nt_internal): Remove.
19950         * config/alpha/predicates.md (input_operand): Only test Pmode.
19951
19952 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19953
19954         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
19955         via opts pointer.  Use error_at.  Don't assert that global
19956         structures are in use.
19957
19958 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
19959
19960         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
19961         (ix86_handle_option): Access ix86_isa_flags and
19962         ix86_isa_flags_explicit via opts pointer.  Don't assert that
19963         global structures are in use.
19964         (ix86_function_specific_save, ix86_function_specific_restore):
19965         Update ix86_isa_flags_explicit field name.
19966         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
19967         (ix86_isa_flags_explicit): Rename TargetSave entry to
19968         x_ix86_isa_flags_explicit.
19969
19970 2011-03-22  Richard Henderson  <rth@redhat.com>
19971
19972         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
19973         (alpha_option_override, direct_return): Likewise.
19974         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
19975         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
19976         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
19977         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
19978         (alpha_expand_epilogue, alpha_end_function): Likewise.
19979         (alpha_init_libfuncs): Likewise.
19980         (struct machine_function): Remove unicosmk members.
19981         (print_operand) ['t']: Remove.
19982         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
19983         unicosmk_output_module_name, unicosmk_output_common,
19984         current_section_align, unicosmk_output_text_section_asm_op,
19985         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
19986         unicosmk_section_type_flags, unicosmk_unique_section,
19987         unicosmk_asm_named_section, unicosmk_insert_attributes,
19988         unicosmk_output_align, unicosmk_defer_case_vector,
19989         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
19990         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
19991         unicosmk_output_ssib, unicosmk_add_call_info_word,
19992         unicosmk_extern_head, unicosmk_output_default_externs,
19993         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
19994         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
19995         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
19996         * config/alpha/alpha-protos.h: Update.
19997         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
19998         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
19999         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
20000         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
20001         (*mulsi_se, mulvsi3): Likewise.
20002         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
20003         (*divmodsi_internal, call, call_value, realign): Likewise.
20004         (moddi3, umoddi3): Likewise; remove duplicate expander.
20005         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
20006         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
20007         (*movdi_nofix): Remove r/U alternative.
20008         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
20009         * config/alpha/constraints.md ("U"): Remove.
20010         * config/alpha/predicates.md (call_operand"): Don't test
20011         TARGET_ABI_UNICOSMK.
20012
20013 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
20014
20015         * target.def (handle_option): Take gcc_options and
20016         cl_decoded_option pointers and location_t.
20017         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
20018         * doc/tm.texi: Regenerate.
20019         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
20020         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
20021         * lto-opts.c (lto_reissue_options): Generate option structure for
20022         targetm.handle_option call.
20023         * opts.c (target_handle_option): Update call to
20024         targetm.handle_option.  Remove assertions about values now passed
20025         down to hook.
20026         * targhooks.c (default_target_handle_option): New.
20027         * targhooks.h (default_target_handle_option): Declare.
20028         * config/alpha/alpha.c: Include opts.h.
20029         (alpha_handle_option): Update to new hook interface.
20030         * config/arm/arm.c: Include opts.h.
20031         (arm_handle_option): Update to new hook interface.
20032         * config/arm/t-arm (arm.o): Update dependencies.
20033         * config/bfin/bfin.c: Include opts.h.
20034         (bfin_handle_option): Update to new hook interface.
20035         * config/cris/cris.c: Include opts.h.
20036         (cris_handle_option): Update to new hook interface.
20037         * config/frv/frv.c: Include opts.h.
20038         (frv_handle_option): Update to new hook interface.
20039         * config/i386/i386.c: Include opts.h.
20040         (ix86_handle_option): Update to new hook interface.
20041         (ix86_valid_target_attribute_inner_p): Generate option structure
20042         for call to ix86_handle_option.
20043         * config/i386/t-i386 (i386.o): Update dependencies.
20044         * config/ia64/ia64.c: Include opts.h.
20045         (ia64_handle_option): Update to new hook interface.
20046         * config/ia64/t-ia64 (ia64.o): Update dependencies.
20047         * config/iq2000/iq2000.c: Include opts.h.
20048         (iq2000_handle_option): Update to new hook interface.
20049         * config/m32c/m32c.c: Include opts.h.
20050         (m32c_handle_option): Update to new hook interface.
20051         * config/m32r/m32r.c: Include opts.h.
20052         (m32r_handle_option): Update to new hook interface.
20053         * config/m68k/m68k.c: Include opts.h.
20054         (m68k_handle_option): Update to new hook interface.
20055         * config/mep/mep.c: Include opts.h.
20056         (mep_handle_option): Update to new hook interface.
20057         * config/microblaze/microblaze.c: Include opts.h.
20058         (microblaze_handle_option): Update to new hook interface.
20059         * config/mips/mips.c: Include opts.h.
20060         (mips_handle_option): Update to new hook interface.
20061         * config/mn10300/mn10300.c: Include opts.h.
20062         (mn10300_handle_option): Update to new hook interface.
20063         * config/pa/pa.c: Include opts.h.
20064         (pa_handle_option): Update to new hook interface.
20065         * config/pdp11/pdp11.c: Include opts.h.
20066         (pdp11_handle_option): Update to new hook interface.
20067         * config/rs6000/rs6000.c: Include opts.h.
20068         (rs6000_handle_option): Update to new hook interface.
20069         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
20070         * config/rx/rx.c: Include opts.h.
20071         (rx_handle_option): Update to new hook interface.
20072         * config/s390/s390.c: Include opts.h.
20073         (s390_handle_option): Update to new hook interface.
20074         * config/score/score.c: Include opts.h.
20075         (score_handle_option): Update to new hook interface.
20076         * config/sh/sh.c: Include opts.h.
20077         (sh_handle_option): Update to new hook interface.
20078         * config/sparc/sparc.c: Include opts.h.
20079         (sparc_handle_option): Update to new hook interface.
20080         * config/v850/v850.c: Include opts.h.
20081         (v850_handle_option): Update to new hook interface.
20082
20083 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
20084
20085         * gcc.c (driver_unknown_option_callback): Only permit and save
20086         unknown -Wno- options.
20087         (driver_wrong_lang_callback): Save options directly instead of via
20088         driver_unknown_option_callback.
20089
20090 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
20091
20092         * combine.c (simplify_set): Try harder to find the best CC mode when
20093         simplifying a nested COMPARE on the RHS.
20094
20095 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
20096
20097         * config/alpha/gnu.h: Remove.
20098         * config/arc: Remove directory.
20099         * config/arm/netbsd.h: Remove.
20100         * config/arm/t-pe: Remove.
20101         * config/crx: Remove directory.
20102         * config/i386/netbsd.h: Remove.
20103         * config/m68hc11: Remove directory.
20104         * config/m68k/uclinux-oldabi.h: Remove.
20105         * config/mcore/mcore-pe.h: Remove.
20106         * config/mcore/t-mcore-pe: Remove.
20107         * config/netbsd-aout.h: Remove.
20108         * config/rs6000/gnu.h: Remove.
20109         * config/sh/sh-symbian.h: Remove.
20110         * config/sh/symbian-base.c: Remove.
20111         * config/sh/symbian-c.c: Remove.
20112         * config/sh/symbian-cxx.c: Remove.
20113         * config/sh/symbian-post.h: Remove.
20114         * config/sh/symbian-pre.h: Remove.
20115         * config/sh/t-symbian: Remove.
20116         * config/svr3.h: Remove.
20117         * config/vax/netbsd.h: Remove.
20118         * config.build: Don't handle i[34567]86-*-pe.
20119         * config.gcc: Remove handling of deprecations for most deprecated
20120         targets.
20121         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
20122         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
20123         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
20124         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
20125         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
20126         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
20127         Remove cases.
20128         * config.host: Don't handle i[34567]86-*-pe.
20129         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
20130         (ASM_SPEC32): Don't handle -mcall-gnu.
20131         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
20132         -mcall-gnu.
20133         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
20134         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
20135         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
20136         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
20137         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
20138         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
20139         conditional on SYMBIAN.
20140         * configure.ac: Don't handle powerpc*-*-gnu*.
20141         * configure: Regenerate.
20142         * doc/extend.texi (interrupt attribute): Don't mention CRX.
20143         * doc/install-old.texi (m6811, m6812): Don't mention.
20144         * doc/install.texi (arc-*-elf*): Don't document multilib option.
20145         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
20146         (m68k-uclinuxoldabi): Don't mention.
20147         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
20148         Remove.
20149         (-mcall-gnu): Remove.
20150         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
20151         families): Remove constraint documentation.
20152
20153 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
20154
20155         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
20156         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
20157         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
20158
20159 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
20160
20161         PR target/48226
20162         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
20163         vector when peeking at the next token for vector, don't expand the
20164         keywords.
20165
20166 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
20167
20168         * config/avr/avr-protos.h (expand_epilogue): Change prototype
20169         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
20170         * config/avr/avr.c (init_cumulative_args)
20171         (avr_function_arg_advance): Use it.
20172         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
20173         sibcall epilogues.
20174         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
20175         (avr_function_ok_for_sibcall): ...this new function.
20176         (avr_lookup_function_attribute1): New static Function.
20177         (avr_naked_function_p, interrupt_function_p)
20178         (signal_function_p, avr_OS_task_function_p)
20179         (avr_OS_main_function_p): Use it.
20180         * config/avr/avr.md ("sibcall", "sibcall_value")
20181         ("sibcall_epilogue"): New expander.
20182         ("*call_insn", "*call_value_insn"): New insn.
20183         ("call_insn", "call_value_insn"): Remove
20184         ("call", "call_value", "epilogue"): Change expander to handle
20185         sibling calls.
20186
20187 2011-03-21  Nick Clifton  <nickc@redhat.com>
20188
20189         * doc/invoke.texi (Overall Options): Move closing brace to end of
20190         options list.
20191         (Optimization Options): Add missing @gol.
20192         (Directory Options): Likewise.
20193         (i386 and x86-64 Options): Likewise.
20194         (RS6000 and PowerPC Options): Likewise.
20195         (i386 and x86-64 Windows Options): Likewise.
20196         (V850 Options): Add text missing from descriptions.
20197
20198 2011-03-22  Richard Henderson  <rth@redhat.com>
20199
20200         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
20201         (avr_incoming_return_addr_rtx): New.
20202         (emit_push_byte): New.
20203         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
20204         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
20205         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
20206         (emit_pop_byte): New.
20207         (expand_epilogue): Use it.  Pop frame pointer by bytes.
20208         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
20209         (INCOMING_RETURN_ADDR_RTX): New.
20210         (INCOMING_FRAME_SP_OFFSET): New.
20211         (ARG_POINTER_CFA_OFFSET): New.
20212         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
20213         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
20214         (pophi): Remove.
20215
20216         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
20217
20218 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
20219
20220         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
20221         (FUNCTION_ARG_ADVANCE): Likewise.
20222         * tm.texi.in: Change references to them to hook references.
20223         * tm.texi: Regenerate.
20224         * targhooks.c (default_function_arg): Eliminate check for target
20225         macro.
20226         (default_function_incoming_arg): Likewise.
20227         (default_function_arg_advance): Likewise.
20228         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
20229         (function_arg_advance): Likewise.
20230         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
20231
20232 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
20233
20234         * tree.c (build_call_1): New function.
20235         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
20236
20237 2011-03-22  Richard Guenther  <rguenther@suse.de>
20238
20239         PR tree-optimization/48228
20240         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
20241         for single-arg PHIs.
20242
20243 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
20244
20245         PR rtl-optimization/48143
20246         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
20247         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
20248         sse2_cvtps2pd): Likewise.
20249
20250 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20251
20252         * recog.c (canonicalize_change_group): Use validate_unshare_change.
20253
20254 2011-03-22  Richard Guenther  <rguenther@suse.de>
20255
20256         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
20257         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
20258         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
20259         and REALIGN_LOAD_EXPR.
20260         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
20261         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
20262         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
20263         DOT_PROD_EXPR case ...
20264         (expand_expr_real_2): ... here.
20265         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
20266         and REALIGN_LOAD_EXPR.
20267         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
20268         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
20269         (vect_create_epilog_for_reduction): Likewise.
20270         (vectorizable_reduction): Likewise.
20271         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
20272         * tree-vect-stmts.c (vectorizable_load): Likewise.
20273
20274 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
20275
20276         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
20277
20278 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20279
20280         * config/s390/s390.c (s390_delegitimize_address): Fix offset
20281         handling for PLTOFF/GOTOFF.
20282
20283 2011-03-22  Nick Clifton  <nickc@redhat.com>
20284
20285         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
20286         trailing backslash from the end of the macro definition.
20287
20288 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20289
20290         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
20291         and PLT unspecs.
20292
20293 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
20294
20295         * expr.h (prepare_operand): Move to...
20296         * optabs.h (prepare_operand): ...here and change the insn code
20297         parameter from "int" to "enum insn_code".
20298         (insn_operand_matches): Declare.
20299         * expr.c (init_expr_target): Use insn_operand_matches.
20300         (compress_float_constant): Likewise.
20301         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
20302         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
20303         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
20304         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
20305         Likewise.
20306         (gen_cond_trap): Likewise.
20307         (prepare_operand): Likewise.  Change icode to an insn_code.
20308         (insn_operand_matches): New function.
20309         * reload.c (find_reloads_address_1): Use insn_operand_matches.
20310         * reload1.c (gen_reload): Likewise.
20311         * targhooks.c (default_secondary_reload): Likewise.
20312
20313 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
20314
20315         * config/alpha/alpha.md (unspec): New define_c_enum.
20316         (unspecv): Ditto.
20317
20318 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
20319
20320         PR debug/48214
20321         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
20322         between a call and its CALL_ARG_LOCATION note.
20323
20324 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
20325
20326         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
20327
20328 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
20329
20330         PR c/42544
20331         PR c/48197
20332         * c-common.c (shorten_compare): If primopN is first sign-extended
20333         to opN and then zero-extended to result type, set primopN to opN.
20334
20335 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
20336
20337         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
20338         for barrier handlers.
20339
20340 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
20341
20342         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
20343         UNSPEC constants to be in the unspec enumeration, and redefine
20344         all UNSPECV constants to be in the unspecv enumeration, so that
20345         dumps print which unspec/unspec_volatile this is.
20346         * config/rs6000/vector.md (UNSPEC_*): Ditto.
20347         * config/rs6000/paired.md (UNSPEC_*): Ditto.
20348         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
20349         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
20350         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
20351
20352         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
20353         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
20354         UNSPECV_LWSYNC, since these are used as unspec_volatile.
20355         * config/rs6000/sync.md (isync, lwsync): Ditto.
20356
20357 2011-03-21  Richard Guenther  <rguenther@suse.de>
20358
20359         * params.def (lto-min-partition): Fix typo.
20360
20361 2011-03-21  Richard Guenther  <rguenther@suse.de>
20362
20363         PR c/47939
20364         * c-decl.c (grokdeclarator): Drop to the main variant only
20365         for array types.  Drop flag_gen_aux_info check.
20366
20367 2011-03-21  Richard Guenther  <rguenther@suse.de>
20368
20369         PR translation/47911
20370         * params.def (lto-partitions): Fix typo.
20371         (lto-min-partition): Fix wording.
20372
20373 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
20374
20375         * config/rs6000/t-freebsd: Remove duplication from file.
20376
20377 2011-03-21  Richard Guenther  <rguenther@suse.de>
20378
20379         PR middle-end/47661
20380         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
20381
20382 2011-03-21  Richard Guenther  <rguenther@suse.de>
20383
20384         PR lto/48210
20385         * params.def (lto-partitions): Require at least 1 partition.
20386
20387 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20388
20389         * gthr-solaris.h: Remove.
20390         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
20391         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
20392         (LIB_SPEC): Likewise.
20393         * config/sol2.opt (threads): Remove.
20394         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
20395         (sparc*-*-solaris2*): Likewise.
20396         * configure.ac (enable_threads): Enable solaris support.
20397         * configure: Regenerate.
20398         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
20399         * doc/install.texi (Configuration, --enable-threads=lib): Remove
20400         solaris.
20401
20402 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20403
20404         * config.gcc: Obsolete *-*-solaris2.8*.
20405         * doc/install.texi (Specific, *-*-solaris2*): Document it.
20406
20407 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20408
20409         PR bootstrap/48135
20410         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
20411         reference.  Solaris 8 perl works.
20412
20413 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20414
20415         PR bootstrap/48135
20416         * doc/install.texi (Prerequisites): Move jar etc. up.
20417         Explain support library version requirements.
20418
20419 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20420
20421         PR bootstrap/48135
20422         * doc/install.texi (Prerequisites): Move Perl to build
20423         requirements.  Always necessary on Solaris 2 with Sun ld.
20424
20425 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20426
20427         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
20428         binutils 2.21.
20429         (Specific, i?86-*-solaris2.[89]): Likewise.
20430         (Specific, i?86-*-solaris2.10): Likewise.
20431         (Specific, mips-sgi-irix6): Likewise.
20432         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
20433         Update for binutils 2.21.
20434
20435 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20436
20437         * configure.ac (gcc_cv_lto_plugin): Fix typo.
20438         Allow -fuse-linker-plugin for non-default plugin linker.
20439         * configure: Regenerate.
20440
20441 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
20442
20443         PR bootstrap/48167
20444         * gengtype.c (files_rules): Added rule for cp/parser.h.
20445
20446 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
20447
20448         PR target/48213
20449         * config/s390/s390.c (s390_delegitimize_address): Don't call
20450         lowpart_subreg if orig_x has BLKmode.
20451
20452 2011-03-21  Kai Tietz  <ktietz@redhat.com>
20453
20454         PR target/12171
20455         * doc/plugins.texi: Adjust documentation for plugin register_callback.
20456         * tree.h (attribute_spec): Add new member affects_type_identity.
20457         * attribs.c (empty_attribute_table): Adjust attribute_spec
20458         initializers.
20459         * config/alpha/alpha.c: Likewise.
20460         * config/arc/arc.c: Likewise.
20461         * config/arm/arm.c: Likewise.
20462         * config/avr/avr.c: Likewise.
20463         * config/bfin/bfin.c: Likewise.
20464         * config/crx/crx.c: Likewise.
20465         * config/darwin.h: Likewise.
20466         * config/h8300/h8300.c: Likewise.
20467         * config/i386/cygming.h: Likewise.
20468         * config/i386/i386.c: Likewise.
20469         * config/ia64/ia64.c: Likewise.
20470         * config/m32c/m32c.c: Likewise.
20471         * config/m32r/m32r.c: Likewise.
20472         * config/m68hc11/m68hc11.c: Likewise.
20473         * config/m68k/m68k.c: Likewise.
20474         * config/mcore/mcore.c: Likewise.
20475         * config/mep/mep.c: Likewise.
20476         * config/microblaze/microblaze.c: Likewise.
20477         * config/mips/mips.c: Likewise.
20478         * config/rs6000/rs6000.c: Likewise.
20479         * config/rx/rx.c: Likewise.
20480         * config/sh/sh.c: Likewise.
20481         * config/sol2.h: Likewise.
20482         * config/sparc/sparc.c: Likewise.
20483         * config/spu/spu.c: Likewise.
20484         * config/stormy16/stormy16.c: Likewise.
20485         * config/v850/v850.c: Likewise.
20486
20487 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
20488
20489         * simplify-rtx.c (simplify_binary_operation_1): Handle
20490         (xor (and A B) C) case when B and C are both constants.
20491
20492 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
20493
20494         * tree-dfa.c (add_referenced_var): Fix typo in comment.
20495
20496 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
20497
20498         PR bootstrap/48168
20499         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
20500
20501 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
20502
20503         PR rtl-optimization/48156
20504         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
20505         assume df and df_lr are not NULL.
20506
20507 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20508
20509         PR debug/48023
20510         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
20511         between a call and its CALL_ARG_LOCATION note.
20512
20513 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
20514
20515         PR debug/48178
20516         * config/sh/sh.c (find_barrier): Don't emit a constant pool
20517         between a call and its corresponding CALL_ARG_LOCATION note.
20518
20519 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
20520
20521         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
20522         instead of loop. Use HARD_REGISTER_NUM_P predicate.
20523         * haifa-sched.c (setup_ref_regs): Ditto.
20524         * caller-save.c (add_used_regs_1): Ditto.
20525         * dse.c (look_for_hardregs): Ditto.
20526         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
20527         * sched-rgn.c (check_live_1): Ditto.
20528
20529 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
20530
20531         * c-decl.c (diagnose_mismatched_decls): Give an error for
20532         redefining a typedef with variably modified type.
20533
20534 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
20535
20536         * c-decl.c (grokfield): Don't allow typedefs for structures or
20537         unions with no tag by default.
20538         * doc/extend.texi (Unnamed Fields): Update.
20539
20540 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
20541
20542         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
20543         Rewrite using indirect functions.
20544         (lwp_slwpcb): Ditto.
20545         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
20546         (avx_vinsertf128<mode>): Ditto.
20547
20548 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20549
20550         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
20551         unspecs.
20552
20553 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20554
20555         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
20556         splitting between a call and its corresponding CALL_ARG_LOCATION note.
20557
20558 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
20559
20560         PR rtl-optimization/48170
20561         * gcse.c (hoist_code): Remove bogus asserts.
20562
20563 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
20564
20565         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
20566         computation for prologue/epilogue.
20567
20568 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20569
20570         * Makefile.in (check-consistency): Remove.
20571
20572 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
20573
20574         PR debug/48176
20575         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
20576         arange_table_in_use is 0, but either text_section_used or
20577         cold_text_section_used is true.  Don't call it if
20578         !info_section_emitted.
20579
20580 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
20581
20582         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
20583         FUNCTION_VALUE_REGNO_P): Remove.
20584         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
20585         Remove.
20586         * config/avr/avr.c (avr_ret_register): Make static inline.
20587         (avr_function_value_regno_p): New function.
20588         (avr_libcall_value): Make static. Add 'func' argument.
20589         (avr_function_value): Make static. Rename 'func' argument to
20590         'fn_decl_or_type', forward it to avr_libcall_value. Call
20591         avr_ret_register function instead of RET_REGISTER macro.
20592         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
20593
20594 2011-03-18  Jason Merrill  <jason@redhat.com>
20595
20596         PR c++/23372
20597         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
20598
20599 2011-03-18  Richard Guenther  <rguenther@suse.de>
20600
20601         * doc/install.texi (--enable-gold): Remove.
20602         (--with-plugin-ld): Document.
20603         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
20604
20605 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
20606
20607         PR middle-end/47790
20608         * expr.c (optimize_bitfield_assignment_op): Revamp to work
20609         again after expansion changes.
20610
20611 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
20612
20613         * combine.c (try_combine): Do simplification only call of
20614         subst() on i2 even when i1 is present. Update comments.
20615
20616 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20617
20618         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
20619         and UNSPEC_PCREL_SYMOFF.
20620
20621 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20622
20623         * config/s390/s390.md: Use define_c_enum for the unspec constant
20624         definitions.
20625
20626 2011-03-18  Richard Henderson  <rth@redhat.com>
20627             Jakub Jelinek  <jakub@redhat.com>
20628
20629         PR bootstrap/48161
20630         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
20631         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
20632
20633 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
20634
20635         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
20636         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
20637         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
20638         Change return type to bool.
20639         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
20640
20641 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20642
20643         PR debug/48163
20644         * var-tracking.c (prepare_call_arguments): If CALL target
20645         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
20646         pc instead of looking it up using cselib_lookup and use
20647         Pmode for it if x has VOIDmode.
20648         * dwarf2out.c (gen_subprogram_die): If also both first and
20649         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
20650
20651         PR debug/48163
20652         * function.c (assign_parms): For data.passed_pointer parms
20653         use MEM of data.entry_parm instead of data.entry_parm itself
20654         as DECL_INCOMING_RTL.
20655         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
20656         also when passed and declared mode is the same, DECL_RTL
20657         is a MEM with pseudo as address and DECL_INCOMING_RTL is
20658         a MEM too.
20659
20660 2011-03-16  Jeff Law  <law@redhat.com>
20661
20662         PR rtl-optimization/37273
20663         * ira-costs.c (scan_one_insn): Detect constants living in memory and
20664         handle them like argument loads from stack slots.  Do not double
20665         count memory for memory constants and argument loads from stack slots.
20666
20667 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20668
20669         PR debug/48160
20670         * var-tracking.c (prepare_call_arguments): Check SUBREG.
20671
20672 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
20673
20674         PR target/48171
20675         * config/i386/i386.opt: Add Save to -mavx and -mfma.
20676
20677 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20678
20679         PR bootstrap/48153
20680         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
20681         if dwarf_strict.
20682         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
20683         Clear call_arg_locations and call_arg_loc_last always.
20684
20685         PR middle-end/48152
20686         * var-tracking.c (prepare_call_arguments): If argument needs to be
20687         passed by reference, adjust argtype and mode.
20688
20689 2011-03-17  Richard Guenther  <rguenther@suse.de>
20690
20691         PR middle-end/48134
20692         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
20693         a value make sure to fold the statement.
20694
20695 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
20696
20697         PR target/43872
20698         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
20699         return condition with !cfun->calls_alloca.
20700
20701 2011-03-17  Richard Guenther  <rguenther@suse.de>
20702
20703         PR bootstrap/48148
20704         * lto-cgraph.c (input_overwrite_node): Clear the abstract
20705         origin for decls in other ltrans units.
20706         (input_varpool_node): Likewise.
20707
20708 2011-03-17  Richard Guenther  <rguenther@suse.de>
20709
20710         PR middle-end/48165
20711         * tree-object-size.c (compute_object_offset): Properly return
20712         the offset operand of MEM_REFs as sizetype.
20713
20714 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
20715
20716         PR rtl-optimization/48141
20717         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
20718         * dse.c: Include params.h.
20719         (active_local_stores_len): New variable.
20720         (add_wild_read, dse_step1): Clear it when setting active_local_stores
20721         to NULL.
20722         (record_store, check_mem_read_rtx): Decrease it when removing
20723         from the chain.
20724         (scan_insn): Likewise.  Increase it when adding to chain, if it
20725         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
20726         set active_local_stores to NULL before the addition.
20727         * Makefile.in (dse.o): Depend on $(PARAMS_H).
20728
20729         PR rtl-optimization/48141
20730         * dse.c (record_store): If no positions are needed in an insn
20731         that cannot be deleted, at least unchain it from active_local_stores.
20732
20733 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
20734
20735         PR debug/47510
20736         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
20737         (lookup_type_die_strip_naming_typedef): ... here.
20738         (get_context_die): Use it.
20739         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
20740         the anonymous struct named by the naming typedef.
20741
20742 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
20743
20744         PR target/48154
20745         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
20746         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
20747
20748 2011-03-16  Jeff Law  <law@redhat.com>
20749
20750         * tree-vrp.c (identify_jump_threads): Slightly simplify type
20751         check for operands of conditional.  Allow type to be a pointer.
20752
20753 2011-03-16  Richard Guenther  <rguenther@suse.de>
20754
20755         PR tree-optimization/48149
20756         * fold-const.c (fold_binary_loc): Fold
20757         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
20758
20759 2011-03-16  Richard Guenther  <rguenther@suse.de>
20760
20761         PR tree-optimization/26134
20762         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
20763         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
20764         (non_rewritable_mem_ref_base): Handle complex type component
20765         accesses, constrain offsets for vector and complex extracts
20766         more properly.
20767
20768 2011-03-16  Richard Guenther  <rguenther@suse.de>
20769
20770         PR tree-optimization/48146
20771         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
20772         operands avoiding the need for renaming.
20773
20774 2011-03-16  Richard Guenther  <rguenther@suse.de>
20775
20776         * gimple-fold.c (maybe_fold_reference): Open-code relevant
20777         constant folding.  Move MEM_REF canonicalization first.
20778         Rely on fold_const_aggregate_ref for initializer folding.
20779         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
20780
20781 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
20782
20783         PR middle-end/48136
20784         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20785         arg0/arg1 or their arguments are always fold converted to matching
20786         types.
20787
20788         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
20789         to nargs.
20790
20791 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20792
20793         PR lto/46944
20794         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
20795         Handle in-tree gold.
20796         (ld_vers): Extract binutils version for gold.
20797         (gcc_cv_ld_hidden): Handle gold here.
20798         (gcc_cv_lto_plugin): Determine level of linker plugin support.
20799         * configure: Regenerate.
20800         * config.in: Regenerate.
20801         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
20802         -fuse-linker-plugin otherwise.
20803         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
20804         (LINK_COMMAND_SPEC): Use it.
20805         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
20806
20807 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
20808
20809         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
20810         * calls.c: Remove debug.h include.
20811         (emit_call_1): Don't call virtual_call_token debug hook.
20812         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
20813         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
20814         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
20815         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
20816         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
20817         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
20818         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
20819         dwarf2out_virtual_call): Remove.
20820         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
20821         copy_call_info and virtual_call hooks.
20822         (dwarf2out_init): Don't initialize vcall_insn_table,
20823         debug_dcall_section and debug_vcall_section.
20824         (prune_unused_types): Don't mark nodes from dcall_table.
20825         (dwarf2out_finish): Don't output dcall or vcall tables.
20826         * final.c (final_scan_insn): Don't call direct_call or
20827         virtual_call debug hooks.
20828         * debug.h (struct gcc_debug_hooks): Remove direct_call,
20829         virtual_call_token, copy_call_info and virtual_call hooks.
20830         (debug_nothing_uid): Remove prototype.
20831         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
20832         copy_call_info and virtual_call hooks.
20833         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20834         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
20835         * debug.c (do_nothing_debug_hooks): Likewise.
20836         (debug_nothing_uid): Remove.
20837         * doc/invoke.texi (-fenable-icf-debug): Remove.
20838         * common.opt (-fenable-icf-debug): Likewise.
20839
20840         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
20841         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
20842         call's MEM.  Handle functions returning aggregate through a hidden
20843         first pointer.  For virtual calls add clobbered pc to call arguments
20844         chain.
20845         * dwarf2out.c (gen_subprogram_die): Emit
20846         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
20847         can't be emitted.
20848
20849         PR debug/45882
20850         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
20851         * rtl.h (ENTRY_VALUE_EXP): Define.
20852         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
20853         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
20854         * print-rtl.c (print_rtx): Likewise.
20855         * gengtype.c (adjust_field_rtx_def): Likewise.
20856         * var-tracking.c (vt_add_function_parameter): Adjust
20857         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
20858         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
20859         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
20860         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
20861         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
20862
20863         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
20864         Call var_location debug hook even on CALL_INSNs.
20865         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
20866         * rtl.def (ENTRY_VALUE): New.
20867         * dwarf2out.c: Include cfglayout.h.
20868         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
20869         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
20870         (struct call_arg_loc_node): New type.
20871         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
20872         tail_call_site_count): New variables.
20873         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
20874         DW_TAG_GNU_call_site_parameter.
20875         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
20876         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
20877         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
20878         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
20879         and DW_AT_GNU_all_source_call_sites.
20880         (mem_loc_descriptor): Handle ENTRY_VALUE.
20881         (add_src_coords_attributes): Don't add enything if
20882         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
20883         (dwarf2out_abstract_function): Save and clear call_arg_location,
20884         call_site_count and tail_call_site_count around dwarf2out_decl call.
20885         (gen_call_site_die): New function.
20886         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
20887         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
20888         (dwarf2out_function_decl): Clear call_arg_locations,
20889         call_arg_loc_last, set call_site_count and tail_call_site_count
20890         to -1 and free block_map.
20891         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
20892         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
20893         followed by any real instructions.
20894         (dwarf2out_begin_function): Set call_site_count and
20895         tail_call_site_count to 0.
20896         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
20897         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
20898         attempt to force a DIE for it and worst case remove the attribute.
20899         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
20900         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
20901         the decl itself.
20902         * var-tracking.c: Include tm_p.h.
20903         (vt_stack_adjustments): For calls call note_register_arguments.
20904         (argument_reg_set): New variable.
20905         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
20906         ensure the VALUE is resolved.
20907         (call_arguments): New variable.
20908         (prepare_call_arguments): New function.
20909         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
20910         (struct expand_loc_callback_data): Add ignore_cur_loc field.
20911         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
20912         always use the best expression.
20913         (vt_expand_loc): Add ignore_cur_loc argument.
20914         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
20915         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
20916         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
20917         note for all calls.
20918         (vt_add_function_parameter): Use cselib_lookup_from_insn.
20919         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
20920         argument.  Don't call cselib_preserve_only_values and
20921         cselib_reset_table.
20922         (note_register_arguments): New function.
20923         (vt_initialize): Compute argument_reg_set.  Call
20924         vt_add_function_parameters before processing basic blocks instead of
20925         afterwards.  For calls call prepare_call_arguments before calling
20926         cselib_process_insn.
20927         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
20928         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
20929         (var-tracking.o): Depend on $(TM_P_H).
20930         * cfglayout.h (insn_scope): New prototype.
20931         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
20932         * cfglayout.c (insn_scope): No longer static.
20933         * insn-notes.def (CALL_ARG_LOCATION): New.
20934         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
20935         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
20936         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
20937         nothing for DECL_EXTERNAL BLOCK_VARS.
20938
20939 2011-03-16  Alan Modra  <amodra@gmail.com>
20940
20941         PR target/45844
20942         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
20943         create invalid offset address for vsx splat insn.
20944         * config/rs6000/predicates.md (splat_input_operand): New.
20945         * config/rs6000/vsx.md (vsx_splat_*): Use it.
20946
20947 2011-03-15  Xinliang David Li  <davidxl@google.com>
20948
20949         PR c/47837
20950         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
20951         (normalize_preds): New function.
20952         (is_use_properly_guarded): Normalize def predicates.
20953
20954 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20955
20956         PR target/46788
20957         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
20958         in the output template.
20959
20960 2011-03-15  Richard Guenther  <rguenther@suse.de>
20961
20962         PR middle-end/47650
20963         * tree-pretty-print.c (dump_function_declaration): Properly
20964         dump unprototyped and varargs function types.
20965
20966 2011-03-15  Richard Guenther  <rguenther@suse.de>
20967
20968         PR tree-optimization/13954
20969         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
20970         and friends.
20971
20972 2011-03-15  Richard Guenther  <rguenther@suse.de>
20973
20974         PR tree-optimization/48037
20975         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
20976         selects into BIT_FIELD_REFs.
20977         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
20978         vector select.
20979
20980 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
20981
20982         PR tree-optimization/48129
20983         * builtins.c (fold_builtin_snprintf): Convert to type of
20984         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
20985         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
20986
20987 2011-03-15  Richard Guenther  <rguenther@suse.de>
20988
20989         PR tree-optimization/41490
20990         * tree-ssa-dce.c (propagate_necessity): Handle returns without
20991         value but with VUSE.
20992         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
20993         return statements.
20994         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
20995         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
20996         * tree-tailcall.c (find_tail_calls): Ignore returns.
20997
20998 2011-03-15  Richard Guenther  <rguenther@suse.de>
20999
21000         PR middle-end/48031
21001         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
21002         or variable-indexed array accesses when in gimple form.
21003
21004 2011-03-15  Richard Guenther  <rguenther@suse.de>
21005
21006         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
21007
21008 2011-03-15  Alan Modra  <amodra@gmail.com>
21009
21010         PR target/48032
21011         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
21012         presume symbol_refs without a symbol_ref_decl are suitably
21013         aligned, nor other trees we may see here.  Handle anchor symbols.
21014         (legitimate_constant_pool_address_p): Comment.  Add mode param.
21015         Check cmodel=medium addresses.  Adjust all calls.
21016         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
21017         creating cmodel=medium optimized access to locals.
21018         * config/rs6000/constraints.md (R): Pass QImode to
21019         legitimate_constant_pool_address_p.
21020         * config/rs6000/predicates.md (input_operand): Pass mode to
21021         legitimate_constant_pool_address_p.
21022         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
21023         Update prototype.
21024
21025 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21026
21027         PR target/48053
21028         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
21029         64-bit constants being loaded into registers other than GPRs such
21030         as loading 0 into a VSX register.
21031
21032 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21033
21034         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
21035
21036 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
21037
21038         PR middle-end/47917
21039         * builtins.c (fold_builtin_snprintf): New function.
21040         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
21041         (fold_builtin_4): Likewise.
21042
21043         PR middle-end/38878
21044         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
21045         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
21046         and C - X == X also strip nops from +/-/p+ operand.
21047         When optimizing -X == C, fold C to arg0's type.
21048
21049         PR debug/47946
21050         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
21051         emit it as add_AT_int instead of add_AT_unsigned.
21052
21053 2011-03-14  Tom Tromey  <tromey@redhat.com>
21054
21055         * unwind-dw2.c: Include sys/sdt.h if it exists.
21056         (_Unwind_DebugHook): Use STAP_PROBE2.
21057         * config.in, configure: Rebuild.
21058         * configure.ac: Check for sys/sdt.h.
21059
21060 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
21061
21062         * config/i386/i386.md (ROUND_FLOOR): New constant.
21063         (ROUND_CEIL): Ditto.
21064         (ROUND_TRUNC): Ditto.
21065         (ROUND_MXCSR): Ditto.
21066         (ROUND_NO_EXC): Ditto.
21067         (rint<mode>2): Use new defines instead of numerical constants.
21068         (floor<mode>2): Ditto.
21069         (ceil<mode>2): Ditto.
21070         (btrunc<mode>2): Ditto.
21071         * config/i386/i386-builtin-types.def: Define ROUND function type
21072         aliases.
21073         * config/i386/i386.c (enum ix86_builtins): Add
21074         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
21075         (struct builtin_description): Add
21076         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
21077         (ix86_expand_sse_round): New static function.
21078         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
21079         function types.
21080         (ix86_builtin_vectorized_function): Handle
21081         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
21082
21083 2011-03-14  Tom Tromey  <tromey@redhat.com>
21084
21085         * c-parser.c (c_parser_asm_string_literal): Clear
21086         warn_overlength_strings.
21087
21088 2011-03-14  Tom Tromey  <tromey@redhat.com>
21089
21090         * c-parser.c (disable_extension_diagnostics): Save
21091         warn_overlength_strings.
21092         (restore_extension_diagnostics): Restore warn_overlength_strings.
21093
21094 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
21095
21096         * BASE-VER: Change to 4.7.0.
21097
21098 2011-03-14  Richard Guenther  <rguenther@suse.de>
21099
21100         PR middle-end/48098
21101         * tree.c (build_vector_from_val): Adjust assert to requirements
21102         and reality.
21103
21104 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
21105
21106         PR bootstrap/48102
21107         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
21108
21109 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
21110
21111         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
21112         terms of target_flags_explicit. Adjust copyright year.
21113
21114         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
21115         * config/rs6000/t-freebsd: New file. Add override for
21116         LIB2FUNCS_EXTRA.
21117
21118 2011-03-13  Chris Demetriou  <cgd@google.com>
21119
21120         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
21121         (-fno-diagnostics-show-option): this, to reflect current default.
21122         (-Werror=): Update text about -fno-diagnostics-show-option.
21123
21124 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
21125
21126         PR target/48053
21127         * config/rs6000/predicates.md (easy_vector_constant_add_self,
21128         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
21129         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
21130         mode is not V2DImode or V2DFmode.
21131         (vspltis_constant): Do not handle V2DImode and V2DFmode.
21132         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
21133         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
21134         registers to 0.
21135         (movdi_internal64): Likewise.
21136
21137 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
21138
21139         PR tree-optimization/47127
21140         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
21141         parameter.
21142         (set_cloog_options): Same.
21143         (scop_to_clast): Same.
21144         (print_clast_stmt): Do not call cloog_state_malloc and
21145         cloog_state_free.
21146         (print_generated_program): Same.
21147         (gloog): Same.
21148         * graphite-clast-to-gimple.h (cloog_state): Declared.
21149         (scop_to_clast): Adjust declaration.
21150         * graphite.c (cloog_state): Defined here.
21151         (graphite_initialize): Call cloog_state_malloc.
21152         (graphite_finalize): Call cloog_state_free.
21153
21154 2011-03-11  Jason Merrill  <jason@redhat.com>
21155
21156         * attribs.c (lookup_attribute_spec): Take const_tree.
21157         * tree.h: Adjust.
21158
21159 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
21160
21161         * config/sparc/sparc.c (sparc_option_override): Use
21162         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
21163
21164 2011-03-11  Richard Guenther  <rguenther@suse.de>
21165
21166         PR tree-optimization/48067
21167         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
21168         multiplication result will be only used once on the target
21169         stmt.
21170
21171 2011-03-11  Richard Guenther  <rguenther@suse.de>
21172
21173         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
21174
21175 2011-03-11  Richard Guenther  <rguenther@suse.de>
21176
21177         PR lto/48073
21178         * tree.c (find_decls_types_r): Do not walk types only reachable
21179         from IDENTIFIER_NODEs.
21180
21181 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
21182
21183         PR middle-end/48044
21184         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
21185         all vnode->force_output nodes as needed.
21186
21187 2011-03-11  Jason Merrill  <jason@redhat.com>
21188
21189         PR c++/48069
21190         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
21191         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
21192
21193 2011-03-11  Martin Jambor  <mjambor@suse.cz>
21194
21195         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
21196         cgraph_node.
21197
21198 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
21199
21200         PR tree-optimization/48063
21201         * ipa-inline.c (cgraph_decide_inlining): Don't try to
21202         inline functions called once if !tree_can_inline_p (node->callers).
21203
21204 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
21205
21206         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
21207         extra_objs.
21208         * config/score/score3.c: Delete.
21209         * config/score/score3.h: Delete.
21210         * config/score/mul-div.S: Delete.
21211         * config/score/sfp-machine.h: Add new file.
21212         * config/score/constraints.md: Add new file.
21213         * config/score/t-score-softfp: Add new file.
21214         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
21215         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
21216         (score7_extra_constraint): Delete.
21217         (score7_option_override): Remove unused code.
21218         * config/score/score.c: Remove score3 and score5 define and code.
21219         * config/score/score.h: Remove score3 and score5 define and code.
21220         * config/score/score.md: Remove score3 template and unusual insn.
21221         * config/score/score.opt: Remove score3 and score5 options.
21222
21223 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21224
21225         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
21226         when _HPUX_SOURCE is defined.
21227         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
21228
21229 2011-03-10  Jason Merrill  <jason@redhat.com>
21230
21231         PR c++/48029
21232         * stor-layout.c (layout_type): Don't set structural equality
21233         on arrays of incomplete type.
21234         * tree.c (type_hash_eq): Handle comparing them properly.
21235
21236 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
21237
21238         PR debug/48043
21239         * config/s390/s390.c (s390_delegitimize_address): Make sure the
21240         result mode matches original rtl mode.
21241
21242 2011-03-10  Nick Clifton  <nickc@redhat.com>
21243
21244         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
21245         (andsi3, andsi3_flags): Fix timings for three operand alternative.
21246
21247 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
21248
21249         PR rtl-optimization/47866
21250         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
21251         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
21252         if target wasn't scalar.
21253         * function.c (assign_stack_temp_for_type): Assert that neither
21254         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
21255         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
21256         macro.
21257         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
21258
21259 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21260
21261         * config/s390/s390-protos.h (s390_label_align): New prototype.
21262         * config/s390/s390.c (s390_label_align): New function.
21263         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
21264
21265 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
21266
21267         PR target/47755
21268         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
21269         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
21270         (output_vec_const_move): Ditto.
21271
21272 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
21273
21274         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
21275         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
21276         * config/mips/mips.c (mips_preferred_reload_class): Make static.
21277         Change 'rclass' argument and result type to reg_class_t.
21278         (TARGET_PREFERRED_RELOAD_CLASS): Define.
21279
21280 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
21281
21282         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
21283         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
21284         (TARGET_MEMORY_MOVE_COST): Define.
21285         (avr_register_move_cost, avr_memory_move_cost): New Functions.
21286
21287 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
21288
21289         PR debug/47881
21290         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
21291         removed anything.
21292
21293         PR tree-optimization/48022
21294         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
21295         for EQ/NE_EXPR.
21296
21297 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
21298
21299         PR debug/47991
21300         * var-tracking.c (find_use_val): Return NULL for
21301         cui->sets && cui->store_p BLKmode MEMs.
21302
21303 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
21304
21305         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
21306         Remove.
21307         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
21308         xstormy16_print_operand_address): Remove.
21309         * config/stormy16/stormy16.c (xstormy16_print_operand,
21310         xstormy16_print_operand_address): Make static.
21311         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
21312
21313 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
21314
21315         PR target/47862
21316         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
21317         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
21318         before definition.
21319
21320 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
21321
21322         PR bootstrap/48000
21323         * cfgloopmanip.c (fix_bb_placements): Return immediately
21324         if FROM is BASE_LOOP's header.
21325
21326 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
21327
21328         * gimplify.c (gimplify_function_tree): Fix building calls
21329         to __builtin_return_address.
21330
21331 2011-03-07  Alan Modra  <amodra@gmail.com>
21332
21333         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
21334         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
21335         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
21336         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
21337         return_mode args.
21338         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
21339         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
21340         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
21341         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
21342         * config/rs6000/rs6000.c
21343         (rs6000_elf_end_indicate_exec_stack): Rename to..
21344         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
21345         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
21346         (rs6000_file_start): ..here.
21347         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
21348         file scope variables.
21349         (call_ABI_of_interest): New function.
21350         (init_cumulative_args): Set above vars when function return value
21351         is a float, vector, or small struct.
21352         (rs6000_function_arg_advance_1): Likewise for function args.
21353         (rs6000_va_start): Set rs6000_passes_float if variable arg function
21354         references float args.
21355
21356 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
21357
21358         * doc/cfg.texi: Remove "See" before @ref.
21359         * doc/invoke.texi: Likewise.
21360
21361 2011-03-05  Jason Merrill  <jason@redhat.com>
21362
21363         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
21364
21365 2011-03-05  Anthony Green  <green@moxielogic.com>
21366
21367         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
21368
21369 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
21370
21371         PR rtl-optimization/47899
21372         * cfgloopmanip.c (fix_bb_placements): Fix first argument
21373         to flow_loop_nested_p when moving the loop upward.
21374
21375 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
21376
21377         PR target/47719
21378         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
21379
21380 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
21381
21382         PR tree-optimization/47967
21383         * ipa-cp.c (build_const_val): Return NULL instead of creating
21384         VIEW_CONVERT_EXPR for mismatching sizes.
21385         (ipcp_create_replace_map): Return NULL if build_const_val failed.
21386         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
21387         give up on versioning.
21388
21389 2011-03-05  Alan Modra  <amodra@gmail.com>
21390
21391         PR target/47986
21392         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
21393         full cmodel medium/large lo_sum + high addresses.
21394
21395 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21396
21397         * config/s390/s390.c (s390_decompose_address): Reject non-literal
21398         pool references in UNSPEC_LTREL_OFFSET.
21399
21400 2011-03-04  Jan Hubicka  <jh@suse.cz>
21401
21402         PR lto/47497
21403         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
21404         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
21405         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
21406         Add node pointers.
21407         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
21408         cgraph_add_thunk): Add node pointers.
21409         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
21410         associated to right node.
21411         (input_node): Update use of cgraph_same_body_alias
21412         and cgraph_add_thunk.
21413
21414 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
21415
21416         * config/i386/i386.opt (mprefer-avx128): New flag.
21417         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
21418         modes when the flag -mprefer-avx128 is on.
21419
21420 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
21421
21422         * dwarf2out.c (compare_loc_operands): Fix address handling.
21423
21424 2011-03-04  Alan Modra  <amodra@gmail.com>
21425
21426         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
21427
21428 2011-03-04  Richard Guenther  <rguenther@suse.de>
21429
21430         PR middle-end/47968
21431         * expmed.c (extract_bit_field_1): Prefer vector modes that
21432         vec_extract patterns can handle.
21433
21434 2011-03-04  Richard Guenther  <rguenther@suse.de>
21435
21436         PR middle-end/47975
21437         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
21438
21439 2011-03-04  Richard Henderson  <rth@redhat.com>
21440
21441         * explow.c (emit_stack_save): Remove 'after' parameter.
21442         (emit_stack_restore): Likewise.
21443         * expr.h: Update to match.
21444         * builtins.c, calls.c, stmt.c: Likewise.
21445         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
21446         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
21447         * function.c (expand_function_end): Insert the emit_stack_save
21448         sequence before parm_birth_insn instead of after.
21449
21450 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
21451
21452         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
21453         (ssse3_pmaddubsw128): Ditto.
21454         (ssse3_pmaddubsw): Ditto.
21455
21456 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
21457
21458         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
21459
21460 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
21461
21462         PR c/47963
21463         * gimplify.c (omp_add_variable): Only call omp_notice_variable
21464         on TYPE_SIZE_UNIT if it is a DECL.
21465
21466         PR debug/47283
21467         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
21468         first operand is not is_gimple_mem_ref_addr, try to fold it.
21469         If the operand still isn't is_gimple_mem_ref_addr, clear
21470         MEM_EXPR on op0.
21471
21472 2011-03-03  Richard Guenther  <rguenther@suse.de>
21473
21474         PR middle-end/47283
21475         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
21476         match comment.
21477         (refs_may_alias_p_1): For release branches return true if
21478         we are confused by our input.
21479
21480 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21481
21482         * config/s390/s390.c (s390_function_value): Rename to ...
21483         (s390_function_and_libcall_value): ... this.
21484         (s390_function_value): New function.
21485         (s390_libcall_value): New function.
21486         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
21487         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
21488         target macro definitions.
21489         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
21490
21491 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
21492
21493         * config/i386/freebsd64.h (CC1_SPEC): Define.
21494         * config/i386/linux64.h (CC1_SPEC): Define.
21495         * config/i386/x86-64.h (CC1_SPEC): Don't define.
21496
21497 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
21498
21499         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
21500         Remove.
21501         * config/stormy16/stormy16.c: Include reload.h.
21502         (xstormy16_memory_move_cost): New function.
21503         (TARGET_MEMORY_MOVE_COST): Define.
21504
21505 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
21506
21507         PR rtl-optimization/47925
21508         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
21509         with side effects.  Remove the more-specific check for volatile asms.
21510
21511 2011-03-02  Alan Modra  <amodra@gmail.com>
21512
21513         PR target/47935
21514         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
21515         toc relative addresses for valid offsets.
21516
21517 2011-03-01  Richard Guenther  <rguenther@suse.de>
21518
21519         PR tree-optimization/47890
21520         * tree-vect-loop.c (get_initial_def_for_induction): Set
21521         related stmt properly.
21522
21523 2011-03-01  Richard Guenther  <rguenther@suse.de>
21524
21525         PR lto/47924
21526         * lto-streamer.c (lto_record_common_node): Also register
21527         the canonical type.
21528
21529 2011-03-01  Richard Guenther  <rguenther@suse.de>
21530
21531         PR lto/46911
21532         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21533         Do not stream DECL_ABSTRACT_ORIGIN.
21534         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21535         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21536         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21537         Do not stream DECL_ABSTRACT_ORIGIN.
21538         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
21539         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
21540
21541 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
21542
21543         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
21544         FUNCTION_VALUE_REGNO_P): Remove.
21545         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
21546         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
21547         Add 'outgoing' argument.
21548         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
21549         function.
21550         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21551         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21552
21553 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
21554
21555         PR debug/28047
21556         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
21557         (lookup_filename): Likewise.
21558         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
21559
21560 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
21561             Jakub Jelinek  <jakub@redhat.com>
21562
21563         PR middle-end/47893
21564         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
21565         (assign_stack_local_1): Change last argument type to int.
21566         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
21567         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
21568         don't record padding space into frame_space_list nor use those areas.
21569         (assign_stack_local): Adjust caller.
21570         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
21571         of assign_stack_local, pass 0 as last argument.
21572         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
21573         callers.
21574
21575 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
21576
21577         PR debug/47283
21578         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
21579         Use target address_mode and pointer_mode hooks instead of hardcoded
21580         Pmode and ptr_mode.  Handle some simple cases of extending if
21581         POINTERS_EXTEND_UNSIGNED < 0.
21582         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
21583         Call convert_debug_memory_address.
21584         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
21585         convert_debug_memory_address.
21586
21587         PR middle-end/46790
21588         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
21589         * configure: Regenerated.
21590         * config.in: Regenerated.
21591         * varasm.c (default_function_section): Return NULL
21592         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
21593
21594 2011-02-28  Martin Jambor  <mjambor@suse.cz>
21595
21596         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
21597         the description to match the printed values.
21598
21599 2011-02-28  Richard Guenther  <rguenther@suse.de>
21600
21601         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
21602         of the copied scope tree.
21603
21604 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21605
21606         * doc/extend.texi (Function Attributes): Avoid deeply (and
21607         wrongly) nested tables.
21608
21609 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
21610
21611         PR middle-end/47903
21612         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
21613         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
21614         r isn't op0 nor op1.
21615
21616 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
21617
21618         * config/avr/avr.md: Remove magic comment for emacs.
21619
21620 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
21621
21622         PR target/45261
21623         * config/avr/avr.c (avr_option_override): Use error on bad options.
21624         (avr_help): New function.
21625         (TARGET_HELP): Define.
21626
21627 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
21628
21629         PR target/42240
21630         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
21631         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
21632
21633 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
21634
21635         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
21636         (ARM Options): Ditto.
21637         (i386 and x86-64 Options): Ditto.
21638         (RX Options): Ditto.
21639         (SPARC Options): Ditto.
21640
21641 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
21642
21643         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
21644         FreeBSD 6 and later.  Generally use cpu generic.
21645
21646 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
21647
21648         * doc/cpp.texi: Update copyright years.
21649
21650 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
21651
21652         PR target/46898
21653         * config/lm32/lm32.md (ashrsi3): Added needed variable.
21654
21655 2011-02-25  Jon Beniston  <jon@beniston.com>
21656
21657         PR target/46898
21658         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
21659         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
21660         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
21661         (lm32_block_move_inline): Add type cast to remove warning.
21662         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
21663         (gen_int_relational): Move declarations to start of function.
21664
21665 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
21666
21667         PR tree-optimization/45470
21668         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
21669         can throw internally only.
21670         * tree-vect-stmts.c (vectorizable_call): Likewise.
21671
21672 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
21673
21674         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
21675         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
21676         * config/stormy16/stormy16-protos.h
21677         (xstormy16_preferred_reload_class): Remove.
21678         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
21679         static. Change 'rclass' argument and return type to reg_class_t.
21680         (TARGET_PREFERRED_RELOAD_CLASS,
21681         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
21682
21683 2011-02-24  Richard Guenther  <rguenther@suse.de>
21684
21685         * lto-streamer-in.c (input_bb): Do not find referenced vars
21686         in debug statements.
21687
21688 2011-02-23  Jason Merrill  <jason@redhat.com>
21689
21690         * common.opt (fabi-version): Document v5 and v6.
21691
21692 2011-02-23  Richard Guenther  <rguenther@suse.de>
21693
21694         PR tree-optimization/47849
21695         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
21696
21697 2011-02-23  Jie Zhang  <jie@codesourcery.com>
21698
21699         * opts-common.c (decode_cmdline_option): Print empty string
21700         argument as "" in decoded->orig_option_with_args_text.
21701         * gcc.c (execute): Print empty string argument as ""
21702         in the verbose output.
21703         (do_spec_1): Keep empty string argument.
21704
21705 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
21706
21707         * config.gcc: Declare score-* and crx-* obsolete.
21708
21709 2011-02-23  Jie Zhang  <jie@codesourcery.com>
21710
21711         PR rtl-optimization/47763
21712         * web.c (web_main): Ignore naked clobber when replacing register.
21713
21714 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
21715
21716         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
21717         Remove.
21718
21719 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
21720
21721         PR doc/47848
21722         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
21723
21724 2011-02-22  Mike Stump  <mikestump@comcast.net>
21725
21726         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
21727         assembler.
21728         * configure: Regenerate.
21729
21730 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
21731
21732         PR rtl-optimization/46002
21733         * ira-color.c (update_copy_costs): Change class intersection
21734         test to reg_class_contents[] test of 'hard_regno'.
21735
21736 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
21737
21738         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
21739         than Driver option.
21740         * config/hpux11.opt (mt): Likewise.
21741         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
21742         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
21743         * config/vax/elf.opt (mno-asm-pic): Likewise.
21744         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
21745
21746 2011-02-21  Mike Stump  <mikestump@comcast.net>
21747
21748         PR target/47822
21749         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
21750         tree so we can get save the type.
21751         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
21752         for CFString instead of trying to use past the end of the builtins.
21753         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
21754         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
21755         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
21756         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
21757         Rename to darwin_builtin_cfstring.
21758         (darwin_init_cfstring_builtins): Return the built type.
21759
21760 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
21761
21762         PR target/47840
21763         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
21764         (_mm256_insert_epi64): Use _mm_insert_epi64.
21765
21766 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
21767
21768         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
21769         * config/stormy16/stormy16-protos.h
21770         (xstormy16_mode_dependent_address_p): Remove.
21771         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
21772         Make static. Change return type to bool. Change argument type to
21773         const_rtx. Remove dead code.
21774         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
21775
21776 2011-02-21  Richard Guenther  <rguenther@suse.de>
21777
21778         PR lto/47820
21779         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
21780         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21781         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
21782         TUs context.
21783         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
21784         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
21785
21786 2011-02-20  Richard Guenther  <rguenther@suse.de>
21787
21788         PR lto/47822
21789         * tree.c (free_lang_data_in_decl): Clean builtins from
21790         the TU decl BLOCK_VARS.
21791
21792 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
21793
21794         PR debug/47620
21795         PR debug/47630
21796         * haifa-sched.c (fix_tick_ready): Skip tick computation
21797         for debug insns.
21798
21799 2011-02-19  Richard Guenther  <rguenther@suse.de>
21800
21801         PR lto/47647
21802         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
21803         Remove lazy BLOCK_VARS streaming.
21804         (lto_input_ts_block_tree_pointers): Likewise.
21805         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
21806
21807 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
21808
21809         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
21810
21811 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
21812
21813         * config/i386/biarch32.h, config/i386/mach.h,
21814         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
21815
21816 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
21817
21818         PR target/47800
21819         * config/i386/i386.md (peephole2 for shift and plus): Use
21820         operands[1] original mode in the first insn.
21821
21822 2011-02-18  Mike Stump  <mikestump@comcast.net>
21823
21824         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
21825
21826 2011-02-18  Jan Hubicka  <jh@suse.cz>
21827
21828         PR middle-end/47788
21829         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
21830         to zero when the function is not inlinable at all.
21831
21832 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21833
21834         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
21835         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
21836         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
21837         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
21838         * config/pa/t-pa64: Likewise.
21839         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
21840
21841 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
21842
21843         PR driver/47787
21844         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
21845
21846 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21847
21848         PR target/47792
21849         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
21850
21851 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
21852
21853         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
21854         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
21855         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
21856         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
21857         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
21858         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
21859         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
21860         m32r_load_postinc_p, m32r_store_preinc_predec_p,
21861         m32r_legitimate_address_p): New functions.
21862         * config/m32r/constraints.md (constraint "S"): Don't use
21863         STORE_PREINC_PREDEC_P.
21864         (constraint "U"): Don't use LOAD_POSTINC_P.
21865
21866 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
21867
21868         PR rtl-optimization/46178
21869         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
21870         compute ira_hard_regno_cover_class[].
21871
21872 2011-02-18  Richard Guenther  <rguenther@suse.de>
21873
21874         PR lto/47798
21875         * lto-streamer.h (lto_global_var_decls): Declare.
21876         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
21877         statics for global var processing.
21878
21879 2011-02-18  Richard Guenther  <rguenther@suse.de>
21880
21881         PR tree-optimization/47737
21882         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
21883         edge dominance check.
21884
21885 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
21886
21887         PR debug/47780
21888         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
21889         avoid invalid rtx sharing.
21890
21891 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
21892
21893         * doc/cpp.texi (Obsolete Features): Add background on the
21894         origin of assertions.
21895
21896 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
21897
21898         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
21899         objc_abi == 2.
21900         * config/darwin.c (output_objc_section_asm_op): Added support for
21901         ABI v1 and v2.
21902         (is_objc_metadata): New.
21903         (darwin_objc2_section): New.
21904         (darwin_objc1_section): New.
21905         (machopic_select_section): Added support for ABI v1 and v2.
21906         (darwin_emit_objc_zeroed): New.
21907         (darwin_output_aligned_bss): Detect objc metadata and treat it
21908         appropriately.
21909         (darwin_asm_output_aligned_decl_common): Same.
21910         (darwin_asm_output_aligned_decl_local): Same.
21911         * config/darwin-sections.def: Updated for ABI v1 and v2.
21912         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
21913         compiling Objective-C code for the NeXT runtime, default to using
21914         ABI version 0 for 32-bit, and version 2 for 64-bit.
21915
21916 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21917
21918         * common.opt (optimize_fast): New Variable.
21919         * opts.c (default_options_optimization): Use opts->x_optimize_fast
21920         instead of local variable ofast.
21921
21922 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
21923
21924         * doc/invoke.texi (fobjc-abi-version): Documented.
21925         (fobjc-nilcheck): Documented.
21926         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
21927         version.
21928
21929 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21930
21931         PR driver/47390
21932         * common.opt (export-dynamic): New Driver option.
21933         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
21934
21935 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21936
21937         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
21938
21939 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
21940             Jan Hubicka  <jh@suse.cz>
21941
21942         PR debug/47106
21943         PR debug/47402
21944         * cfgexpand.c (account_used_vars_for_block): Remove.
21945         (estimated_stack_frame_size): Use referenced vars.
21946         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
21947         that were referenced in the original function.  Test src_fn
21948         rather than cfun.  Drop redundant get_var_ann.
21949         (setup_one_parameter): Drop redundant get_var_ann.
21950         (declare_return_variable): Likewise.
21951         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
21952         (copy_arguments_for_versioning): Drop redundant get_var_ann.
21953         * ipa-inline.c (compute_inline_parameters): Do not compute
21954         disregard_inline_limits here.
21955         (compute_inlinable_for_current, pass_inlinable): New.
21956         (pass_inline_parameters): Require PROP_referenced_vars.
21957         * cgraphunit.c (cgraph_process_new_functions): Don't run
21958         compute_inline_parameters explicitly unless function is in SSA form.
21959         (cgraph_analyze_function): Set .disregard_inline_limits.
21960         * tree-sra.c (convert_callers): Compute inliner parameters
21961         only for functions already in SSA form.
21962
21963 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21964
21965         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
21966         -mlittle-endian-data.
21967
21968 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
21969
21970         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
21971         -mno-fpu, not -fpu and -no-fpu.
21972         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
21973         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
21974
21975 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
21976
21977         PR target/43653
21978         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
21979         input reload with PLUS RTX.
21980
21981 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21982
21983         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
21984         of InverseVar(MDMX).
21985
21986 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21987
21988         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
21989         --m4-340.
21990
21991 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21992
21993         * config/mn10300/mn10300.opt (mno-crt0): New.
21994
21995 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
21996
21997         * config/m68k/uclinux.opt (static-libc): New Driver option.
21998
21999 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
22000
22001         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
22002
22003 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
22004
22005         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
22006         %{muser-extend-enabled}.
22007
22008 2011-02-16  Richard Guenther  <rguenther@suse.de>
22009
22010         PR tree-optimization/47738
22011         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
22012         the TODO from tree_predictive_commoning.
22013
22014 2011-02-15  Jeff Law  <law@redhat.com>
22015
22016         Revert
22017         2011-01-25  Jeff Law  <law@redhat.com>
22018
22019         PR rtl-optimization/37273
22020         * ira-costs.c (scan_one_insn): Detect constants living in memory and
22021         handle them like argument loads from stack slots.  Do not double
22022         count memory for memory constants and argument loads from stack slots.
22023
22024 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
22025
22026         PR target/47755
22027         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
22028         mode for vector constants.  Remove code that checks for TImode.
22029
22030 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
22031
22032         PR debug/47106
22033         PR debug/47402
22034         * cgraph.h (compute_inline_parameters): Return void.
22035         * ipa-inline.c (compute_inline_parameters): Adjust.
22036
22037 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
22038
22039         PR debug/47106
22040         PR debug/47402
22041         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
22042         rather than decl.
22043         * cfgexpand.c (estimated_stack_frame_size): Likewise.
22044         * ipa-inline.c (compute_inline_parameters): Adjust.
22045
22046 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
22047
22048         PR debug/47106
22049         PR debug/47402
22050         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
22051         Adjust all users.  Pass FN to...
22052         * tree-flow-inline.h (first_referenced_var): ... this.  Add
22053         fn argument.
22054         * ipa-struct-reorg.c: Adjust.
22055         * tree-dfa.c: Adjust.
22056         * tree-into-ssa.c: Adjust.
22057         * tree-sra.c: Adjust.
22058         * tree-ssa-alias.c: Adjust.
22059         * tree-ssa-live.c: Adjust.
22060         * tree-ssa.c: Adjust.
22061         * tree-ssanames.c: Adjust.
22062         * tree-tailcall.c: Adjust.
22063
22064 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
22065
22066         PR debug/47106
22067         PR debug/47402
22068         * tree-flow.h (referenced_var_lookup): Add fn parameter.
22069         Adjust all callers.
22070         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
22071         * tree-flow-inline.h: Adjust.
22072         * gimple-pretty-print.c: Adjust.
22073         * tree-into-ssa.c: Adjust.
22074         * tree-ssa.c: Adjust.
22075         * cfgexpand.c: Adjust.
22076
22077 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
22078
22079         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
22080         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22081         (EXTRA_CONSTRAINT): Delete.
22082         * config/iq2000/constraints.md: New file.
22083         * config/iq2000/iq2000.md: Include it.
22084         (define_insn ""): Delete.
22085         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
22086         unsupported constraint letters from patterns.
22087         (call_value, call_value_internal1): Likewise.
22088         (call_value_multiple_internal1): Likewise.
22089
22090 2011-02-15  Nick Clifton  <nickc@redhat.com>
22091
22092         * config/mn10300/mn10300.c: Include tm-constrs.h.
22093         (struct liw_data): New data structure describing an LIW candidate
22094         instruction.
22095         (extract_bundle): Use struct liw_data.  Allow small integer
22096         operands for some instructions.
22097         (check_liw_constraints): Use struct liw_data.  Remove swapped
22098         parameter.  Add comments describing the checks.  Fix bug when
22099         assigning the source of liw1 to the source of liw2.
22100         (liw_candidate): Delete.  Code moved into extract_bundle.
22101         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
22102         before swapping.
22103         * config/mn10300/predicates.md (liw_operand): New predicate.
22104         Allows registers and small integer constants.
22105         * config/mn10300/constraints.md (O): New constraint.  Accetps
22106         integers in the range -8 to +7 inclusive.
22107         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
22108         for moving a small integer into a register.  Give this alternative
22109         LIW attributes.
22110         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
22111         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
22112         using the J,K,L and M constraints,
22113         (liw): Remove SI mode on second operands to allow for HI and QI
22114         mode values.
22115         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
22116         instruction.
22117
22118 2011-02-15  Richard Guenther  <rguenther@suse.de>
22119
22120         PR tree-optimization/47743
22121         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
22122         for a non-type-compatible VN lookup bail out.
22123
22124 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
22125
22126         * config/fr30/constraints.md: New file.
22127         * config/fr30/fr30.md: Include it.
22128         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
22129         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22130         (EXTRA_CONSTRAINT): Delete.
22131
22132 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
22133
22134         * config/frv/constraints.md: New file.
22135         * config/frv/predicates.md: Include it.
22136         * config/frv/frv.c (reg_class_from_letter): Delete.
22137         (frv_option_override): Don't initialize it.
22138         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
22139         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
22140         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
22141         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
22142         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
22143         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22144         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
22145         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
22146         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
22147         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
22148         (REG_CLASS_FROM_CONSTRAINT): Delete.
22149
22150 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
22151
22152         PR middle-end/47581
22153         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
22154         if frame size is 0 in a leaf function.
22155
22156 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22157
22158         PR pch/14940
22159         * config/alpha/host-osf.c: New file.
22160         * config/alpha/x-osf: New file.
22161         * config.host (alpha*-dec-osf*): Use it.
22162
22163 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
22164
22165         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
22166         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
22167         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
22168         (rx_mode_dependent_address_p): ...this. Make static. Change argument
22169         type to const_rtx.
22170         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
22171
22172 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
22173
22174         * config/stormy16/constraints.md: New file.
22175         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
22176         Use satisfies_constraint_Q and satisfies_constraint_R.
22177         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
22178         Delete.
22179         (xstormy16_legitiamte_address_p): Declare.
22180         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
22181         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22182         (EXTRA_CONSTRAINT): Delete.
22183         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
22184         Un-staticize.
22185         (xstormy16_extra_constraint_p): Delete.
22186
22187 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
22188
22189         PR tree-optimization/46494
22190         * loop-unroll.c (split_edge_and_insert): Adjust comment.
22191         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
22192         (pass_rtl_loop_done): Add TODO_verify_flow.
22193         * fwprop.c (pass_rtl_fwprop): Likewise.
22194         * modulo-sched.c (pass_sms): Likewise.
22195         * tree-ssa-dom.c (pass_dominator): Likewise.
22196         * tree-ssa-loop-ch.c (pass_ch): Likewise.
22197         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
22198         (pass_tree_loop_done): Likewise.
22199         * tree-ssa-pre.c (execute_pre): Likewise.
22200         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
22201         * tree-ssa-sink.c (pass_sink_code): Likewise.
22202         * tree-vrp.c (pass_vrp): Likewise.
22203
22204 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
22205
22206         * config/v850/constraints.md: New file.
22207         * config/v850/v850.md: Include it.
22208         * config/v850/predicates.md (reg_or_0_operand): Use
22209         satisfies_constraint_G.
22210         (special_symbolref_operand): Use satisfies_constraint_K.
22211         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
22212         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
22213         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
22214         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
22215         (EXTRA_CONSTRAINT): Delete.
22216         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
22217         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
22218         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
22219
22220 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
22221
22222         PR target/47696
22223         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
22224         description.
22225
22226 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
22227
22228         * config/mcore/constraints.md: New file.
22229         * config/mcore/mcore.md: Include it.
22230         * config/mcore/mcore.c (reg_class_from_letter): Delete.
22231         * config/mcore/mcore.h (reg_class_from_letter): Delete.
22232         (REG_CLASS_FROM_LETTER): Delete.
22233         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
22234         insn_const_int_ok_for_constraint.
22235         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
22236         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
22237         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
22238         (EXTRA_CONSTRAINT): Delete.
22239
22240 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22241
22242         PR ada/41929
22243         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
22244         (IS_SIGHANDLER): Define.
22245         (sparc64_is_sighandler): New function, split off from
22246         sparc64_fallback_frame_state.
22247         (sparc_is_sighandler): New function, split off from
22248         sparc_fallback_frame_state.
22249         (sparc64_fallback_frame_state): Merge with ...
22250         (sparc_fallback_frame_state): ... this into ...
22251         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
22252         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
22253         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
22254         stack instead of hardcoded offsets.
22255
22256 2011-02-14  Andriy Gapon  <avg@freebsd.org>
22257
22258         PR target/45808
22259         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
22260
22261 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
22262
22263         * configure: Regenerate.
22264
22265 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
22266
22267         PR driver/45731
22268         * gcc.c (asm_options): Correct spec matching --target-help.
22269
22270 2011-02-12  Martin Jambor  <mjambor@suse.cz>
22271
22272         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
22273         to gimple call error.
22274
22275 2011-02-12  Mike Stump  <mikestump@comcast.net>
22276
22277         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
22278         comments in backslash regions.
22279
22280 2011-02-12  Mike Stump  <mikestump@comcast.net>
22281             Jakub Jelinek  <jakub@redhat.com>
22282             Iain Sandoe  <iains@gcc.gnu.org>
22283
22284         PR target/47324
22285         * dwarf2out.c (output_cfa_loc): When required, apply the
22286         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
22287         (output_loc_sequence): Likewise.
22288         (output_loc_operands_raw): Likewise.
22289         (output_loc_sequence_raw): Likewise.
22290         (output_cfa_loc): Likewise.
22291         (output_loc_list): Suppress register number adjustment when
22292         calling output_loc_sequence()
22293         (output_die): Likewise.
22294
22295 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
22296
22297         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
22298         Remove macros.
22299         * config/xtensa/xtensa.c (xtensa_register_move_cost,
22300         xtensa_memory_move_cost): New functions.
22301         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
22302
22303 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
22304
22305         PR lto/47225
22306         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
22307         in the current directory.
22308         * configure: Rebuilt.
22309
22310 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
22311
22312         * config/darwin.c (darwin_override_options): Add a hunk missed
22313         from the commit of r168571.  Trim comment line lengths and
22314         correct indents of the preceding block.
22315
22316 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
22317
22318         * gcc.c (driver_handle_option): Concatenate the argument to -F with
22319         the switch.
22320
22321 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
22322
22323         * common.opt (nostartfiles): New Driver option.
22324
22325 2011-02-11  Xinliang David Li  <davidxl@google.com>
22326
22327         PR tree-optimization/47707
22328         * tree-chrec.c (convert_affine_scev): Keep type precision.
22329
22330 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
22331
22332         PR tree-optimization/47420
22333         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
22334
22335 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
22336
22337         PR rtl-optimization/47614
22338         * rtl.h (check_for_inc_dec): Declare.
22339         * dse.c (check_for_inc_dec): Externalize...
22340         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
22341         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
22342
22343 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
22344
22345         PR driver/47678
22346         * gcc.c (main): Do not compile inputs if there were errors in
22347         option handling.
22348         * opts-common.c (read_cmdline_option): Check for wrong language
22349         after other error checks.
22350
22351 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
22352
22353         * cgraph.c: Fix comment typos.
22354         * cgraph.h: Likewise.
22355         * cgraphunit.c: Likewise.
22356         * ipa-cp.c: Likewise.
22357         * ipa-inline.c: Likewise.
22358         * ipa-prop.c: Likewise.
22359         * ipa-pure-const.c: Likewise.
22360         * ipa-ref.c: Likewise.
22361         * ipa-reference.c: Likewise.
22362
22363 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
22364
22365         PR debug/47684
22366         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
22367
22368 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22369
22370         PR testsuite/47400
22371         * doc/sourcebuild.texi (Require Support): Document
22372         dg-require-ascii-locale.
22373
22374 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
22375
22376         * doc/lto.texi (Write summary): Fix missing parentheses.
22377
22378 2011-02-10  DJ Delorie  <dj@redhat.com>
22379
22380         * config/m32c/m32c.c (m32c_option_override): Disable
22381         -fcombine-stack-adjustments until flag value tracking and compare
22382         optimization can be rewritten.
22383
22384 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
22385
22386         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
22387         PROCESSOR_POWER7.
22388         (PROCESSOR_DEFAULT64): Likewise.
22389
22390 2011-02-10  Richard Henderson  <rth@redhat.com>
22391
22392         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
22393         change from 2011-02-03.
22394         * config/rx/rx.c (flags_from_code): Likewise.
22395         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
22396         is valid, n/pz otherwise.
22397         (rx_select_cc_mode): Return CCmode if Y is not zero.
22398
22399 2011-02-10  Richard Guenther  <rguenther@suse.de>
22400
22401         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
22402
22403 2011-02-10  Richard Guenther  <rguenther@suse.de>
22404
22405         PR tree-optimization/47677
22406         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
22407
22408 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
22409
22410         PR target/47665
22411         * combine.c (make_compound_operation): Only change shifts into
22412         multiplication for SCALAR_INT_MODE_P.
22413
22414 2011-02-10  Jie Zhang  <jie@codesourcery.com>
22415
22416         PR testsuite/47622
22417         Revert
22418         2011-02-05  Jie Zhang  <jie@codesourcery.com>
22419         PR debug/42631
22420         * web.c (entry_register): Don't clobber the number of the
22421         first uninitialized reference in used[].
22422
22423 2011-02-09  Richard Guenther  <rguenther@suse.de>
22424
22425         PR tree-optimization/47664
22426         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
22427         all edges again.
22428
22429 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
22430
22431         PR target/46481
22432         PR target/47032
22433         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
22434         PROCESSOR_POWER7.
22435         (PROCESSOR_DEFAULT64): Same.
22436         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
22437
22438 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22439
22440         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
22441
22442 2011-02-09  Martin Jambor  <mjambor@suse.cz>
22443
22444         PR middle-end/45505
22445         * tree-sra.c (struct access): New flags grp_scalar_read and
22446         grp_scalar_write.  Changed description of assignment read and write
22447         flags.
22448         (dump_access): Dump new flags, reorder all of them.
22449         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
22450         to detect multiple scalar reads.
22451         (analyze_access_subtree): Use the new scalar read write flags instead
22452         of the old flags.  Adjusted comments.
22453
22454 2011-02-08  DJ Delorie  <dj@redhat.com>
22455
22456         PR target/47548
22457         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
22458         patterns.
22459
22460 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22461
22462         * config/m68k/uclinux.opt: New.
22463         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
22464
22465 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22466
22467         * config/cris/elf.opt (sim): New Driver option.
22468
22469 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22470
22471         * config/xtensa/elf.opt: New.
22472         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
22473
22474 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22475
22476         * config/vax/elf.opt: New.
22477         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
22478
22479 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22480
22481         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
22482
22483 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22484
22485         * config/gnu-user.opt: New.
22486         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
22487         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
22488         *-*-uclinux*): Use gnu-user.opt.
22489
22490 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
22491
22492         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
22493         * config/i386/gnu.h (CPP_SPEC): Likewise.
22494
22495 2011-02-08  Ian Lance Taylor  <iant@google.com>
22496
22497         * common.opt (fcx-limited-range): Add SetByCombined flag.
22498         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
22499         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
22500         (fassociative-math, freciprocal-math): Likewise.
22501         (funsafe-math-optimizations): Likewise.
22502         * opth-gen.awk: Handle SetByCombined.
22503         * optc-gen.awk: Likewise.
22504         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
22505         (set_unsafe_math_optimizations_flags): Likewise.
22506         * doc/options.texi (Option properties): Document SetByCombined.
22507
22508 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
22509
22510         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
22511         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
22512         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
22513         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
22514         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
22515
22516 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
22517
22518         PR tree-optimization/46834
22519         PR tree-optimization/46994
22520         PR tree-optimization/46995
22521         * graphite-sese-to-poly.c (used_outside_reduction): New.
22522         (detect_commutative_reduction): Call used_outside_reduction.
22523         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
22524         translate_scalar_reduction_to_array only when at least one
22525         loop-phi/close-phi tuple has been detected.
22526
22527 2011-02-08  Richard Guenther  <rguenther@suse.de>
22528
22529         PR middle-end/47639
22530         * tree-vect-generic.c (expand_vector_operations_1): Update
22531         stmts here ...
22532         (expand_vector_operations): ... not here.  Cleanup EH info
22533         and the CFG if required.
22534
22535 2011-02-08  Richard Guenther  <rguenther@suse.de>
22536
22537         PR tree-optimization/47641
22538         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
22539         require type compatibility.
22540
22541 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22542
22543         * gimple-low.c (lower_function_body): Don't remove the location of
22544         the return statement here.
22545         (lower_gimple_return): Do it here instead but only if the return
22546         statement is actually used twice.
22547
22548 2011-02-08  Richard Guenther  <rguenther@suse.de>
22549
22550         PR tree-optimization/47632
22551         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
22552         unused up_to_stmt parameter, return whether cfg-cleanup is
22553         necessary, remove EH info properly.
22554         (forward_propagate_into_gimple_cond): Adjust caller.
22555         (forward_propagate_into_cond): Likewise.
22556         (forward_propagate_comparison): Likewise.
22557         (tree_ssa_forward_propagate_single_use_vars): Make
22558         forward_propagate_comparison case similar to the two others.
22559
22560 2011-02-08  Nick Clifton  <nickc@redhat.com>
22561
22562         * config/mn10300/mn10300.opt (mliw): New command line option.
22563         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
22564         (liw_bundling): New automaton.
22565         (liw): New attribute.
22566         (liw_op): New attribute.
22567         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
22568         (movsi_internal): Add LIW attributes.
22569         (andsi3): Likewise.
22570         (iorsi3): Likewise.
22571         (xorsi3): Likewise.
22572         (addsi3): Separate register and immediate alternatives.
22573         Add LIW attributes.
22574         (subsi3): Likewise.
22575         (cmpsi): Likewise.
22576         (aslsi3): Likewise.
22577         (lshrsi3): Likewise.
22578         (ashrsi3): Likewise.
22579         (liw): New pattern.
22580         * config/mn10300/mn10300.c (liw_op_names): New
22581         (mn10300_print_operand): Handle 'W' operand descriptor.
22582         (extract_bundle): New function.
22583         (check_liw_constraints): New function.
22584         (liw_candidate): New function.
22585         (mn10300_bundle_liw): New function.
22586         (mn10300_reorg): New function.
22587         (TARGET_MACHINE_DEPENDENT_REORG): Define.
22588         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
22589         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
22590         __LIW__ or __NO_LIW__.
22591         * doc/invoke.texi: Describe the -mliw command line option.
22592
22593 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22594
22595         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
22596         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
22597         pthread_mutex_unlock): Remove.
22598         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
22599         * config/pa/t-pa64: Likewise.
22600         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
22601         shared libc if not linking against libpthread.
22602         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
22603
22604 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
22605
22606         PR target/47558
22607         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
22608         on 10.6 and later to ensure that we always use the unwinder from
22609         the system.  Only add -no_compact_unwind when tarteting darwin
22610         10.6 or later.
22611
22612 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
22613
22614         PR target/46997
22615         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
22616         (vec_interleave_lowv2sf): Ditto.
22617         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
22618         (vec_extract_oddv2sf): Ditto.
22619
22620 2011-02-07  Mike Stump  <mikestump@comcast.net>
22621
22622         PR target/42333
22623         Add __ieee_divdc3 entry point.
22624         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
22625         entry point.
22626         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
22627         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
22628         * config/darwin.c (darwin_rename_builtins): Add.
22629         * config/darwin-protos.h (darwin_rename_builtins): Add.
22630
22631 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
22632
22633         PR target/47636
22634         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
22635         for the condition.
22636
22637 2011-02-07  Mike Stump  <mikestump@comcast.net>
22638
22639         * config/darwin.opt (mmacosx-version-min): Update default OS version.
22640
22641 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
22642
22643         PR target/47534
22644         * config/avr/libgcc.S (exit): Move .endfunc
22645
22646 2011-02-07  Richard Guenther  <rguenther@suse.de>
22647
22648         PR tree-optimization/47615
22649         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
22650         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
22651         (run_scc_vn): Initialize it.
22652         (visit_reference_op_load): Use it.
22653         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
22654
22655 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
22656
22657         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
22658         DImode trapping arithmetic libfuncs.
22659
22660 2011-02-07  Richard Guenther  <rguenther@suse.de>
22661
22662         PR tree-optimization/47621
22663         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
22664         two duplicates ...
22665         (execute_update_addresses_taken): ... here.  Make it more
22666         conservative in what we accept.
22667
22668 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
22669
22670         * config/sparc/freebsd.h (ASM_SPEC): Define.
22671         * config/sparc/vxworks.h (ASM_SPEC): Define.
22672
22673 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
22674
22675         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
22676
22677 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
22678
22679         * doc/invoke.texi: Remove reference to compiler internals from
22680         user documentation.
22681
22682         * reg-notes.def: Remove REG_VALUE_PROFILE.
22683         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
22684
22685 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
22686
22687         PR middle-end/47610
22688         * varasm.c (default_section_type_flags): If decl is NULL,
22689         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
22690
22691 2011-02-05  Jie Zhang  <jie@codesourcery.com>
22692
22693         PR debug/42631
22694         * web.c (entry_register): Don't clobber the number of the
22695         first uninitialized reference in used[].
22696
22697 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
22698
22699         PR tree-optimization/46194
22700         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
22701         (build_classic_dist_vector_1): Do not represent classic distance
22702         vectors when the access functions are variating in different loops.
22703
22704 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22705
22706         * config/mips/iris6.opt: New.
22707         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
22708
22709 2011-02-04  Richard Henderson  <rth@redhat.com>
22710             Steve Ellcey  <sje@cup.hp.com>
22711
22712         PR target/46997
22713         * config/ia64/predicates.md (mux1_brcst_element): New.
22714         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
22715         * config/ia64/ia64.c (ia64_unpack_assemble): New.
22716         (ia64_unpack_sign): New.
22717         (ia64_expand_unpack): Rewrite using new routines.
22718         (ia64_expand_widen_sum): Ditto.
22719         (ia64_expand_dot_prod_v8qi): Ditto.
22720         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
22721         routines, add endian check.
22722         (pmpy2_even): Rename from pmpy2_r, add endian check.
22723         (pmpy2_odd): Rename from pmpy2_l, add endian check.
22724         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
22725         (vec_widen_smult_hi_v4hi): Ditto.
22726         (vec_widen_umult_lo_v4hi): Ditto.
22727         (vec_widen_umult_hi_v4hi): Ditto.
22728         (mulv2si3): Change endian checks.
22729         (sdot_prodv4hi): Rewrite with new calls.
22730         (udot_prodv4hi): New.
22731         (vec_pack_ssat_v4hi): Add endian check.
22732         (vec_pack_usat_v4hi): Ditto.
22733         (vec_pack_ssat_v2si): Ditto.
22734         (max1_even): Rename from max1_r, add endian check.
22735         (max1_odd): Rename from max1_l, add endian check.
22736         (*mux1_rev): Format change.
22737         (*mux1_mix): Ditto.
22738         (*mux1_shuf): Ditto.
22739         (*mux1_alt): Ditto.
22740         (*mux1_brcst_v8qi): Use new predicate.
22741         (vec_extract_evenv8qi): Remove endian check.
22742         (vec_extract_oddv8qi): Ditto.
22743         (vec_interleave_lowv4hi): Format change.
22744         (vec_interleave_highv4hi): Ditto.
22745         (mix2_even): Rename from mix2_r, add endian check.
22746         (mix2_odd): Rename from mux2_l, add endian check.
22747         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
22748         (vec_extract_evenodd_helper): Format change.
22749         (vec_extract_evenv4hi): Remove endian check.
22750         (vec_extract_oddv4hi): Remove endian check.
22751         (vec_interleave_lowv2si): Format change.
22752         (vec_interleave_highv2si): Format change.
22753         (vec_initv2si): Remove endian check.
22754         (vecinit_v2si): Add endian check.
22755         (reduc_splus_v2sf): Add endian check.
22756         (reduc_smax_v2sf): Ditto.
22757         (reduc_smin_v2sf): Ditto.
22758         (vec_initv2sf): Remove endian check.
22759         (fpack): Add endian check.
22760         (fswap): Add endian check.
22761         (vec_interleave_highv2sf): Add endian check.
22762         (vec_interleave_lowv2sf): Add endian check.
22763         (fmix_lr): Add endian check.
22764         (vec_setv2sf): Format change.
22765         (*vec_extractv2sf_0_be): Use shift to extract operand.
22766         (*vec_extractv2sf_1_be): New.
22767         (vec_pack_trunc_v4hi): Add endian check.
22768         (vec_pack_trunc_v2si): Format change.
22769
22770 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
22771
22772         PR inline-asm/23200
22773         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
22774         do bb, locus and block comparison and disallow loads if it is not set.
22775         (stmt_is_replaceable_p): New function.
22776         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
22777         callers.
22778         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
22779         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
22780         SSA_NAME_DEF_STMT.
22781         * tree-flow.h (stmt_is_replaceable_p): New prototype.
22782
22783 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22784
22785         * config/rs6000/xilinx.opt: New.
22786         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
22787
22788 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
22789
22790         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
22791
22792 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
22793
22794         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
22795         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
22796         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
22797         secondary_reload_info, xtensa_secondary_reload): Remove.
22798         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
22799         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
22800         (xtensa_preferred_reload_class): Make static. Change return and
22801         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
22802         Use CONST_DOUBLE_P predicate.
22803         (xtensa_preferred_output_reload_class): New function.
22804         (xtensa_secondary_reload): Make static.
22805
22806 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
22807
22808         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
22809         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
22810         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
22811
22812 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22813
22814         PR middle-end/31490
22815         * output.h (SECTION_RELRO): Define.
22816         (SECTION_MACH_DEP): Adjust.
22817         (get_variable_section): New prototype.
22818         * varpool.c (varpool_finalize_named_section_flags): New function.
22819         (varpool_assemble_pending_decls): Call it.
22820         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
22821         * cgraphunit.c (cgraph_output_in_order): Call
22822         varpool_finalize_named_section_flags.
22823         * varasm.c (get_section): Allow section flags conflicts between
22824         relro and read-only sections if the section hasn't been declared yet.
22825         Set SECTION_OVERRIDE after diagnosing section type conflict.
22826         (get_variable_section): No longer static.
22827         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
22828         readonly sections that need relocations.
22829         (decl_readonly_section_1): New function.
22830         (decl_readonly_section): Use it.
22831
22832         Revert:
22833         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
22834                     Steve Ellcey  <sje@cup.hp.com>
22835
22836         PR middle-end/31490
22837         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
22838         if section attribute used.
22839
22840 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22841
22842         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
22843         * config/darwin.c (SECTION_NO_ANCHOR): Define.
22844         (darwin_init_sections): Remove assertion.
22845
22846 2011-02-03  Nick Clifton  <nickc@redhat.com>
22847
22848         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
22849         lt and ge.
22850         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
22851         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
22852         instead of "n" and "pz".
22853         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
22854         CC_FLAG_S.
22855
22856 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
22857
22858         PR target/47312
22859         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
22860         fma, expand FMA_EXPR as fma{,f,l} call.
22861
22862         PR lto/47274
22863         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
22864         copy them into a unsigned char variable and pass address of it to
22865         lto_output_data_stream.
22866
22867         PR target/47564
22868         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
22869         around backend_init_target and lang_dependent_init_target calls.
22870         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
22871         (verify_cgraph_node): Don't call set_cfun here.  Use
22872         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
22873         Set error_found for incorrectly represented calls to thunks.
22874
22875 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
22876
22877         PR debug/43092
22878         PR rtl-optimization/43494
22879         * rtl.h (for_each_inc_dec_fn): New type.
22880         (for_each_inc_dec): Declare.
22881         * rtlanal.c (struct for_each_inc_dec_ops): New type.
22882         (for_each_inc_dec_find_inc_dec): New fn.
22883         (for_each_inc_dec_find_mem): New fn.
22884         (for_each_inc_dec): New fn.
22885         * dse.c (struct insn_size): Remove.
22886         (replace_inc_dec, replace_inc_dec_mem): Remove.
22887         (emit_inc_dec_insn_before): New fn.
22888         (check_for_inc_dec): Use it, along with for_each_inc_dec.
22889         (canon_address): Pass mem modes to cselib_lookup.
22890         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
22891         (cselib_lookup_from_insn): Likewise.
22892         (cselib_subst_to_values): Likewise.
22893         * cselib.c (find_slot_memmode): New var.
22894         (cselib_find_slot): New fn.  Use it instead of
22895         htab_find_slot_with_hash everywhere.
22896         (entry_and_rtx_equal_p): Use find_slot_memmode.
22897         (autoinc_split): New fn.
22898         (rtx_equal_for_cselib_p): Rename and implement in terms of...
22899         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
22900         Deal with autoinc.  Special-case recursion into MEMs.
22901         (cselib_hash_rtx): Likewise.
22902         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
22903         address and MEM modes.
22904         (cselib_subst_to_values): Add memmode, pass it on.
22905         Deal with autoinc.
22906         (cselib_lookup): Add memmode argument, pass it on.
22907         (cselib_lookup_from_insn): Add memmode.
22908         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
22909         (struct cselib_record_autoinc_data): New.
22910         (cselib_record_autoinc_cb): New fn.
22911         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
22912         mode to cselib_lookup.  Reset autoinced REGs here instead of...
22913         (cselib_process_insn): ... here.
22914         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
22915         to cselib_lookup.
22916         (add_uses): Likewise, also to cselib_subst_to_values.
22917         (add_stores): Likewise.
22918         * sched-deps.c (add_insn_mem_dependence): Pass mode to
22919         cselib_subst_to_values.
22920         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
22921         * gcse.c (do_local_cprop): Adjusted.
22922         * postreload.c (reload_cse_simplify_set): Adjusted.
22923         (reload_cse_simplify_operands): Adjusted.
22924         * sel-sched-dump (debug_mem_addr_value): Pass mode.
22925
22926 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
22927
22928         PR tree-optimization/45122
22929         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
22930         unsafe assumptions when there's more than one loop exit.
22931
22932 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
22933
22934         PR target/47272
22935         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22936         Document using vector double with the load/store builtins, and
22937         that the load/store builtins always use Altivec instructions.
22938
22939         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
22940         to use altivec memory instructions, even on VSX.
22941         (vector_altivec_store_<mode>): Ditto.
22942
22943         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
22944         function.
22945
22946         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22947         V2DF, V2DI support to load/store overloaded builtins.
22948
22949         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
22950         altivec load/store builtins for V2DF/V2DI types.
22951
22952         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22953         set avoid indexed addresses on power6 if -maltivec.
22954         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
22955         vector_altivec_load/vector_altivec_store builtins.
22956         (altivec_expand_st_builtin): Ditto.
22957         (altivec_expand_builtin): Add VSX memory builtins.
22958         (rs6000_init_builtins): Add V2DI types to internal types.
22959         (altivec_init_builtins): Add support for V2DF/V2DI altivec
22960         load/store builtins.
22961         (rs6000_address_for_altivec): Insure memory address is appropriate
22962         for Altivec.
22963
22964         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
22965         vec_vsx_ld and vec_vsx_st.
22966         (vsx_store_<mode>): Ditto.
22967
22968         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
22969         variables to hold long long types for VSX vector memory builtins.
22970         (RS6000_BTI_unsigned_long_long): Ditto.
22971         (long_long_integer_type_internal_node): Ditti.
22972         (long_long_unsigned_type_internal_node): Ditti.
22973
22974         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
22975         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
22976         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
22977
22978         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
22979         short cuts.
22980         (vec_vsx_st): Ditto.
22981
22982 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22983
22984         * config/pa/pa-hpux10.opt: New.
22985         * config/hpux11.opt (pthread): New Driver option.
22986         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
22987         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
22988
22989 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
22990
22991         * config/ia64/vms.opt: New.
22992         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
22993
22994 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
22995
22996         PR target/47580
22997         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
22998         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
22999         generator functions.
23000         (vsx_floatuns<VSi><mode>2): Ditto.
23001         (vsx_fix_trunc<mode><VSi>2): Ditto.
23002         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
23003
23004 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
23005
23006         * config/i386/djgpp.opt (posix): New Driver option.
23007
23008 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
23009
23010         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
23011         Move to the unsupported targets list.
23012
23013 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
23014
23015         PR rtl-optimization/47525
23016         * df-scan.c: Update copyright years.
23017         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
23018         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
23019
23020 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23021
23022         * config/i386/sysv4.h (TARGET_VERSION): Remove.
23023         (SUBTARGET_RETURN_IN_MEMORY): Remove.
23024         (ASM_OUTPUT_ASCII): Remove.
23025         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
23026
23027 2011-02-02  Jeff Law  <law@redhat.com>
23028
23029         PR middle-end/47543
23030         * reload.c (find_reloads_address): Handle reg+d address where both
23031         components are invalid by reloading the entire address.
23032
23033 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
23034             Richard Guenther  <rguenther@suse.de>
23035
23036         PR tree-optimization/40979
23037         PR bootstrap/47044
23038         * passes.c (init_optimization_passes): After LIM call copy_prop
23039         and DCE to clean up.
23040         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
23041
23042 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
23043
23044         PR tree-optimization/47576
23045         PR tree-optimization/47555
23046         * doc/invoke.texi (scev-max-expr-complexity): Documented.
23047         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
23048         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
23049         * tree-scalar-evolution.c (follow_ssa_edge): Use
23050         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
23051
23052 2011-02-02  Richard Guenther  <rguenther@suse.de>
23053
23054         PR tree-optimization/47566
23055         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
23056
23057 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
23058
23059         PR debug/47106
23060         PR debug/47402
23061         * tree-inline.c (declare_return_variable): Remove unused caller
23062         variable.
23063
23064         PR debug/47106
23065         PR debug/47402
23066         * tree-flow-inline.h (clear_is_used, is_used_p): New.
23067         * cfgexpand.c (account_used_vars_for_block): Use them.
23068         * tree-nrv.c (tree_nrv): Likewise.
23069         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
23070         (dump_scope_block): Likewise.
23071         (remove_unused_locals): Likewise.
23072
23073         PR debug/47106
23074         PR debug/47402
23075         * tree-inline.c (declare_return_variable): Add result decl to
23076         local decls only once.
23077         * gimple-low.c (record_vars_into): Mark newly-created variables
23078         as referenced.
23079
23080 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
23081
23082         PR debug/47498
23083         PR debug/47501
23084         PR debug/45136
23085         PR debug/45130
23086         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23087         debug insns.
23088         (no_real_insns_p, schedule_block, set_priorities): Drop special
23089         treatment of boundary debug insns.
23090         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23091         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
23092         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23093         (BOUNDARY_DEBUG_INSN_P): Likewise.
23094         (SCHEDULE_DEBUG_INSN_P): Likewise.
23095         * sched-rgn.c (init_ready_list): Drop special treatment of
23096         boundary debug insns.
23097         * final.c (rest_of_clean_state): Clear notes' BB.
23098
23099 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23100
23101         * config/openbsd.opt (assert=): New Driver option.
23102
23103 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23104
23105         * config/i386/nto.opt: New.
23106         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
23107
23108 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23109
23110         * config/i386/netware.opt: New.
23111         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
23112
23113 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23114
23115         * config/interix.opt (posix): New Driver option.
23116
23117 2011-02-01  DJ Delorie  <dj@redhat.com>
23118
23119         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
23120
23121         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
23122         class for A0/A1.
23123
23124 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
23125
23126         PR tree-optimization/47561
23127         * toplev.c (process_options): Print the Graphite flags.  Add
23128         flag_loop_flatten to the list of options requiring Graphite.
23129
23130 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23131
23132         * config/i386/cygming.opt (posix): New Driver option.
23133
23134 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23135
23136         * config/arm/vxworks.opt: New.
23137         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
23138
23139 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
23140
23141         * config/alpha/elf.opt: New.
23142         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
23143         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
23144
23145 2011-02-01  Richard Guenther  <rguenther@suse.de>
23146
23147         PR tree-optimization/47559
23148         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
23149         store-motion on references that can throw.
23150
23151 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
23152
23153         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
23154         * tree-pass.h (TDF_CSELIB): New macro.
23155         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
23156         cselib_lookup): Check for it rather than for TDF_DETAILS.
23157
23158 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
23159
23160         PR driver/47547
23161         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
23162         is HOST_BIT_BUCKET.
23163
23164         * opts.c (finish_options): Don't add x_aux_base_name if it is
23165         HOST_BIT_BUCKET.
23166
23167 2011-02-01  Richard Guenther  <rguenther@suse.de>
23168
23169         PR tree-optimization/47555
23170         Revert
23171         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
23172
23173         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
23174
23175 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
23176
23177         PR gcc/46692
23178         * config/lm32/t-lm32: Add multilib for all CPU options.
23179
23180 2011-02-01  Richard Guenther  <rguenther@suse.de>
23181
23182         PR tree-optimization/47541
23183         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
23184         sure to have a field at offset zero.
23185
23186 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
23187
23188         * config/arc/arc.opt (EB, EL): New Driver options.
23189
23190 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
23191
23192         * config/alpha/osf5.opt: New.
23193         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
23194
23195 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
23196
23197         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
23198
23199 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
23200
23201         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
23202         -floop-interchange.
23203         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
23204         is an alias of -floop-interchange and that it requires the
23205         Graphite infrastructure.
23206         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
23207         flag_loop_interchange based on the value of flag_tree_loop_linear.
23208
23209 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
23210             Richard Guenther  <rguenther@suse.de>
23211
23212         PR tree-optimization/47538
23213         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
23214         type instead of r1type, except for comparisons.  For right
23215         shifts and comparisons punt if there are mismatches in
23216         sizetype vs. non-sizetype types.
23217
23218 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23219
23220         * doc/sourcebuild.texi (Effective-Target Keywords): Document
23221         avx_runtime.
23222
23223 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23224
23225         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
23226         version number.
23227         * configure: Regenerate.
23228
23229 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23230
23231         * configure.ac (gcc_cv_ld_static_option): Define.
23232         (gcc_cv_ld_dynamic_option): Define.
23233         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
23234         instead.
23235         (HAVE_LD_STATIC_DYNAMIC): Update message.
23236         (LD_STATIC_OPTION): Define.
23237         (LD_DYNAMIC_OPTION): Define.
23238         * configure: Regenerate.
23239         * config.in: Regenerate.
23240         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
23241         HAVE_LD_STATIC_DYNAMIC]: Use them.
23242
23243 2011-01-31  Nick Clifton  <nickc@redhat.com>
23244
23245         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
23246         registers inside interrupt handlers if the handler is not a leaf
23247         function.
23248
23249 2011-01-31  Nick Clifton  <nickc@redhat.com>
23250
23251         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
23252         reg_renumber returning an INVALID_REGNUM.
23253
23254 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
23255
23256         PR libgcj/44341
23257         * doc/install.texi: Document host options discarded when cross
23258         configuring target libraries.
23259
23260 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
23261
23262         Reverted:
23263         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
23264         PR debug/45136
23265         PR debug/45130
23266         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23267         debug insns.
23268         (no_real_insns_p, schedule_block, set_priorities): Drop special
23269         treatment of boundary debug insns.
23270         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23271         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23272         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23273         (BOUNDARY_DEBUG_INSN_P): Likewise.
23274         (SCHEDULE_DEBUG_INSN_P): Likewise.
23275         * sched-rgn.c (init_ready_list): Drop special treatment of
23276         boundary debug insns.
23277         * final.c (rest_of_clean-state): Clear notes' BB.
23278
23279 2011-01-31  Alan Modra  <amodra@gmail.com>
23280
23281         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
23282         toc relative expressions as we do in print_operand_address.
23283
23284 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
23285
23286         * doc/extend.texi: Follow spelling conventions.
23287         * doc/invoke.texi: Fix a typo.
23288
23289 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
23290
23291         * config/hpux11.opt: New.
23292         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
23293         ia64*-*-hpux*): Use hpux11.opt.
23294
23295 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
23296
23297         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
23298         to tmake_file.
23299
23300 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
23301
23302         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
23303         support sites.
23304
23305 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
23306
23307         * doc/install.texi (Binaries): Remove outdated reference for
23308         Motorola 68HC11/68HC12 downloads.
23309
23310 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
23311
23312         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
23313         Drepper's paper.
23314
23315 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
23316
23317         PR bootstrap/47147
23318         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
23319         used by NetBSD.
23320
23321 2011-01-28  Ahmad Sharif  <asharif@google.com>
23322
23323         * value-prof.c (check_counter): Corrected error message.
23324
23325 2011-01-29  Jie Zhang  <jie@codesourcery.com>
23326
23327         * config/arm/arm.c (arm_legitimize_reload_address): New.
23328         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
23329         arm_legitimize_reload_address.
23330         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
23331
23332 2011-01-28  Ian Lance Taylor  <iant@google.com>
23333
23334         * godump.c (go_define): Ignore macros whose definitions include
23335         two adjacent operands.
23336
23337 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
23338
23339         PR target/42894
23340         * varasm.c (force_const_mem): Store copy of x in desc->constant
23341         instead of x itself.
23342         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
23343         itself into REG_EQUAL note.
23344
23345 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
23346
23347         * config/freebsd.opt (posix, rdynamic): New Driver options.
23348
23349 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23350
23351         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
23352         -Bstatic/-Bdynamic.
23353         * configure: Regenerate.
23354
23355 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
23356
23357         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
23358         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
23359
23360 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
23361
23362         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
23363         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
23364         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
23365         (s390_preferred_reload_class): Make static. Change return and
23366         'rclass' argument type to reg_class_t.
23367
23368 2011-01-27  Jan Hubicka  <jh@suse.cz>
23369
23370         PR middle-end/46949
23371         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
23372         (process_function_and_variable_attributes): Check defined weakrefs.
23373
23374 2011-01-27  Martin Jambor  <mjambor@suse.cz>
23375
23376         PR tree-optimization/47228
23377         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
23378         build_ref_for_offset.
23379
23380 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23381
23382         * config/spu/spu-elf.h (ASM_SPEC): Remove.
23383
23384 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
23385
23386         PR rtl-optimization/46856
23387         * postreload.c (reload_combine_recognize_const_pattern): Do not
23388         separate cc0 setter and user on cc0 targets.
23389
23390 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
23391
23392         PR c/43082
23393         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
23394         passed a VOID_TYPE expression, immediately emit an error and
23395         return error_mark_node.
23396
23397 2011-01-26  Jeff Law  <law@redhat.com>
23398
23399         PR rtl-optimization/47464
23400         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
23401         rather than may_trap_p as needed.
23402
23403 2011-01-26  DJ Delorie  <dj@redhat.com>
23404
23405         PR rtl-optimization/46878
23406         * combine.c (insn_a_feeds_b): Check for the implicit cc0
23407         setter/user dependency as well.
23408
23409 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
23410
23411         PR rtl-optimization/44469
23412         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
23413         after removing trivially dead basic blocks.
23414
23415 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23416
23417         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
23418         * config/frv/frv.h (LINK_SPEC): Likewise.
23419         * config/i386/netware.h (LINK_SPEC): Likewise.
23420         * config/m68k/linux.h (ASM_SPEC): Likewise.
23421         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
23422         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23423         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23424         * config/sparc/linux.h (ASM_SPEC): Likewise.
23425         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23426         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23427
23428 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23429
23430         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
23431         * config/frv/frv.h (ASM_SPEC): Likewise.
23432         * config/m68k/linux.h (ASM_SPEC): Likewise.
23433         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23434         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
23435         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23436         * config/sparc/linux.h (ASM_SPEC): Likewise.
23437         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23438         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23439
23440 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23441
23442         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
23443         * config/frv/frv.h (LINK_SPEC): Likewise.
23444         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
23445
23446 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
23447
23448         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
23449         * config/frv/frv.h (ASM_SPEC): Likewise.
23450         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
23451         * config/m68k/linux.h (ASM_SPEC): Likewise.
23452         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
23453         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
23454         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
23455         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
23456         * config/sparc/linux.h (ASM_SPEC): Likewise.
23457         * config/sparc/linux64.h (ASM_SPEC): Likewise.
23458         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
23459         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
23460
23461 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
23462
23463         PR target/46997
23464         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
23465         (*mux2): Ditto.
23466         (vec_extract_evenodd_help): Ditto.
23467         (vec_extract_evenv4hi): Ditto.
23468         (vec_extract_oddv4hi): Ditto.
23469         (vec_interleave_lowv2si): Ditto.
23470         (vec_interleave_highv2si): Ditto.
23471         (vec_extract_evenv2si): Ditto.
23472         (vec_extract_oddv2si: Ditto.
23473         (vec_pack_trunc_v2si): Ditto.
23474
23475 2011-01-22  Jan Hubicka  <jh@suse.cz>
23476
23477         PR target/47237
23478         * cgraph.h (cgraph_local_info): New field can_change_signature.
23479         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
23480         signature can change.
23481         (ipcp_estimate_growth): Call sequence simplify only if calle signature
23482         can change.
23483         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
23484         (cgraph_function_versioning): We can not change signature of functions
23485         that don't allow that.
23486         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
23487         (lto_input_node): Likewise.
23488         * ipa-inline.c (compute_inline_parameters): Compute
23489         local.can_change_signature.
23490         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
23491         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
23492         functions that can not change signature.
23493         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
23494         init_cumulative_args): Do not use local calling conventions
23495         for functions that can not change signature.
23496
23497 2011-01-22  Jan Hubicka  <jh@suse.cz>
23498
23499         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
23500
23501 2011-01-26  Richard Guenther  <rguenther@suse.de>
23502
23503         PR tree-optimization/47190
23504         * cgraphunit.c (process_common_attributes): New function.
23505         (process_function_and_variable_attributes): Use it.
23506
23507 2011-01-26  Richard Guenther  <rguenther@suse.de>
23508
23509         PR lto/47423
23510         * cgraphbuild.c (record_eh_tables): Record reference to personality
23511         function.
23512
23513 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
23514
23515         PR debug/45454
23516         * sel-sched.c (moveup_expr): Don't let debug insns prevent
23517         non-debug insns from moving up.
23518
23519 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
23520
23521         PR target/40125
23522         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
23523         t-dlldir{,-x} fragment for build and add it to tmake_file.
23524         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
23525         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
23526         * config/i386/t-dlldir: New file.
23527         (SHLIB_DLLDIR): Define.
23528         * config/i386/t-dlldir-x: New file.
23529         (SHLIB_DLLDIR): Define.
23530         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
23531         (SHLIB_INSTALL): Use it.
23532
23533 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
23534
23535         PR target/47246
23536         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
23537         lower bound of the allowed Thumb-2 coprocessor load/store
23538         index range to -256. Add explaining comment.
23539
23540 2011-01-25  Ian Lance Taylor  <iant@google.com>
23541
23542         * godump.c (go_define): Improve lexing of macro expansion to only
23543         accept expressions which match Go spec.
23544
23545 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
23546
23547         PR c++/43601
23548         * tree.c (handle_dll_attribute): Handle it.
23549         * doc/extend.texi (@item dllexport): Mention it.
23550         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
23551
23552 2011-01-25  Ian Lance Taylor  <iant@google.com>
23553
23554         PR tree-optimization/26854
23555         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
23556         (decl_jump_unsafe): Move higher in file, with no other change.
23557         (bind): Set has_jump_unsafe_decl if appropriate.
23558         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
23559         (check_earlier_gotos): Likewise.
23560         (c_check_switch_jump_warnings): Likewise.
23561
23562 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
23563
23564         * doc/invoke.texi (Warning Options): Add missing hyphen.
23565         (-fprofile-dir): Minor grammatical fixes.
23566         (-fbranch-probabilities): Likewise.
23567
23568 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
23569
23570         PR debug/45136
23571         PR debug/45130
23572         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
23573         debug insns.
23574         (no_real_insns_p, schedule_block, set_priorities): Drop special
23575         treatment of boundary debug insns.
23576         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
23577         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
23578         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
23579         (BOUNDARY_DEBUG_INSN_P): Likewise.
23580         (SCHEDULE_DEBUG_INSN_P): Likewise.
23581         * sched-rgn.c (init_ready_list): Drop special treatment of
23582         boundary debug insns.
23583         * final.c (rest_of_clean-state): Clear notes' BB.
23584
23585 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23586
23587         * Makefile.in (LAMBDA_H): Removed.
23588         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
23589         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
23590         lambda-trans.o, and tree-loop-linear.o.
23591         (lto-symtab.o): Remove dependence on LAMBDA_H.
23592         (tree-loop-linear.o): Remove rule.
23593         (lambda-mat.o): Same.
23594         (lambda-trans.o): Same.
23595         (lambda-code.o): Same.
23596         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
23597         (tree-vect-slp.o): Same.
23598         * hwint.h (gcd): Moved here.
23599         (least_common_multiple): Same.
23600         * lambda-code.c: Removed.
23601         * lambda-mat.c: Removed.
23602         * lambda-trans.c: Removed.
23603         * lambda.h: Removed.
23604         * tree-loop-linear.c: Removed.
23605         * lto-symtab.c: Do not include lambda.h.
23606         * omega.c (gcd): Removed.
23607         * passes.c (init_optimization_passes): Remove pass_linear_transform.
23608         * tree-data-ref.c (print_lambda_vector): Moved here.
23609         (lambda_vector_copy): Same.
23610         (lambda_matrix_copy): Same.
23611         (lambda_matrix_id): Same.
23612         (lambda_vector_first_nz): Same.
23613         (lambda_matrix_row_add): Same.
23614         (lambda_matrix_row_exchange): Same.
23615         (lambda_vector_mult_const): Same.
23616         (lambda_vector_negate): Same.
23617         (lambda_matrix_row_negate): Same.
23618         (lambda_vector_equal): Same.
23619         (lambda_matrix_right_hermite): Same.
23620         * tree-data-ref.h: Do not include lambda.h.
23621         (lambda_vector): Moved here.
23622         (lambda_matrix): Same.
23623         (dependence_level): Same.
23624         (lambda_transform_legal_p): Removed declaration.
23625         (lambda_collect_parameters): Same.
23626         (lambda_compute_access_matrices): Same.
23627         (lambda_vector_gcd): Same.
23628         (lambda_vector_new): Same.
23629         (lambda_vector_clear): Same.
23630         (lambda_vector_lexico_pos): Same.
23631         (lambda_vector_zerop): Same.
23632         (lambda_matrix_new): Same.
23633         * tree-flow.h (least_common_multiple): Removed declaration.
23634         * tree-parloops.c (lambda_trans_matrix): Moved here.
23635         (LTM_MATRIX): Same.
23636         (LTM_ROWSIZE): Same.
23637         (LTM_COLSIZE): Same.
23638         (LTM_DENOMINATOR): Same.
23639         (lambda_trans_matrix_new): Same.
23640         (lambda_matrix_vector_mult): Same.
23641         (lambda_transform_legal_p): Same.
23642         * tree-pass.h (pass_linear_transform): Removed declaration.
23643         * tree-ssa-loop.c (tree_linear_transform): Removed.
23644         (gate_tree_linear_transform): Removed.
23645         (pass_linear_transform): Removed.
23646         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
23647         flag_loop_interchange.
23648
23649 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23650
23651         PR tree-optimization/47265
23652         PR tree-optimization/47443
23653         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
23654         if name still has some uses.
23655
23656 2011-01-25  Martin Jambor  <mjambor@suse.cz>
23657
23658         PR tree-optimization/47382
23659         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
23660         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
23661
23662 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
23663
23664         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
23665         sjlj_except_unwind_info.
23666
23667 2011-01-25  Richard Guenther  <rguenther@suse.de>
23668
23669         PR tree-optimization/47426
23670         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
23671         visible functions results escape.
23672
23673 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23674
23675         PR target/45701
23676         * config/arm/arm.c (any_sibcall_uses_r3): New function.
23677         (arm_get_frame_offsets): Use it.
23678
23679 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23680             Jakub Jelinek  <jakub@redhat.com>
23681
23682         PR tree-optimization/47271
23683         * tree-if-conv.c (bb_postdominates_preds): New.
23684         (if_convertible_bb_p): Call bb_postdominates_preds.
23685         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
23686         (predicate_scalar_phi): Call bb_postdominates_preds.
23687
23688 2011-01-25  Nick Clifton  <nickc@redhat.com>
23689
23690         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
23691         * config/rx/rx.c (rx_function_value): Likewise.
23692         (rx_promote_function_mode): Likewise.
23693         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
23694         in order to make it legitimate.
23695         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
23696         make sure that the first operand is the same as the result register.
23697         (addsi3_unspec): Delete.
23698         (subdi3): Do not accept immediate operands.
23699         (subdi3_internal): Likewise.
23700
23701 2011-01-25  Jeff Law  <law@redhat.com>
23702
23703         PR rtl-optimization/37273
23704         * ira-costs.c (scan_one_insn): Detect constants living in memory and
23705         handle them like argument loads from stack slots.  Do not double
23706         count memory for memory constants and argument loads from stack slots.
23707
23708 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
23709
23710         PR tree-optimization/47427
23711         PR tree-optimization/47428
23712         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
23713         coalesce if the new root var would be TREE_READONLY.
23714
23715 2011-01-25  Richard Guenther  <rguenther@suse.de>
23716
23717         PR middle-end/47414
23718         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
23719         correct type for TBAA.
23720
23721 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23722
23723         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
23724         (close_phi_written_to_memory): Call for_each_index with
23725         dr_indices_valid_in_loop.
23726
23727 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23728
23729         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
23730         when it is initialized.
23731
23732 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23733
23734         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
23735         call to graphite_find_data_references_in_stmt.
23736         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
23737         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
23738         call to graphite_find_data_references_in_stmt.
23739         (analyze_drs_in_stmts): Same.
23740         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
23741         in which the scalar analysis of indices is performed.
23742         (create_data_ref): Same.  Update call to dr_analyze_indices.
23743         (find_data_references_in_stmt): Update call to create_data_ref.
23744         (graphite_find_data_references_in_stmt): Same.
23745         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
23746         declaration.
23747         (create_data_ref): Same.
23748         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
23749         call to create_data_ref.
23750
23751 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23752
23753         * graphite-sese-to-poly.c (build_poly_scop): Move
23754         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
23755
23756 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23757
23758         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
23759         VAR_DECL, PARM_DECL, and RESULT_DECL.
23760
23761 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23762
23763         * graphite-dependences.c (reduction_dr_1): Allow several reductions
23764         in a reduction PBB.
23765         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
23766         that have already been marked as PBB_IS_REDUCTION.
23767
23768 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23769
23770         * graphite-scop-detection.c (same_close_phi_node): New.
23771         (remove_duplicate_close_phi): New.
23772         (make_close_phi_nodes_unique): New.
23773         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
23774
23775 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23776
23777         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
23778         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
23779         of both data references to be the same.
23780
23781 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23782
23783         * graphite-dependences.c (build_lexicographical_constraint): Remove
23784         the gdim parameter.
23785         (build_lexicographical_constraint): Adjust call to
23786         ppl_powerset_is_empty.
23787         (dependence_polyhedron): Same.
23788         (graphite_legal_transform_dr): Same.
23789         (graphite_carried_dependence_level_k): Same.
23790         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
23791         parameter.
23792         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
23793
23794 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23795
23796         * graphite-sese-to-poly.c
23797         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
23798         (close_phi_written_to_memory): New.
23799         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
23800         and unshare_expr.
23801
23802 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23803
23804         * doc/install.texi: Update the expected version number of PPL to 0.11.
23805         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
23806         #if PPL_VERSION_MINOR < 11.
23807
23808 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23809
23810         * graphite-dependences.c: Include graphite-cloog-util.h.
23811         (new_poly_ddr): Inlined into dependence_polyhedron.
23812         (free_poly_ddr): Moved close by new_poly_ddr.
23813         (dependence_polyhedron_1): Renamed dependence_polyhedron.
23814         Early return NULL when ppl_powerset_is_empty returns true.
23815         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
23816         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
23817         (graphite_legal_transform_dr): Call new_poly_ddr.
23818         (graphite_carried_dependence_level_k): Same.
23819         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
23820         (dot_transformed_deps_stmt_1): Removed.
23821         (dot_deps_stmt_1): Call dot_deps_stmt_2.
23822         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
23823         (dot_deps_1): Call dot_deps_2.
23824         * Makefile.in (graphite-dependences.o): Add missing dependence on
23825         graphite-cloog-util.h.
23826
23827 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23828
23829         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
23830         (build_lexicographical_constraint): Same.
23831         (dependence_polyhedron_1): Same.
23832         (graphite_legal_transform_dr): Same.
23833         (graphite_carried_dependence_level_k): Same.
23834         * graphite-ppl.c (ppl_powerset_is_empty): New.
23835         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
23836         * tree-data-ref.c (dump_data_reference): Print the basic block index.
23837
23838 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23839
23840         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
23841         the "a followed by b" relation and document it.
23842
23843 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23844
23845         * graphite-dependences.c (build_lexicographical_constraint): Stop the
23846         iteration when the bag of constraints is empty.
23847
23848 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23849
23850         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
23851
23852 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23853
23854         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
23855         nest and two loop depths as parameters.
23856         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
23857         lst_perfect_nestify.
23858
23859 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23860
23861         * graphite-dependences.c (print_pddr): Call
23862         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
23863
23864 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
23865
23866         * graphite-ppl.c (debug_gmp_value): New.
23867         * graphite-ppl.h (debug_gmp_value): Declared.
23868
23869 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
23870
23871         * doc/install.texi: Document availability of cloog-0.16.
23872
23873 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
23874
23875         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
23876         invalid postdominance info.
23877
23878 2011-01-24  Jan Hubicka  <jh@suse.cz>
23879
23880         PR c/21659
23881         * doc/extend.texi (weak pragma): Drop claim that it must
23882         appear before definition.
23883         * varasm.c (merge_weak, declare_weak): Only sanity check
23884         that DECL is not output at a time it is declared weak.
23885
23886 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
23887
23888         * machmode.def: Fixed comments.
23889
23890 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
23891
23892         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
23893
23894 2011-01-24  Paul Koning  <ni1d@arrl.net>
23895
23896         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
23897         WORDS_BIG_ENDIAN.
23898
23899 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
23900
23901         PR target/46519
23902         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
23903         (block_info): Add scanned and prev.
23904         (move_or_delete_vzeroupper_2): Return if the basic block
23905         has been scanned and the upper 128bit state is unchanged
23906         from the last scan.
23907         (move_or_delete_vzeroupper_1): Return true if the exit
23908         state is changed.
23909         (move_or_delete_vzeroupper): Visit basic blocks using the
23910         work-list based algorithm based on vt_find_locations in
23911         var-tracking.c.
23912
23913         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
23914
23915 2011-01-24  Nick Clifton  <nickc@redhat.com>
23916
23917         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
23918         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
23919         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
23920         then define __v850e1__.
23921         * doc/invoke.texi: Document -mv850es.
23922
23923 2011-01-24  Richard Henderson  <rth@redhat.com>
23924
23925         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
23926         compound unordered comparisons.
23927         * config/rx/rx.c (rx_split_fp_compare): Remove.
23928         * config/rx/rx-protos.h: Update.
23929         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
23930         (cbranchsf4): Don't call rx_split_fp_compare.
23931         (*cbranchsf4): Use rx_split_cbranch.
23932         (*cmpsf): Don't accept "i" constraint.
23933         (*conditional_branch): Only valid after reload.
23934         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
23935
23936 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23937
23938         PR target/47385
23939         * config/rs6000/altivec.md (vector constant splitters): Add
23940         support for creating vector single precision constants if -mvsx is
23941         used and we would create the constant using Altivec primitives.
23942
23943 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
23944             Richard Sandiford  <rdsandiford@googlemail.com>
23945
23946         PR rtl-optimization/47166
23947         * reload1.c (emit_reload_insns): Disable the spill_reg_store
23948         mechanism for PRE_MODIFY and POST_MODIFY.
23949         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
23950         reloadreg.
23951
23952 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
23953
23954         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
23955
23956 2011-01-22  Jan Hubicka  <jh@suse.cz>
23957
23958         PR lto/47333
23959         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
23960
23961 2011-01-22  Jan Hubicka  <jh@suse.cz>
23962
23963         PR tree-optimization/43884
23964         PR lto/44334
23965         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
23966         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
23967
23968 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
23969
23970         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23971         * config/s390/s390.c (s390_register_move_cost,
23972         s390_memory_move_cost): New.
23973         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
23974
23975 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
23976
23977         PR middle-end/47401
23978         * except.c (sjlj_assign_call_site_values): Move setting the
23979         crtl->uses_eh_lsda flag to ...
23980         (sjlj_mark_call_sites): ... here.
23981         (sjlj_emit_function_enter): Support NULL dispatch label.
23982         (sjlj_build_landing_pads): In a function with no landing pads
23983         that still has must-not-throw regions, generate code to register
23984         a personality function with empty LSDA.
23985
23986 2011-01-21  Richard Henderson  <rth@redhat.com>
23987
23988         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
23989
23990         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
23991
23992         * compare-elim.c: New file.
23993         * Makefile.in (OBJS-common): Add it.
23994         (compare-elim.o): New.
23995         * common.opt (fcompare-elim): New.
23996         * opts.c (default_options_table): Add OPT_fcompare_elim.
23997         * tree-pass.h (pass_compare_elim_after_reload): New.
23998         * passes.c (init_optimization_passes): Add it.
23999         * recog.h: Protect against re-inclusion.
24000         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
24001         * doc/invoke.texi (-fcompare-elim): Document it.
24002         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
24003         * doc/tm.texi: Rebuild.
24004
24005 2011-01-22  Nick Clifton  <nickc@redhat.com>
24006
24007         * config/rx/rx.md (cstoresf4): Pass comparison operator to
24008         rx_split_fp_compare.
24009
24010 2011-01-22  Nick Clifton  <nickc@redhat.com>
24011
24012         * config/rx/rx.md (UNSPEC_CONST): New.
24013         (deallocate_and_return): Wrap the amount popped off the stack in
24014         an UNSPEC_CONST in order to stop it being rejected by
24015         -mmax-constant-size.
24016         (pop_and_return): Add a "(return)" rtx.
24017         (call): Drop the immediate operand.
24018         (call_internal): Likewise.
24019         (call_value): Likewise.
24020         (call_value_internal): Likewise.
24021         (sibcall_internal): Likewise.
24022         (sibcall_value_internal): Likewise.
24023         (sibcall): Likewise.  Generate an explicit call using
24024         sibcall_internal.
24025         (sibcall_value): Likewise.
24026         (mov<>): FAIL if a constant operand is not legitimate.
24027         (addsi3_unpsec): New pattern.
24028
24029         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
24030         (ok_for_max_constant): New function.
24031         (gen_safe_add): New function.
24032         (rx_expand_prologue): Use gen_safe_add.
24033         (rx_expand_epilogue): Likewise.
24034         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
24035         UNSPEC CONSTs.
24036
24037 2011-01-21  Jeff Law  <law@redhat.com>
24038
24039         PR tree-optimization/47053
24040         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
24041         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
24042         statements are deleted.
24043         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
24044         is nonempty, then purge dead edges and cleanup the CFG.
24045
24046 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
24047
24048         PR debug/47402
24049         Temporarily revert:
24050         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
24051         PR debug/47106
24052         * tree-dfa.c (create_var_ann): Mark variable as used.
24053
24054 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
24055
24056         PR middle-end/45566
24057         * except.c (convert_to_eh_region_ranges): Emit queued no-region
24058         notes from other section in hot/cold partitioning even if
24059         last_action is -3.  Increment call_site_base.
24060
24061         PR rtl-optimization/47366
24062         * fwprop.c (forward_propagate_into): Return bool.  If
24063         any changes are made, -fnon-call-exceptions is used and
24064         REG_EH_REGION note is present, call purge_dead_edges
24065         and return true if it purged anything.
24066         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
24067         any EH edges were purged.
24068
24069 2011-01-21  Jeff Law  <law@redhat.com>
24070
24071         PR rtl-optimization/41619
24072         * caller-save.c (setup_save_areas): Break out code to determine
24073         which hard regs are live across calls by examining the reload chains
24074         so that it is always used.
24075         Eliminate code which checked REG_N_CALLS_CROSSED.
24076
24077 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
24078
24079         PR tree-optimization/47355
24080         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
24081         NOP has non-debug uses beyond PHIs in new_bb.
24082
24083 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
24084
24085         PR debug/47106
24086         * cfgexpand.c (account_used_vars_for_block): Only account vars
24087         that are annotated as used.
24088         (estimated_stack_frame_size): Don't set TREE_USED.
24089         * tree-dfa.c (create_var_ann): Mark variable as used.
24090
24091 2011-01-21  Richard Guenther  <rguenther@suse.de>
24092
24093         PR middle-end/47395
24094         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
24095
24096 2011-01-21  Richard Guenther  <rguenther@suse.de>
24097
24098         PR tree-optimization/47365
24099         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
24100         (vn_reference_lookup_pieces): Adjust.
24101         (vn_reference_lookup): Likewise.
24102         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
24103         (vn_reference_lookup_3): Only look through kills if in
24104         VN_WALKREWRITE mode.
24105         (vn_reference_lookup_pieces): Adjust.
24106         (vn_reference_lookup): Likewise.
24107         (visit_reference_op_load): Likewise.
24108         (visit_reference_op_store): Likewise.
24109         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
24110         (compute_avail): Likewise.
24111         (eliminate): Likewise.
24112
24113 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
24114
24115         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
24116         DECL_IGNORED_P non-reg vars if they are used.
24117
24118         PR tree-optimization/47391
24119         * varpool.c (const_value_known_p): Return false if
24120         decl is volatile.
24121
24122 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
24123
24124         PR bootstrap/47215
24125         * config/i386/i386.c (ix86_local_alignment): Handle
24126         case for va_list_type_node is nil.
24127         (ix86_canonical_va_list_type): Likewise.
24128
24129 2011-01-21  Alan Modra  <amodra@gmail.com>
24130
24131         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
24132         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
24133
24134 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24135
24136         * config/arm/arm.md (define_attr type): Rename f_load
24137         and f_store to f_fpa_load and f_fpa_store. Update.
24138         (write_conflict): Deal with rename fallout.
24139         (*push_fp_multi): Likewise.
24140         * config/arm/fpa.md (f_load): Use f_fpa_load.
24141         (f_store): Use f_fpa_store.
24142         (*movsf_fpa): Likewise.
24143         (*movdf_fpa): Likewise.
24144         (*movxf_fpa): Likewise.
24145         (*thumb2_movsf_fpa): Likewise.
24146         (*thumb2_movdf_fpa): Likewise.
24147         (*thumb2_movxf_fpa): Likewise.
24148         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
24149         f_loadd and f_stored.
24150         (*thumb2_movdi_vfp): Likewise.
24151         (*thumb2_movsf_vfp): Fix attribute to f_loads.
24152         (*thumb2_movsi_vfp): Likewise.
24153         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
24154         Use f_loads instead of f_load.
24155         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
24156
24157 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
24158
24159         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24160         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
24161         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24162         (xtensa_mode_dependent_address_p): New function.
24163         (constantpool_address_p): Make static. Change return type to bool.
24164         Change argument type to const_rtx. Use CONST_INT_P predicate.
24165
24166 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
24167
24168         PR debug/46583
24169         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
24170
24171 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
24172
24173         PR debug/47283
24174         * cfgexpand.c (expand_debug_expr): Instead of generating
24175         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
24176         etc. handling.
24177
24178 2011-01-20  Richard Guenther  <rguenther@suse.de>
24179
24180         PR middle-end/47370
24181         * tree-inline.c (remap_gimple_op_r): Recurse manually for
24182         the pointer operand of MEM_REFs.
24183
24184 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
24185
24186         PR tree-optimization/46130
24187         * ipa-split.c (consider_split): If return_bb contains non-virtual
24188         PHIs other than for retval or if split_function would not adjust it,
24189         refuse to split.
24190
24191 2011-01-20  Richard Guenther  <rguenther@suse.de>
24192
24193         PR tree-optimization/47167
24194         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
24195         Revert previous change, only avoid enumeral type changes.
24196
24197 2011-01-19  Mike Stump  <mikestump@comcast.net>
24198
24199         * doc/tm.texi.in (BRANCH_COST): Englishify.
24200         * doc/tm.texi (BRANCH_COST): Likewise.
24201
24202 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
24203
24204         PR c++/47291
24205         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
24206         (gen_scheduled_generic_parms_dies): New functions.
24207         (gen_struct_or_union_type_die): Schedule template parameters DIEs
24208         generation for the end of CU compilation.
24209         (dwarf2out_finish): Generate template parameters DIEs here.
24210
24211 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
24212
24213         PR debug/46240
24214         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
24215         debug bind stmt on merge edges.
24216
24217 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
24218
24219         PR debug/47079
24220         PR debug/46724
24221         * function.c (instantiate_expr): Instantiate incoming rtl of
24222         implicit arguments, and recurse on VALUE_EXPRs.
24223         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
24224         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
24225
24226 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
24227
24228         * c-parser.c (c_parser_for_statement): Initialize
24229         collection_expression.
24230
24231 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24232
24233         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
24234
24235 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24236
24237         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
24238         (LINK_SHLIB_SPEC): Don't use %(link_path).
24239         (SUBTARGET_EXTRA_SPECS): Remove link_path.
24240
24241 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24242
24243         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
24244         (NO_SHARED_LIB_SUPPORT): Remove.
24245         (LINK_SHLIB_SPEC): Remove one conditional definition.
24246
24247 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
24248
24249         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
24250         %{call_shared}.
24251         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
24252         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
24253         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
24254         %{call_shared} and conditionals on these options not being passed.
24255         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
24256         %{call_shared}.
24257
24258 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
24259
24260         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
24261         simplify.
24262
24263         * ipa-split.c: Spelling fixes.
24264
24265 2011-01-19  Richard Henderson  <rth@redhat.com>
24266
24267         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
24268         (*mulsi3): Likewise.
24269
24270         * longlong.h [__mn10300__] (count_leading_zeros): New.
24271         [__mn10300__] (umul_ppmm, smul_ppmm): New.
24272         [__mn10300__] (add_ssaaaa, subddmmss): New.
24273         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
24274         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
24275
24276 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24277
24278         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
24279
24280 2011-01-19  Richard Henderson  <rth@redhat.com>
24281
24282         * config/mn10300/mn10300.md (addsi3_flags): New.
24283         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
24284         (subsi3_flags, subc_internal, subdi3): New.
24285         (subdi3_internal, *subdi3_degenerate): New.
24286         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
24287
24288         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
24289         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
24290         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
24291         * config/mn10300/mn10300-protos.h: Update.
24292         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
24293         (return_ret): Likewise.  Rename from return_internal_regs.
24294         (return_internal): Remove.
24295
24296         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
24297         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
24298         (mn10300_legitimate_constant_p): Likewise.
24299         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
24300         (mn10300_frame_size): New.
24301         (mn10300_expand_prologue): Use it.
24302         (mn10300_expand_epilogue): Likewise.
24303         (mn10300_initial_offset): Likewise.
24304         * config/mn10300/mn10300-protos.h: Update.
24305         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
24306         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
24307         (prologue, epilogue, return_internal): Tidy output code.
24308         (mn10300_store_multiple_operation, return): Likewise.
24309         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
24310         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
24311         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
24312         (load_pic, am33_load_pic): New.
24313         (mn10300_load_pic0, mn10300_load_pic1): New.
24314
24315         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
24316         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
24317         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
24318         (cc_flags_for_mode, cc_flags_for_code): New.
24319         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
24320         overflow flag is not valid.  Validate that the flags we need
24321         for the comparison are valid.
24322         (mn10300_output_cmp): Remove.
24323         (mn10300_output_add): New.
24324         (mn10300_select_cc_mode): Use cc_flags_for_code.
24325         (mn10300_split_cbranch): New.
24326         (mn10300_match_ccmode): New.
24327         (mn10300_split_and_operand_count): New.
24328         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
24329         to the function.
24330         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
24331         (addsi3): ... here.  Use mn10300_output_add.
24332         (*addsi3_flags): New.
24333         (*am33_subsi3, *mn10300_subsi3): Merge...
24334         (subsi3): ... here.  Use attribute isa.
24335         (*subsi3_flags): New.
24336         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
24337         when possible.
24338         (*am33_andsi3, *mn10300_andsi3): Merge...
24339         (andsi3): ... here.
24340         (*andsi3_flags): New.
24341         (andsi3 splitters): New.
24342         (*am33_iorsi3, *mn10300_iorsi3): Merge...
24343         (iorsi3): ... here.
24344         (*iorsi3_flags): New.
24345         (*am33_xorsi3, *mn10300_xorsi3): Merge...
24346         (xorsi3): ... here.
24347         (*xorsi3_flags): New.
24348         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
24349         (one_cmplsi2): ... here.
24350         (*one_cmplsi2_flags): New.
24351         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
24352         instead of "dax" in constraints.  Use mn10300_split_cbranch.
24353         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
24354         use matching constraints to eliminate a self-comparison.
24355         (*integer_conditional_branch): Rename from integer_conditional_branch.
24356         Use int_mode_flags to match CC_REG.
24357         (*cbranchsi4_btst, *btstsi): New.
24358         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
24359         mn10300_split_cbranch.
24360         (*am33_cmpsf): Rename from am33_cmpsf.
24361         (*float_conditional_branch): Rename from float_conditional_branch.
24362         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
24363         (zero_extendqisi2): ... here.
24364         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
24365         (zero_extendhisi2): ... here.
24366         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
24367         (extendqisi2): ... here.
24368         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
24369         (extendhisi2): ... here.
24370         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
24371         (ashlsi3): ... here.
24372         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
24373         (lshrsi3): ... here.
24374         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
24375         (ashrsi3): ... here.
24376         (consecutive add peephole): Remove.
24377         * config/mn10300/predicates.md (label_ref_operand): New.
24378         (int_mode_flags): New.
24379         (CCZN_comparison_operator): New.
24380
24381         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
24382         (throughput_42_latency_43): New reservation.
24383         (mulsidi3, umulsidi3): New expanders.
24384         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
24385         the MDR register to allocation; separately allocate the low and
24386         high parts of the DImode result.
24387         (umulsidi3_internal): Similarly.
24388         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
24389         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
24390         (udivsi3, umodsi3): Remove.
24391         (udivmodsi4, divmodsi4): New expanders.
24392         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
24393         (*divmodsi4): Simiarly.
24394         (ext_internal): New.
24395
24396         * config/mn10300/constraints.md ("z"): New constraint.
24397         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
24398         (FIXED_REGISTERS): Don't fix MDR.
24399         (CALL_USED_REGSITERS): Reformat nicely.
24400         (REG_ALLOC_ORDER): Add MDR.
24401         (enum regclass): Add MDR_REGS.
24402         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
24403         (IRA_COVER_CLASSES): Add MDR_REGS.
24404         (REGNO_REG_CLASS): Handle MDR_REG.
24405         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
24406         (mn10300_register_move_cost): Likewise.
24407         * config/mn10300/mn10300.md (MDR_REG): New.
24408         (*movsi_internal): Handle moves to/from MDR_REGS.
24409
24410         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
24411         POST_MODIFY.
24412         (mn10300_secondary_reload): Tidy combination reload classes.
24413         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
24414         addresses for AM33.  Allow symbolic offsets for reg+imm.
24415         (mn10300_regno_in_class_p): New.
24416         (mn10300_legitimize_reload_address): New.
24417         * config/mn10300/mn10300.h (enum reg_class): Remove
24418         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
24419         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
24420         SP_OR_GENERAL_REGS.
24421         (REG_CLASS_NAMES): Update to match.
24422         (REG_CLASS_CONTENTS): Likewise.
24423         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
24424         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
24425         (REGNO_IN_RANGE_P): Remove.
24426         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
24427         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
24428         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
24429         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
24430         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
24431         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
24432         (REGNO_GENERAL_P): New.
24433         (HAVE_POST_MODIFY_DISP): New.
24434         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
24435         (LEGITIMIZE_RELOAD_ADDRESS): New.
24436         * config/mn10300/mn10300-protos.h: Update.
24437
24438         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
24439         DATA_REGS for AM33 stack-pointer destination.
24440         (mn10300_preferred_output_reload_class): Likewise.
24441         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
24442         into a form appropriate for ...
24443         (TARGET_SECONDARY_RELOAD): New.
24444         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
24445         * config/mn10300/mn10300-protos.h: Update.
24446         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
24447         reload_insi; use the "A" constraint for the scratch; handle AM33
24448         moves of sp to non-address registers.
24449
24450         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
24451         (*movqi_internal): ... here.
24452         (*am33_movhi, *mn10300_movhi): Merge into...
24453         (*movhi_internal): ... here.
24454         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
24455         as the source/destination of moves from/to SP.
24456         (movsf): Only allow for AM33-2.
24457         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
24458         any integer constant constraint.  Only allow for AM33-2.  Tidy
24459         all of the alternative outputs.
24460         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
24461         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
24462         for MN103.
24463         (udivsi3, umodsi3): New patterns for MN103 only.
24464
24465 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
24466
24467         * doc/tm.texi.in: Spell out that a lack of register class unions
24468         can lead to ICEs.
24469         * doc/tm.texi: Regenerate.
24470
24471 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
24472
24473         PR rtl-optimization/47337
24474         * dce.c (check_argument_store): New function.
24475         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
24476
24477         PR tree-optimization/47290
24478         * tree-eh.c (infinite_empty_loop_p): New function.
24479         (cleanup_empty_eh): Use it.
24480
24481 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
24482
24483         PR target/46997
24484         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
24485         (a64_expand_widen_sum): Ditto.
24486         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
24487         (vec_extract_evenodd_help): Ditto.
24488         (vec_extract_evenv4hi): Ditto.
24489         (vec_extract_oddv4hi): Ditto.
24490         (vec_extract_evenv2si): Ditto.
24491         (vec_extract_oddv2si): Ditto.
24492         (vec_extract_evenv2sf): Ditto.
24493         (vec_extract_oddv2sf): Ditto.
24494         (vec_pack_trunc_v4hi: Ditto.
24495         (vec_pack_trunc_v2si): Ditto.
24496         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
24497         (vec_interleave_highv8qi): Ditto.
24498         (mix1_r): Ditto.
24499         (vec_extract_oddv8qi): Ditto.
24500         (vec_interleave_lowv4hi): Ditto.
24501         (vec_interleave_highv4hi): Ditto.
24502         (vec_interleave_lowv2si): Ditto.
24503         (vec_interleave_highv2si): Ditto.
24504
24505 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24506
24507         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
24508         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
24509         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
24510         (pa_c_mode_for_suffix): New.
24511         (TARGET_EXPAND_BUILTIN): Define.
24512         (TARGET_C_MODE_FOR_SUFFIX): Define.
24513         (pa_builtins): Define.
24514         (pa_init_builtins): Register __float128 type and init new support
24515         builtins.
24516         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
24517         * config/pa/quadlib.c (_U_Qfcopysign): New.
24518
24519 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
24520
24521         PR middle-end/46894
24522         * explow.c (allocate_dynamic_stack_space): Do not assume more than
24523         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
24524         are defined.
24525
24526 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24527
24528         PR tree-optimization/47179
24529         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
24530         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
24531
24532 2011-01-18  Richard Guenther  <rguenther@suse.de>
24533
24534         PR rtl-optimization/47216
24535         * emit-rtl.c: Include tree-flow.h.
24536         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
24537         of replicating it with different semantics.
24538         * Makefile.in (emit-rtl.o): Adjust.
24539
24540 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24541
24542         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
24543         (cortex_a9_dp): Handle neon types correctly.
24544
24545 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
24546
24547         PR rtl-optimization/47299
24548         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
24549         subtarget.  Use normal multiplication if both operands are constants.
24550         * expmed.c (expand_widening_mult): Don't try to optimize constant
24551         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
24552         before using it.
24553
24554 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24555
24556         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
24557         spacing after 'e.g.', typos, comma, hyphenation.
24558
24559 2011-01-17  Richard Henderson  <rth@redhat.com>
24560
24561         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
24562         (rx_restricted_mem_operand): New.
24563         (rx_shift_operand): Use register_operand.
24564         (rx_source_operand, rx_compare_operand): Likewise.
24565         * config/rx/rx.md (addsi3_flags): New expander.
24566         (adddi3): Rewrite as expander.
24567         (adc_internal, *adc_flags, adddi3_internal): New patterns.
24568         (subsi3_flags): New expander.
24569         (subdi3): Rewrite as expander.
24570         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
24571
24572         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
24573         (rx_init_builtins): Remove sat builtin.
24574         (rx_expand_builtin): Likewise.
24575         * config/rx/rx.md (ssaddsi3): New.
24576         (*sat): Rename from sat.  Represent the CC_REG input.
24577
24578         * config/rx/predicates.md (rshift_operator): New.
24579         * config/rx/rx.c (rx_expand_insv): Remove.
24580         * config/rx/rx-protos.h: Update.
24581         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
24582         operand to the canonical position.
24583         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
24584         (*bitclr, *bitclr_in_memory): Similarly.
24585         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
24586         (insv): Retain the zero_extract in the expansion.
24587
24588         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
24589         (bswaphi2, bitinvert, revw): Likewise.
24590
24591         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
24592         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
24593         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
24594         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
24595         (bitset, bitset_in_memory): Likewise.
24596         (bitinvert, bitinvert_in_memory): Likewise.
24597         (bitclr, bitclr_in_memory): Likewise.
24598         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
24599         (rx_strend, rx_cmpstrn): Likewise.
24600         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
24601         (bitop peep2 patterns): Remove.
24602
24603         * config/rx/rx.c (rx_match_ccmode): New.
24604         * config/rx/rx-protos.h: Update.
24605         * config/rx/rx.md (abssi2): Clobber, don't set flags.
24606         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
24607         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
24608         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
24609         (fix_truncsfsi2, floatsisf2): Likewise.
24610         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
24611         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
24612         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
24613         (*subsi3_flags, *xorsi3_flags): New.
24614
24615         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
24616
24617         * config/rx/rx.c (rx_print_operand): Remove workaround for
24618         unsplit comparison operations.
24619
24620         * config/rx/rx.md (movsicc): Split after reload.
24621         (*movsicc): Merge *movsieq and *movsine via match_operator.
24622         (*stcc): New pattern.
24623
24624         * config/rx/rx.c (rx_float_compare_mode): Remove.
24625         * config/rx/rx.h (rx_float_compare_mode): Remove.
24626         * config/rx/rx.md (cstoresi4): Split after reload.
24627         (*sccc): New pattern.
24628
24629         * config/rx/predicates.md (label_ref_operand): New.
24630         (rx_z_comparison_operator): New.
24631         (rx_zs_comparison_operator): New.
24632         (rx_fp_comparison_operator): New.
24633         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
24634         Validate that the flags are set properly for the comparison.
24635         (rx_gen_cond_branch_template): Remove.
24636         (rx_cc_modes_compatible): Remove.
24637         (mode_from_flags): New.
24638         (flags_from_code): Rename from flags_needed_for_conditional.
24639         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
24640         (rx_select_cc_mode): Likewise.
24641         (rx_split_fp_compare): New.
24642         (rx_split_cbranch): New.
24643         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
24644         (*cbranchsi4): Use match_operator and rx_split_cbranch.
24645         (*cbranchsf4): Similarly.
24646         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
24647         match_operator and rx_split_cbranch.
24648         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
24649         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
24650         (*cmpsi): Rename from cmpsi.
24651         (*tstsi): Rename from tstsi.
24652         (*cmpsf): Rename from cmpsf; use CC_Fmode.
24653         (*conditional_branch): Rename from conditional_branch.
24654         (*reveresed_conditional_branch): Remove.
24655         (b<code>): Remove expander.
24656         * config/rx/rx-protos.h: Update.
24657
24658         * config/rx/rx.c (rx_compare_redundant): Remove.
24659         * config/rx/rx.md (cmpsi): Don't use it.
24660         * config/rx/rx-protos.h: Update.
24661
24662         * config/rx/rx-modes.def (CC_F): New mode.
24663         * config/rx/rx.c (rx_select_cc_mode): New.
24664         * config/rx/rx.h (SELECT_CC_MODE): Use it.
24665         * config/rx/rx-protos.h: Update.
24666
24667 2011-01-17  Richard Henderson  <rth@redhat.com>
24668
24669         * except.c (dump_eh_tree): Fix stray ; after for statement.
24670
24671 2011-01-17  Richard Guenther  <rguenther@suse.de>
24672
24673         PR tree-optimization/47313
24674         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
24675         handling before copying the body.  Properly deal with
24676         by-reference result in SSA form.
24677
24678 2011-01-17  Ian Lance Taylor  <iant@google.com>
24679
24680         PR target/47219
24681         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
24682         (struct_value_alias_set): Don't define.
24683         (sparc_option_override): Don't set sparc_sr_alias_set and
24684         struct_value_alias_set.
24685         (save_or_restore_regs): Use gen_frame_mem rather than calling
24686         set_mem_alias_set.
24687         (sparc_struct_value_rtx): Likewise.
24688
24689 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
24690
24691         PR target/47318
24692         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
24693         (_mm_maskstore_pd): Likewise.
24694         (_mm_maskload_ps): Likewise.
24695         (_mm_maskstore_ps): Likewise.
24696         (_mm256_maskload_pd): Change mask to __m256i.
24697         (_mm256_maskstore_pd): Likewise.
24698         (_mm256_maskload_ps): Likewise.
24699         (_mm256_maskstore_ps): Likewise.
24700
24701         * config/i386/i386-builtin-types.def: Updated.
24702         (ix86_expand_special_args_builtin): Likewise.
24703
24704         * config/i386/i386.c (bdesc_special_args): Update
24705         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
24706         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
24707         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
24708         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
24709
24710         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
24711         Use <avxpermvecmode> on mask register.
24712         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
24713
24714 2011-01-17  Olivier Hainque  <hainque@adacore.com>
24715             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
24716             Eric Botcazou  <ebotcazou@adacore.com>
24717
24718         PR target/46655
24719         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
24720         if <= USHRT_MAX in 32-bit mode.
24721
24722 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24723
24724         * doc/install.texi (Configuration, Specific): Wrap long
24725         lines in examples.  Allow line wrapping in long options
24726         and URLs where beneficial for PDF output.
24727
24728 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
24729
24730         * config/mips/mips.c (mips_classify_symbol): Don't return
24731         SYMBOL_PC_RELATIVE for nonlocal labels.
24732
24733 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
24734
24735         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
24736
24737 2011-01-15  Jan Hubicka  <jh@suse.cz>
24738
24739         PR tree-optimization/47276
24740         * ipa.c (function_and_variable_visibility): Do not try to mark alias
24741         declarations as needed.
24742
24743 2011-01-15  Martin Jambor  <mjambor@suse.cz>
24744
24745         * common.opt (fdevirtualize): New flag.
24746         * doc/invoke.texi (Option Summary): Document it.
24747         * opts.c (default_options_table): Add devirtualize flag.
24748         * ipa-prop.c (detect_type_change): Return immediately if
24749         devirtualize flag is not set.
24750         (detect_type_change_ssa): Likewise.
24751         (compute_known_type_jump_func): Likewise.
24752         (ipa_analyze_virtual_call_uses): Likewise.
24753
24754 2011-01-14  Martin Jambor  <mjambor@suse.cz>
24755
24756         PR tree-optimization/45934
24757         PR tree-optimization/46302
24758         * ipa-prop.c (type_change_info): New type.
24759         (stmt_may_be_vtbl_ptr_store): New function.
24760         (check_stmt_for_type_change): Likewise.
24761         (detect_type_change): Likewise.
24762         (detect_type_change_ssa): Likewise.
24763         (compute_complex_assign_jump_func): Check for dynamic type change.
24764         (compute_complex_ancestor_jump_func): Likewise.
24765         (compute_known_type_jump_func): Likewise.
24766         (compute_scalar_jump_functions): Likewise.
24767         (ipa_analyze_virtual_call_uses): Likewise.
24768         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
24769
24770 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24771
24772         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
24773         * config/i386/i386.opt (msse5): New Alias.
24774
24775 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24776
24777         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
24778         * config/sparc/linux64.h (CC1_SPEC): Likewise.
24779         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24780         * config/sparc/sparc.h (CC1_SPEC): Likewise.
24781
24782 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24783
24784         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
24785         -mcpu options.
24786         * config/sparc/linux64.h (CC1_SPEC): Likewise.
24787         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
24788         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
24789         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
24790         Likewise.
24791         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
24792
24793 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24794
24795         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
24796
24797 2011-01-14  Mike Stump  <mikestump@comcast.net>
24798
24799         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
24800         * config/fr30/fr30.md: Likweise
24801         (movsi_push): Likewise.
24802         (movsi_pop): Likewise.
24803         (enter_func): Likewise.
24804         * config/moxie/moxie.md (movsi_push): Likewise.
24805         (movsi_pop): Likewise.
24806
24807 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24808
24809         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
24810         %{no_archive} %{exact_version}.
24811         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
24812         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
24813         %{no_archive} %{exact_version}.
24814         * config/mips/openbsd.h (LINK_SPEC): Likewise.
24815         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
24816         * config/mips/vxworks.h: Likewise.
24817
24818 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24819
24820         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
24821
24822 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24823
24824         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
24825         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
24826
24827 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24828
24829         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
24830         -nodefaultlib.
24831
24832 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24833
24834         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
24835         for mcpu not cpu.
24836         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
24837         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
24838         not cpu.
24839         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
24840         Don't handle -shlib.
24841
24842 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24843
24844         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
24845         (CC1_SPEC): Don't handle -profile.
24846
24847 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24848
24849         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
24850         * config/mips/mips.h (CC1_SPEC): Likewise.
24851
24852 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24853
24854         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
24855         * config/mips/mips.h (CC1_SPEC): Likewise.
24856
24857 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24858
24859         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
24860         * config/m32r/linux.h (LINK_SPEC): Likewise.
24861         * config/mips/linux.h (LINK_SPEC): Likewise.
24862         * config/mips/linux64.h (LINK_SPEC): Likewise.
24863         * config/sparc/linux.h (LINK_SPEC): Likewise.
24864         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
24865         LINK_SPEC): Likewise.
24866         * config/xtensa/linux.h (LINK_SPEC): Likewise.
24867
24868 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24869
24870         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
24871         %{version:-v}.
24872         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
24873
24874 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24875
24876         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
24877         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
24878
24879 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
24880
24881         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
24882
24883 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24884
24885         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
24886         supports -Bstatic/-Bdynamic.
24887         * configure: Regenerate.
24888
24889 2011-01-14  Jan Hubicka  <jh@suse.cz>
24890             Jack Howarth  <howarth@bromo.med.uc.edu>
24891
24892         PR target/46037
24893         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
24894         when checking debug_info_level. Test write_symbols instead of
24895         debug_hooks->var_location when setting flag_var_tracking_uninit.
24896
24897 2011-01-14  Richard Guenther  <rguenther@suse.de>
24898
24899         PR tree-optimization/47179
24900         * target.def (ref_may_alias_errno): New target hook.
24901         * targhooks.h (default_ref_may_alias_errno): Declare.
24902         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
24903         (default_ref_may_alias_errno): New function.
24904         * target.h (struct ao_ref_s): Declare.
24905         * tree-ssa-alias.c: Include target.h.
24906         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
24907         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
24908         (targhooks.o): Likewise.
24909         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
24910         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
24911
24912 2011-01-14  Richard Guenther  <rguenther@suse.de>
24913
24914         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
24915
24916 2011-01-14  Richard Guenther  <rguenther@suse.de>
24917
24918         PR tree-optimization/47280
24919         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
24920         return CFG changes.
24921         (tree_ssa_forward_propagate_single_use_vars): Deal with
24922         CFG changes from associate_plusminus.
24923
24924 2011-01-14  Richard Guenther  <rguenther@suse.de>
24925
24926         PR middle-end/47281
24927         Revert
24928         2011-01-11  Richard Guenther  <rguenther@suse.de>
24929
24930         PR tree-optimization/46076
24931         * tree-ssa.c (useless_type_conversion_p): Conversions from
24932         unprototyped to empty argument list function types are useless.
24933
24934 2011-01-14  Richard Guenther  <rguenther@suse.de>
24935
24936         PR tree-optimization/47286
24937         * tree-ssa-structalias.c (new_var_info): Register variables are global.
24938
24939 2011-01-14  Martin Jambor  <mjambor@suse.cz>
24940
24941         PR middle-end/46823
24942         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
24943
24944 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
24945
24946         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
24947         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
24948         * config/xtensa/xtensa.c (xtensa_libcall_value,
24949         xtensa_function_value_regno_p): New functions.
24950         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
24951
24952 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
24953
24954         PR c++/47213
24955         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
24956         PE specific hook.
24957         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
24958         New function prototype.
24959         * config/i386/winnt.c (i386_pe_assemble_visibility):
24960         Warn only if attribute was specified by user.
24961
24962 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
24963
24964         PR target/47251
24965         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
24966         floating point.
24967         (floatunsdidf2_fcfidu): Ditto.
24968
24969 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24970
24971         * config/s390/s390.c (print_operand_address): Replace 'error' with
24972         'output_operand_lossage'.
24973         (print_operand): Likewise.
24974
24975 2011-01-13  Jeff Law  <law@redhat.com>
24976
24977         PR rtl-optimization/39077
24978         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
24979         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
24980         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
24981         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
24982         * gcse.c (prune_insertions_deletions): New function.
24983         (compute_pre_data): Use it.
24984
24985 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
24986
24987         PR debug/PR46973
24988         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
24989         static function.
24990         (prune_unused_types_mark): Use it.
24991
24992 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
24993
24994         PR rtl-optimization/45352
24995         * sel-sched.c: Update copyright years.
24996         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
24997         in the advancing loop when we have issued issue_rate insns.
24998
24999 2011-01-12  Richard Henderson  <rth@redhat.com>
25000
25001         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
25002         (TARGET_MD_ASM_CLOBBERS): New.
25003
25004         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
25005         (TARGET_DELEGITIMIZE_ADDRESS): New.
25006
25007         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
25008         (clzsi2, *bsch): New patterns.
25009
25010         * config/mn10300/mn10300.md (INT): New mode iterator.
25011         (*mov<INT>_clr): New pattern, and peep2 to generate it.
25012
25013         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
25014         flag_split_wide_types.
25015
25016         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
25017         (mn10300_trampoline_init): Rewrite without a template, an immediate
25018         load and a direct branch.
25019         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
25020
25021 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
25022
25023         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25024         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
25025         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
25026         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25027
25028 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
25029
25030         PR debug/47209
25031         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
25032         of type.
25033
25034 2011-01-12  Jan Hubicka  <jh@suse.cz>
25035
25036         PR driver/47244
25037         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
25038         (PLUGIN_COND_CLOSE): New macro.
25039         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
25040
25041 2011-01-12  Richard Guenther  <rguenther@suse.de>
25042
25043         PR lto/47259
25044         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
25045         register variables in a MEM_REF.
25046
25047 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
25048
25049         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
25050         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
25051         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
25052         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
25053         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
25054         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
25055         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
25056         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
25057         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
25058         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
25059         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
25060         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
25061         * config/gnu-user.h: New.  Copied from linux.h.
25062         (LINUX_TARGET_STARTFILE_SPEC): Rename to
25063         GNU_USER_TARGET_STARTFILE_SPEC.
25064         (LINUX_TARGET_ENDFILE_SPEC): Rename to
25065         GNU_USER_TARGET_ENDFILE_SPEC.
25066         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
25067         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
25068         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
25069         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
25070         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
25071         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
25072         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
25073         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
25074         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
25075         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
25076         * config/arm/linux-eabi.h (CC1_SPEC): Use
25077         GNU_USER_TARGET_CC1_SPEC.
25078         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
25079         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
25080         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
25081         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
25082         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
25083         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
25084         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
25085         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
25086
25087 2011-01-12  Richard Guenther  <rguenther@suse.de>
25088
25089         PR other/46946
25090         * doc/invoke.texi (ffast-math): Document it is turned on
25091         with -Ofast.
25092
25093 2011-01-12  Jan Hubicka  <jh@suse.cz>
25094
25095         PR tree-optimization/47233
25096         * opts.c (common_handle_option): Disable ipa-reference with profile
25097         feedback.
25098
25099 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
25100
25101         * c-parser.c (c_parser_objc_at_property_declaration): Improved
25102         error message.
25103
25104 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
25105
25106         * c-parser.c (c_lex_one_token): Updated and reindented some
25107         comments.  No changes in code.
25108
25109 2011-01-11  Ian Lance Taylor  <iant@google.com>
25110
25111         * godump.c (go_output_var): Don't output the variable if there is
25112         already a type with the same name.
25113
25114 2011-01-11  Ian Lance Taylor  <iant@google.com>
25115
25116         * godump.c (go_format_type): Don't generate float80.
25117
25118 2011-01-11  Richard Henderson  <rth@redhat.com>
25119
25120         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
25121         declaration.  Rewrite for both speed and size.
25122         (mn10300_address_cost_1): Remove.
25123         (mn10300_register_move_cost): New.
25124         (mn10300_memory_move_cost): New.
25125         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
25126         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
25127         extensions, shifts, BSWAP, CLZ.
25128         (mn10300_wide_const_load_uses_clr): Remove.
25129         (TARGET_REGISTER_MOVE_COST): New.
25130         (TARGET_MEMORY_MOVE_COST): New.
25131         * config/mn10300/mn10300-protos.h: Update.
25132         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
25133
25134         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
25135         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
25136         * config/mn10300/mn10300-protos.h: Update.
25137         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
25138         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
25139         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
25140         (*test_int_bitfield, *test_byte_bitfield): Remove.
25141         (*bit_test, *subreg_bit_test): Remove.
25142         * config/mn10300/predicates.md (const_8bit_operand): Remove.
25143
25144         * config/mn10300/constraints.md ("c"): Rename from "A".
25145         ("A", "D"): New constraint letters.
25146         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
25147         (fmssf4, fnmasf4, fnmssf4): Likewise.
25148
25149         * config/mn10300/mn10300.md (isa): New attribute.
25150         (enabled): New attribute.
25151
25152         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
25153         (abssf2, negsf2): Define only for hardware fp.
25154         (sqrtsf2): Reformat.
25155         (addsf3, subsf3, mulsf3): Merge expander and insn.
25156
25157         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
25158         (DEBUGGER_AUTO_OFFSET): Remove.
25159         (DEBUGGER_ARG_OFFSET): Remove.
25160
25161         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
25162         Emit register stores with the same offsets as the hardware.
25163         (mn10300_store_multiple_operation): Don't check that the register
25164         save offsets are monotonic.
25165         * config/mn10300/mn10300-protos.h: Update.
25166
25167         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
25168
25169         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
25170         in terms of the value on the stack, not the MDR register.
25171
25172 2011-01-11  Jan Hubicka  <jh@suse.cz>
25173
25174         PR lto/45721
25175         PR lto/45375
25176         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
25177         (symbol_alias_set_destroy, symbol_alias_set_contains,
25178         propagate_aliases_backward): Declare.
25179         * lto-streamer-out.c (struct sets): New sturcture.
25180         (trivally_defined_alias): New function.
25181         (output_alias_pair_p): Rewrite.
25182         (output_unreferenced_globals): Fix output of alias pairs.
25183         (produce_symtab): Likewise.
25184         * ipa.c (function_and_variable_visibility): Set weak alias destination
25185         as needed in lto.
25186         * varasm.c (symbol_alias_set_t): Remove.
25187         (symbol_alias_set_destroy): Export.
25188         (propagate_aliases_forward, propagate_aliases_backward): New functions
25189         based on ...
25190         (compute_visible_aliases): ... this one; remove.
25191         (trivially_visible_alias): New
25192         (trivially_defined_alias): New.
25193         (remove_unreachable_alias_pairs): Rewrite.
25194         (finish_aliases_1): Reorganize code checking if alias is defined.
25195         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
25196         in LTO mode.
25197
25198 2011-01-11  Richard Guenther  <rguenther@suse.de>
25199
25200         PR tree-optimization/46076
25201         * tree-ssa.c (useless_type_conversion_p): Conversions from
25202         unprototyped to empty argument list function types are useless.
25203
25204 2011-01-11  Richard Guenther  <rguenther@suse.de>
25205
25206         PR middle-end/45235
25207         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
25208         volatile MEMs as MEM_READONLY_P.
25209
25210 2011-01-11  Richard Guenther  <rguenther@suse.de>
25211
25212         PR tree-optimization/47239
25213         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
25214
25215 2011-01-11  Jeff Law  <law@redhat.com>
25216
25217         PR tree-optimization/47086
25218         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
25219         IVs from statements that might throw.
25220
25221 2011-01-10  Jan Hubicka  <jh@suse.cz>
25222
25223         PR lto/45375
25224         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
25225
25226 2011-01-10  Jan Hubicka  <jh@suse.cz>
25227
25228         PR lto/45375
25229         * profile.c (read_profile_edge_counts): Ignore profile inconistency
25230         when correcting profile.
25231
25232 2011-01-10  Jan Hubicka  <jh@suse.cz>
25233
25234         PR lto/46083
25235         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
25236         DECL_FINI_PRIORITY.
25237         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
25238         Restore DECL_FINI_PRIORITY.
25239
25240 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25241
25242         * doc/gimple.texi: Fix quoting of multi-word return values in
25243         @deftypefn statements.  Ensure presence of return value.  Wrap
25244         overlong @deftypefn lines.
25245         (is_gimple_operand, is_gimple_min_invariant_address): Remove
25246         descriptions of removed functions.
25247         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
25248         of multi-word return value in @deftypefn statement.
25249
25250 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25251
25252         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
25253         (Conditional Expressions, Logical Operators)
25254         (Statement and operand traversals): Do not indent smallexample
25255         code.  Fix duplicate function argument in example.
25256
25257 2011-01-10  Jeff Law  <law@redhat.com>
25258
25259         PR tree-optimization/47141
25260         * ipa-split.c (split_function): Handle case where we are
25261         returning a value and the return block has a virtual operand phi.
25262
25263 2011-01-10  Jan Hubicka  <jh@suse.cz>
25264
25265         PR tree-optimization/47234
25266         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
25267         (pass_feedback_split_functions): Declare.
25268         * passes.c (init_optimization_passes): Add ipa-split as subpass of
25269         tree-profile.
25270         * ipa-split.c (gate_split_functions): Update comments; disable
25271         split-functions for profile_arc_flag and branch_probabilities.
25272         (gate_feedback_split_functions): New function.
25273         (execute_feedback_split_functions): New function.
25274         (pass_feedback_split_functions): New global var.
25275
25276 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
25277
25278         PR lto/46760
25279         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
25280         calling gimple_call_set_cannot_inline.
25281
25282 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
25283
25284         * config/darwin-sections.def: Remove unused section.
25285
25286 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
25287
25288         PR c++/47218
25289         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
25290
25291 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
25292
25293         PR objc/47232
25294         * c-parser.c (c_parser_declaration_or_fndef): Improved
25295         error message.
25296
25297 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
25298
25299         * config/i386/winnt.c (i386_pe_start_function): Make sure
25300         to switch back to function's section.
25301
25302 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
25303
25304         PR gcc/46902
25305         PR testsuite/46912
25306         * plugin.c: Move include of dlfcn.h from here...
25307         * system.h: ... to here.
25308
25309 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25310
25311         * doc/cpp.texi (C++ Named Operators): Fix markup for header
25312         file name.
25313         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
25314         two extra empty pages in PDF output.
25315
25316 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
25317
25318         PR objc/47078
25319         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
25320         for error recovery purposes behave as if it was not specified so
25321         that the default type is usd.
25322
25323 2011-01-07  Jan Hubicka  <jh@suse.cz>
25324
25325         PR tree-optmization/46469
25326         * ipa.c (function_and_variable_visibility): Clear needed flags on
25327         nodes with external decls; handle weakrefs merging correctly.
25328
25329 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
25330
25331         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
25332         not false.
25333
25334 2011-01-07  Jan Hubicka  <jh@suse.cz>
25335
25336         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
25337         and no longer claim that gold is required for linker plugin.
25338         * configure: Regenerate.
25339         * gcc.c (PLUGIN_COND): New macro.
25340         (LINK_COMMAND_SPEC): Use it.
25341         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
25342         * config.in (HAVE_LTO_PLUGIN): New.
25343         * configure.ac (--with-lto-plugin): New parameter; autodetect
25344         HAVE_LTO_PLUGIN.
25345
25346 2011-01-07  Jan Hubicka  <jh@suse.cz>
25347
25348         PR tree-optimization/46367
25349         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
25350         when we can update original.
25351         (cgraph_mark_inline_edge): Sanity check.
25352         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
25353
25354 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25355
25356         * config/spu/spu.h (ASM_COMMENT_START): Define.
25357
25358 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
25359
25360         PR driver/42445
25361         * gcc.c (%>S): New.
25362         (SWITCH_KEEP_FOR_GCC): Likewise.
25363         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
25364         (do_spec_1): Handle "%>".
25365
25366         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
25367
25368 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
25369
25370         PR target/47201
25371         * config/i386/i386.c (ix86_delegitimize_address): If
25372         simplify_gen_subreg fails, return orig_x.
25373
25374         PR bootstrap/47187
25375         * value-prof.c (gimple_stringop_fixed_value): Handle
25376         lhs of the call properly.
25377
25378 2011-01-07  Jan Hubicka  <jh@suse.cz>
25379
25380         PR lto/45375
25381         * lto-opt.c (lto_reissue_options): Set flag_shlib.
25382
25383 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
25384
25385         * target.def (function_switched_text_sections): New hook.
25386         * doc/tm.texi: Regenerated.
25387         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25388         * final.c (default_function_switched_text_sections): New.
25389         (final_scan_insn): Call function_switched_text_sections when a
25390         mid-function section change occurs.
25391         * output.h (default_function_switched_text_sections): Declare.
25392         * config/darwin-protos.h (darwin_function_switched_text_sections):
25393         Likewise.
25394         * config/darwin.c (darwin_function_switched_text_sections): New.
25395         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
25396
25397 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
25398
25399         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
25400         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
25401         the secondary code fragment when outputting for DWARF == 2.
25402
25403 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
25404
25405         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
25406         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
25407         Remove.
25408         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
25409         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
25410
25411 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
25412
25413         PR debug/46704
25414         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
25415         when it is not empty.
25416
25417 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
25418
25419         Bobcat Enablement
25420         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
25421         (case ${target}): Add btver1.
25422         * config/i386/driver-i386.c (host_detect_local_cpu): Let
25423         -march=native recognize btver1 processors.
25424         * config/i386/i386-c.c (ix86_target_macros_internal): Add
25425         btver1 def_and_undef
25426         * config/i386/i386.c (struct processor_costs btver1_cost): New
25427         btver1 cost table.
25428         (m_BTVER1): New definition.
25429         (m_AMD_MULTIPLE): Includes m_BTVER1.
25430         (initial_ix86_tune_features): Add btver1 tune.
25431         (processor_target_table): Add btver1 entry.
25432         (static const char *const cpu_names): Add btver1 entry.
25433         (software_prefetching_beneficial_p): Add btver1.
25434         (ix86_option_override_internal): Add btver1 instruction sets.
25435         (ix86_issue_rate): Add btver1.
25436         (ix86_adjust_cost): Add btver1.
25437         * config/i386/i386.h (TARGET_BTVER1): New definition.
25438         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
25439         (enum processor_type): Add PROCESSOR_BTVER1.
25440         * config/i386/i386.md (define_attr "cpu"): Add btver1.
25441
25442 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25443
25444         PR target/43309
25445         * config/i386/i386.c (legitimize_tls_address)
25446         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
25447         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
25448         (tls_initial_exec_64_sun): New pattern.
25449
25450 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
25451
25452         * doc/invoke.texi (Overall Options): Improve wording and markup
25453         of the description of -wrapper.
25454
25455 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
25456
25457         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
25458         rdynamic, threads): New Driver options.
25459
25460 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25461
25462         PR target/38118
25463         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
25464         if coming from .tdata.
25465         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
25466
25467 2011-01-06  Jan Hubicka  <jh@suse.cz>
25468
25469         PR lto/47188
25470         * collect2.c (main): Do not enable LTOmode when plugin is active.
25471
25472 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25473
25474         PR other/45915
25475         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
25476         --version output if supported.
25477         * configure: Regenerate.
25478
25479 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
25480
25481         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
25482         Driver options.
25483
25484 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
25485
25486         PR c/47150
25487         * c-convert.c (convert): When converting a complex expression
25488         other than COMPLEX_EXPR to a different complex type, ensure
25489         c_save_expr is called instead of save_expr, unless in_late_binary_op.
25490         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
25491         when converting COMPLEX_TYPE.
25492
25493 2011-01-06  Ira Rosen  <irar@il.ibm.com>
25494
25495         PR tree-optimization/47139
25496         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
25497         only the last reduction value is used outside the loop.  Update
25498         documentation.
25499
25500 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
25501
25502         * config/rtems.opt: New.
25503         * config.gcc (*-*-rtems*): Use rtems.opt.
25504
25505 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
25506
25507         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
25508         processors do not support 3DNow instructions.
25509
25510 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25511
25512         * config/spu/spu.c (spu_option_override): Set parameter
25513         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
25514
25515 2011-01-05  Jan Hubicka  <jh@suse.cz>
25516
25517         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
25518         at the command line.
25519
25520 2011-01-05  Martin Jambor  <mjambor@suse.cz>
25521
25522         PR lto/47162
25523         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
25524         deltas on streamed outgoing edges.
25525         (output_node_opt_summary): Output info for outgoing edges only when
25526         the node is in new parameter set.
25527         (output_cgraph_opt_summary): New parameter set, passed to the two
25528         aforementioned functions.  Update its forward declaration and its
25529         callee too.
25530
25531 2011-01-05  Tom Tromey  <tromey@redhat.com>
25532
25533         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
25534         operator to c_finish_omp_atomic.
25535         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
25536         (build_unary_op): Update.
25537         (build_modify_expr): Update.
25538         (build_asm_expr): Update.
25539
25540 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25541
25542         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
25543         newly inserted insns.
25544         (pad_bb): Likewise.
25545         (spu_emit_branch_hint): Likewise.
25546         (insert_hbrp_for_ilb_runout): Likewise.
25547         (spu_machine_dependent_reorg): Call df_finish_pass after
25548         schedule_insns returns.
25549
25550 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25551
25552         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
25553
25554 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
25555
25556         PR tree-optimization/47005
25557         * tree-sra.c (struct access): Add 'non_addressable' bit.
25558         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
25559         (decide_one_param_reduction): Return 0 if the parameter is passed by
25560         reference and one of the accesses in the group is non_addressable.
25561
25562 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
25563
25564         PR tree-optimization/47056
25565         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
25566         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
25567         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
25568
25569 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
25570
25571         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
25572         initializer.  Skip view conversions from aggregate types.
25573
25574 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
25575
25576         PR bootstrap/47055
25577         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
25578
25579 2011-01-04  Philipp Thomas  <pth@suse.de>
25580
25581         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
25582         obvious typo.
25583
25584 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25585
25586         * function.c (thread_prologue_and_epilogue_insns): Do not crash
25587         on empty epilogue sequences.
25588
25589 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
25590
25591         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
25592         non-static): New Driver options.
25593
25594 2011-01-04  Jie Zhang  <jie@codesourcery.com>
25595
25596         PR driver/47137
25597         * gcc.c (default_compilers[]): Set combinable field to 0
25598         for all assembly languages.
25599
25600 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
25601
25602         * config/mips/loongson3a.md: New file.
25603         * config/mips/mips.md: Include loongson3a.md.
25604         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
25605         TUNE_LOONGSON_3A.
25606
25607 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
25608
25609         PR middle-end/47017
25610         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
25611         instead of convert_memory_address_addr_space on the base expression.
25612
25613 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25614
25615         * config/spu/spu.c (spu_option_override): Update error text
25616         for bad -march= / -mtune= values.
25617
25618 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25619
25620         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
25621         if branch-hint optimization will be performed.
25622
25623 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
25624
25625         PR tree-optimization/47148
25626         * ipa-split.c (split_function): Convert arguments to
25627         DECL_ARG_TYPE if possible.
25628
25629         PR tree-optimization/47155
25630         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
25631         when computing uns.
25632
25633         PR rtl-optimization/47157
25634         * combine.c (try_combine): If undobuf.other_insn becomes
25635         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
25636         and set *new_direct_jump_p too.
25637
25638 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
25639
25640         PR tree-optimization/47021
25641         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
25642
25643 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
25644
25645         * gcc.c (process_command): Update copyright notice dates.
25646         * gcov.c (print_version): Likewise.
25647         * gcov-dump.c (print_version): Likewise.
25648         * mips-tfile.c (main): Likewise.
25649         * mips-tdump.c (main): Likewise.
25650
25651 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25652
25653         PR tree-optimization/46801
25654         * tree-sra.c (type_internals_preclude_sra_p): Check whether
25655         aggregate fields start at byte boundary instead of the bit-field flag.
25656
25657 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
25658
25659         PR driver/47137
25660         * gcc.c (main): Revert revision 168407.
25661
25662 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25663
25664         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
25665
25666 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25667
25668         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
25669         vector optab to expand vector/scalar shift, update gimple to vector.
25670
25671 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25672
25673         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
25674         a thunk.
25675
25676 2011-01-03  Martin Jambor  <mjambor@suse.cz>
25677
25678         PR tree-optimization/46984
25679         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
25680         HOST_WIDE_INT.
25681         (cgraph_create_indirect_edge): Fixed line length.
25682         (cgraph_indirect_call_info): Declare.
25683         (cgraph_make_edge_direct) Update declaration.
25684         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
25685         (cgraph_create_indirect_edge): Use it.
25686         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
25687         callees.
25688         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
25689         the new thunk_delta representation.
25690         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
25691         HOST_WIDE_INT.
25692         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
25693         (ipa_read_indirect_edge_info): Likewise.
25694         * lto-cgraph.c (output_edge_opt_summary): New function.
25695         (output_node_opt_summary): Call it on all outgoing edges.
25696         (input_edge_opt_summary): New function.
25697         (input_node_opt_summary): Call it on all outgoing edges.
25698
25699 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
25700
25701         PR driver/47137
25702         * gcc.c (main): Don't check have_o when settting combine_inputs.
25703
25704 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
25705
25706         * regrename.c: Add general comment describing the pass.
25707         (struct du_head): Remove 'length' field.
25708         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
25709         (regrename_optimize): Do not sort chains.  Rework comments, add others.
25710         Force renaming to the preferred class (if any) in the first pass and do
25711         not consider registers that belong to it in the second pass.
25712         (create_new_chain): Do not set 'length' field.
25713         (scan_rtx_reg): Likewise.
25714
25715 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
25716
25717         PR tree-optimization/47140
25718         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
25719         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
25720         to bit_value_binop.
25721
25722         PR rtl-optimization/47028
25723         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
25724         parm_birth_insn instead of at the beginning of first bb.
25725
25726 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
25727
25728         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
25729         Remove the word "see" before "@pxref".
25730         * doc/rtl.texi: Remove the word "see" before "@pxref".
25731
25732 2011-01-01  Jan Hubicka  <jh@suse.cz>
25733
25734         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
25735         memory.
25736
25737 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
25738
25739         PR target/38662
25740         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
25741
25742 \f
25743 Copyright (C) 2011 Free Software Foundation, Inc.
25744
25745 Copying and distribution of this file, with or without modification,
25746 are permitted in any medium without royalty provided the copyright
25747 notice and this notice are preserved.