OSDN Git Service

Add -mavx2.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
2
3         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
4         (OPTION_MASK_ISA_AVX_UNSET): Update.
5         (OPTION_MASK_ISA_AVX2_UNSET): New.
6         (ix86_handle_option): Handle OPT_mavx2 case.
7         * config/i386/cpuid.h (bit_AVX2): New.
8         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
9         AVX2 feature.
10         * config/i386/i386-c.c (ix86_target_macros_internal):
11         Conditionally define __AVX2__.
12         * config/i386/i386.c (ix86_option_override_internal): Define
13         PTA_AVX2.  Define "core-avx2" processor alias.  Handle avx2
14         option.
15         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
16         * config/i386/i386.h (TARGET_AVX2): New.
17         * config/i386/i386.opt (mavx2): New.
18         * doc/invoke.texi: Document -mavx2.
19
20 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
21
22         PR rtl-optimization/49890
23         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
24         subclasses of class which is superset of a pressure class.
25
26 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
27             Igor Zamyatin <igor.zamyatin@intel.com>
28
29         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
30         with HOST_WIDE_INT for isa_flag.
31         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
32         isa variables.
33
34         * config/i386/i386.c (ix86_target_string): Replace int with
35         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
36         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
37         (pta_flags): Removed.
38         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
39         (pta): Use HOST_WIDE_INT on flags.
40         (builtin_isa): Use HOST_WIDE_INT on isa.
41         (ix86_add_new_builtins): Likewise.
42         (def_builtin): Use HOST_WIDE_INT on mask.
43         (def_builtin_const): Likewise.
44         (builtin_description): Likewise.
45
46         * config/i386/i386.opt (ix86_isa_flags): Replace int with
47         HOST_WIDE_INT.
48         (ix86_isa_flags_explicit): Likewise.
49         (x_ix86_isa_flags_explicit): Likewise.
50
51 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
52
53         PR rtl-optimization/50107
54         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
55         (ira_hard_reg_in_set_p): New.
56
57         * ira-color.c (calculate_saved_nregs): New.
58         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
59         hard regs.
60         (allocno_reload_assign, fast_allocation): Use
61         ira_hard_reg_set_intersection_p instead of
62         ira_hard_reg_not_in_set_p.
63
64         * ira.c (setup_reg_renumber): Use
65         ira_hard_reg_set_intersection_p instead of
66         ira_hard_reg_not_in_set_p.
67         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
68         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
69
70         * ira-costs.c (ira_tune_allocno_costs): Use
71         ira_hard_reg_set_intersection_p instead of
72         ira_hard_reg_not_in_set_p.
73
74 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
75             Igor Zamyatin <igor.zamyatin@intel.com>
76
77         * hwint.h (HOST_WIDE_INT_1): New.
78
79         * opt-functions.awk (switch_bit_fields): Initialize the
80         host_wide_int field.
81         (host_wide_int_var_name): New.
82         (var_type_struct): Check and return HOST_WIDE_INT.
83
84         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
85
86         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
87
88         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
89         check masks for HOST_WIDE_INT.
90
91         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
92         (option_enabled): Likewise.
93         (get_option_state): Likewise.
94
95         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
96         to HOST_WIDE_INT.
97
98 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
99             Marc Glisse  <marc.glisse@normalesup.org>
100
101         PR libstdc++-v3/1773
102         * target.def (decl_mangling_context): New C++ hook.
103         * doc/tm.texi: Regenerate.
104         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
105         * config/sol2-protos.h: Group by source file.
106         (solaris_cxx_decl_mangling_context): Declare.
107         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
108         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
109         Use $<.
110         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
111         Add sol2-stubs.o to extra_objs.
112
113 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
114
115         PR target/50009
116         * stor-layout.c (update_alignment_for_field): Don't ICE on
117         packed flexible array members if ms_bitfield_layout_p.
118
119         PR target/50092
120         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
121         on the result before returning it.
122
123         PR debug/50017
124         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
125         is a debug stmt, use location of the first non-debug stmt after it.
126
127 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
128
129         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
130         (arm_size_rtx_costs): Likewise.
131
132 2011-08-18  Richard Guenther  <rguenther@suse.de>
133
134         * tree.h (tree_int_cst_msb): Remove.
135         * tree.c (tree_int_cst_msb): Likewise.
136         (tree_int_cst_sign_bit): Move from ...
137         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
138
139 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
140
141         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
142         * doc/tm.texi: Regenerate.
143         * target.def (rtx_costs): Add an opno parameter.
144         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
145         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
146         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
147         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
148         * cse.c (COST_IN): Add an opno parameter.
149         (notreg_cost): Likewise.  Update call to rtx_cost.
150         (COST, fold_rtx): Update accordingly.
151         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
152         * expmed.c (emit_store_flag): Likewise.
153         * optabs.c (avoid_expensive_constant): Add an opno parameter.
154         Update call to rtx_cost.
155         (expand_binop_directly, expand_binop): Likewise.
156         (expand_twoval_binop, prepare_cmp_insn): Likewise.
157         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
158         (set_src_cost, get_full_set_src_cost): Update accordingly.
159         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
160         to target hook.
161         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
162         (default_adress_cost): Update calls to rtx_cost.
163
164         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
165         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
166         (arm_rtx_costs): Add an opno parameter.
167         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
168         adjust any recursive rtx-cost calls.
169         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
170         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
171         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
172         * config/cris/cris.c (cris_rtx_costs): Likewise.
173         * config/frv/frv.c (frv_rtx_costs): Likewise.
174         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
175         * config/i386/i386.c (ix86_rtx_costs): Likewise.
176         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
177         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
178         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
179         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
180         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
181         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
182         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
183         * config/mep/mep.c (mep_rtx_cost): Likewise.
184         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
185         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
186         (mips_zero_extend_cost): Add an opno parameter.
187         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
188         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
189         to rtx_cost.
190         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
191         rtx-cost calls.
192         * config/pa/pa.c (hppa_rtx_costs): Likewise.
193         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
194         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
195         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
196         (rs6000_debug_rtx_costs): Likewise.
197         * config/s390/s390.c (s390_rtx_costs): Likewise.
198         * config/score/score-protos.h (score_rtx_costs): Likewise.
199         * config/score/score.c (score_rtx_costs): Likewise.
200         * config/sh/sh.c (andcosts): Update call to rtx_cost.
201         (sh_rtx_costs): Add an opno parameter.
202         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
203         * config/spu/spu.c (spu_rtx_costs): Likewise.
204         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
205         * config/v850/v850.c (v850_rtx_costs): Likewise.
206         * config/vax/vax.c (vax_rtx_costs): Likewise.
207         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
208
209 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
210
211         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
212         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
213         rtx_cost.
214         * calls.c (precompute_register_parameters): Likewise.
215         * combine.c (expand_compound_operation, make_extraction): Likewise.
216         (force_to_mode, distribute_and_simplify_rtx): Likewise.
217         * dse.c (find_shift_sequence): Likewise.
218         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
219         * expr.c (compress_float_constant): Likewise.
220         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
221         * gcse.c (want_to_gcse_p): Likewise.
222         * ifcvt.c (noce_try_sign_mask): Likewise.
223         * loop-doloop.c (doloop_optimize): Likewise.
224         * loop-invariant.c (create_new_invariant): Likewise.
225         * optabs.c (avoid_expensive_constant): Likewise.
226         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
227         (try_replace_in_use, reload_cse_move2add): Likewise.
228         * reload1.c (calculate_elim_costs_all_insns): Likewise.
229         (note_reg_elim_costly): Likewise.
230         * rtlanal.c (insn_rtx_cost): Likewise.
231         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
232         * stmt.c (lshift_cheap_p): Likewise.
233         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
234         * config/avr/avr.c (final_prescan_insn): Likewise.
235         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
236         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
237
238 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
239
240         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
241         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
242         * cfgloopanal.c (seq_cost): Likewise.
243         * loop-invariant.c (create_new_invariant): Likewise.
244         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
245         (reload_cse_move2add): Use get_full_set_rtx_cost.
246
247 2011-08-18  Richard Guenther  <rguenther@suse.de>
248
249         * expr.c (get_inner_reference): Fix typo in last change.
250
251 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
252             Joseph Myers  <joseph@codesourcery.com>
253
254         PR tree-optimization/49963
255         * hwint.c (absu_hwi): Define.
256         * hwint.h (absu_hwi): Declare.
257         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
258         of abs_hwi.
259         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
260         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
261
262 2011-08-18  Richard Guenther  <rguenther@suse.de>
263
264         * expr.c (get_inner_reference): Sign-extend the constant
265         twos-complement offset before doing arbitrary precision
266         arithmetic on it.
267         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
268         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
269         to get_constraint_for_ptr_offset.
270
271 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
272
273         PR target/50068
274         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
275
276 2011-08-17  Richard Guenther  <rguenther@suse.de>
277
278         * tree.h (convert_to_ptrofftype_loc): New function.
279         (convert_to_ptrofftype): Define.
280         * builtins.c (expand_builtin_bzero): Use size_type_node.
281         (fold_builtin_bzero): Likewise.
282         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
283         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
284         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
285         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
286         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
287         * fold-const.c (build_range_check): Negate using the original
288         type.
289         (fold_unary_loc): Use fold_build_pointer_plus_loc.
290         * gimple-fold.c (gimple_adjust_this_by_delta): Use
291         convert_to_ptrofftype.
292         * gimplify.c (gimplify_self_mod_expr): Likewise.
293         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
294         (graphite_create_new_loop_guard): Likewise.
295         * graphite-sese-to-poly.c (my_long_long): Remove.
296         (scop_ivs_can_be_represented): Adjust.
297         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
298         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
299         * tree-loop-distribution.c (build_size_arg_loc): Use
300         size_type_node.
301         (generate_memset_zero): Simplify.
302         * tree-mudflap.c: Use fold_convert, not convert.
303         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
304         its own type.
305         (determine_offset): Likewise for DR_STEP.
306         (valid_initializer_p): Likewise.
307         * tree-profile.c (prepare_instrumented_value): Convert the pointer
308         to an integer type of same size.
309         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
310         to sizetype without need.
311         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
312         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
313         * tree-ssa-loop-manip.c (create_iv): Likewise.
314         (determine_exit_conditions): Adjust comment.
315         * tree-ssa-pre.c (create_expression_by_pieces): Use
316         convert_to_ptrofftype.
317         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
318         * varasm.c (array_size_for_constructor): Compute using double_ints.
319
320 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
321
322         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
323         when generating an integer result where possible.  Short-cut
324         comparison against 0 also for QImode.
325
326 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
327
328         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
329         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
330         prototype.
331         * config/spu/spu.c (spu_legitimize_reload_address): New function.
332         (spu_legitimate_address_p): Do not check displacement if the base
333         is an eliminable stack register.
334
335 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
336
337         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
338         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
339         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
340         m32c_preferred_output_reload_class): Remove.
341         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
342         Change rclass argument and return types to reg_class_t. Use
343         reg_class_subset_p instead of class_sizes.
344         (m32c_preferred_output_reload_class): Make static. Change rclass
345         argument and return types to reg_class_t.
346         (TARGET_PREFERRED_RELOAD_CLASS,
347         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
348
349 2011-08-16  Kai Tietz  <ktietz@redhat.com>
350
351         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
352
353 2011-08-16  Richard GUenther  <rguenther@suse.de>
354
355         PR tree-optimization/50082
356         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
357         warnings here, instead of ...
358         (ssa_forward_propagate_and_combine): ... here.
359         (forward_propagate_into_comparison_1): Adjust.
360         (forward_propagate_into_comparison): Likewise.
361         (forward_propagate_into_gimple_cond): Likewise.
362         (forward_propagate_into_cond): Likewise.
363
364 2011-08-16  Andreas Schwab  <schwab@redhat.com>
365
366         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
367         instead of ggc_alloc_zone_vec_rtvec_def.
368
369 2011-08-16  Richard Guenther  <rguenther@suse.de>
370
371         * tree.h (ptrofftype_p): New helper function.
372         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
373         offset verification.
374         (verify_gimple_assign_binary): Likewise.
375         * tree.c (build2_stat): Likewise.
376         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
377         (reset_evolution_in_loop): Likewise.
378         * tree-chrec.h (build_polynomial_chrec): Likewise.
379
380 2011-08-16  Liang Wang  <lwang1@marvell.com>
381
382         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
383         ggc_alloc_zone_vec_rtvec_def.
384
385 2011-08-16  Richard Guenther  <rguenther@suse.de>
386
387         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
388         helper factored out from ...
389         (extract_range_from_binary_expr_1): ... here.  Re-structure
390         to not glob handling too different tree codes.
391
392 2011-08-15  Richard Henderson  <rth@redhat.com>
393
394         PR middle-end/50006
395         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
396         setting out to include allocate_stack named pattern as well.
397         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
398         * stmt.c (expand_stack_restore): Likewise.
399
400 2011-08-15  Richard Guenther  <rguenther@suse.de>
401
402         PR middle-end/50082
403         * fold-const.c (maybe_canonicalize_comparison_1): Properly
404         convert the modified operand to the other operand type.
405         (fold_comparison): Call maybe_canonicalize_comparison_1 with
406         useless conversions stripped from comparison operands.
407
408 2011-08-15  Richard Guenther  <rguenther@suse.de>
409
410         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
411         (extract_range_from_unary_expr_1): Restructure.
412
413 2011-08-15  Richard Guenther  <rguenther@suse.de>
414
415         PR tree-optimization/50058
416         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
417         copy matching.
418
419 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
420
421         PR target/50022
422         * config/arm/arm.c (output_move_double): Add 2 parameters
423         to count the number of insns emitted and whether to emit or not.
424         Use the flag to decide when to emit and count number of instructions
425         that will be emitted.
426         Handle case where output_move_double might be called for calculating
427         lengths with an invalid constant.
428         (arm_count_output_move_double_insns): Define.
429         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
430         (output_move_double): Adjust prototype.
431         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
432         output_move_double.
433         ("*movdi_vfp_cortexa8"): Likewise and add attribute
434         for ce_count.
435         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
436         ("*movdf_soft_insn"): Likewise.
437         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
438         ("*cirrus_thumb2_movdi"): Likewise.
439         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
440         ("*cirrus_movdf_hard_insn"): Likewise.
441         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
442         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
443         ("mov<mode>_internal VMMX"): Likewise.
444         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
445
446 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
447
448         * config/i386/i386.c (ix86_expand_round_sse4): New function.
449         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
450         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
451         for TARGET_ROUND.
452
453         (rint<mode>2): Simplify TARGET_ROUND check.
454         (floor<mode>2): Ditto.
455         (ceil<mode>2): Ditto.
456         (btrunc<mode>2): Ditto.
457
458 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
459
460         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
461         as mmix_preferred_output_reload_class.
462
463 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
464
465         * PR target/49903
466         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
467         (branch_unspec): New insn.
468         (branch): Beauty farm.
469         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
470         to be IF_THEN_ELSE.
471         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
472         New static functions.
473         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
474         Use CONST_INT_P.  Beauty.
475
476 2011-08-12  Richard Henderson  <rth@redhat.com>
477
478         PR rtl-opt/49994
479         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
480         * sched-deps.c (init_deps): Clear it.
481         (deps_analyze_insn): Consume it.
482         (sched_analyze_insn): Fill it.
483
484 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
485
486         PR target/48328
487         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
488         for tbh instructions.
489
490 2011-08-12   Diego Novillo  <dnovillo@google.com>
491
492         * data-streamer.h (streamer_write_zero): Rename from output_zero.
493         (streamer_write_uhwi): Rename from lto_output_uleb128.
494         (streamer_write_hwi): Rename from output_sleb128.
495         (streamer_write_string): Rename from lto_output_string.
496         (streamer_string_index): Rename from lto_string_index.
497         (streamer_write_string_with_length): Rename from
498         lto_output_string_with_length.
499         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
500         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
501         (streamer_read_string): Rename from lto_input_string.
502         (streamer_read_indexed_string): Rename from input_string_internal.
503         (streamer_read_uhwi): Rename from lto_input_uleb128.
504         (streamer_read_hwi): Rename from lto_input_sleb128.
505         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
506         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
507         (streamer_write_enum): Rename from lto_output_enum.
508         (streamer_read_enum): Rename from lto_input_enum.
509         (streamer_write_record_start): Rename from output_record_start.
510         (streamer_read_record_start): Rename from input_record_start.
511         (streamer_write_bitpack): Rename from lto_output_bitpack.
512         (streamer_read_bitpack): Rename from lto_input_bitpack.
513         (streamer_write_char_stream): Rename from lto_output_1_stream.
514         (streamer_read_uchar): Rename from lto_input_1_unsigned.
515         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
516         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
517         (streamer_read_string_cst): Rename from input_string_cst.
518         (streamer_read_chain): Rename from lto_input_chain.
519         (streamer_alloc_tree): Rename from lto_materialize_tree.
520         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
521         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
522         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
523         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
524         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
525         (streamer_write_chain): Rename from lto_output_chain.
526         (streamer_write_tree_header): Rename from lto_output_tree_header.
527         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
528         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
529         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
530         (streamer_write_builtin): Rename from lto_output_builtin_tree.
531         (streamer_check_handled_ts_structures): Rename from
532         check_handled_ts_structures.
533         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
534         (streamer_tree_cache_insert_at): Rename from
535         lto_streamer_cache_insert_at.
536         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
537         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
538         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
539         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
540         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
541         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
542         (write_identifier): Rename from output_identifier.
543         (write_ts_common_tree_pointers): Rename from
544         lto_output_ts_common_tree_pointers.
545         (write_ts_vector_tree_pointers): Rename from
546         lto_output_ts_vector_tree_pointers.
547         (write_ts_complex_tree_pointers): Rename from
548         lto_output_ts_complex_tree_pointers.
549         (write_ts_decl_minimal_tree_pointers): Rename from
550         lto_output_ts_decl_minimal_tree_pointers.
551         (write_ts_decl_common_tree_pointers): Rename from
552         lto_output_ts_decl_common_tree_pointers.
553         (write_ts_decl_non_common_tree_pointers): Rename from
554         lto_output_ts_decl_non_common_tree_pointers.
555         (write_ts_decl_with_vis_tree_pointers): Rename from
556         lto_output_ts_decl_with_vis_tree_pointers.
557         (write_ts_field_decl_tree_pointers): Rename from
558         lto_output_ts_field_decl_tree_pointers.
559         (write_ts_function_decl_tree_pointers): Rename from
560         lto_output_ts_function_decl_tree_pointers.
561         (write_ts_type_common_tree_pointers): Rename from
562         lto_output_ts_type_common_tree_pointers.
563         (write_ts_type_non_common_tree_pointers): Rename from
564         lto_output_ts_type_non_common_tree_pointers.
565         (write_ts_list_tree_pointers): Rename from
566         lto_output_ts_list_tree_pointers.
567         (write_ts_vec_tree_pointers): Rename from
568         lto_output_ts_vec_tree_pointers.
569         (write_ts_exp_tree_pointers): Rename from
570         lto_output_ts_exp_tree_pointers.
571         (write_ts_block_tree_pointers): Rename from
572         lto_output_ts_block_tree_pointers.
573         (write_ts_binfo_tree_pointers): Rename from
574         lto_output_ts_binfo_tree_pointers.
575         (write_ts_constructor_tree_pointers): Rename from
576         lto_output_ts_constructor_tree_pointers.
577         (write_ts_target_option): Rename from lto_output_ts_target_option.
578         (write_ts_translation_unit_decl_tree_pointers): Rename from
579         lto_output_ts_translation_unit_decl_tree_pointers.
580         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
581         Rename from lto_streamer_cache_add_to_node_array.
582         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
583         (record_common_node): Rename from lto_record_common_node.
584
585         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
586         declarations.
587         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
588         function.
589         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
590         unused function.
591         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
592         (ipa-reference.o): Likewise.
593         * lto-section-out.c: Include data-streamer.h.
594         * ipa-reference.c: Include data-streamer.h.
595
596 2011-08-12  Nick Clifton  <nickc@redhat.com>
597
598         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
599         * doc/md.texi (cmpstrn): Note that the comparison stops if both
600         fetched bytes are zero.
601         (cmpstr): Likewise.
602         (cmpmem): Note that the comparison does not stop if both of the
603         fetched bytes are zero.
604
605 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
606
607         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
608         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
609         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
610         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
611         to integer_type_node.
612         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
613         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
614         * builtins.c (expand_builtin_in): Ditto.
615         (mathfn_built_in_1): Ditto.
616         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
617         BUILT_IN_IFLOOR.
618         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
619         BUILT_IN_IROUND.
620         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
621         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
622         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
623
624 2011-08-12  Richard Guenther  <rguenther@suse.de>
625
626         * tree-vrp.c (extract_range_from_unary_expr_1): Implement
627         -X as 0 - X.
628
629 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
630
631         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
632
633 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
634
635         * config/arm/arm.c (get_label_padding): New function.
636         (create_fix_barrier, arm_reorg): Use it.
637
638 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
639
640         PR target/49781
641         * config/i386/i386.md (*lea_5_zext): New.
642         (*lea_6_zext): Ditto.
643         * config/i386/predicates.md (const_32bit_mask): New predicate.
644         (lea_address_operand): Reject AND.
645         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
646         const_32bit_mask immediate.
647         (ix86_print_operand_address): Handle AND.
648         (memory_address_length): Ditto.
649
650 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
651             Brian Hackett  <bhackett1024@gmail.com>
652
653         * plugin.def: Add event for finish_decl.
654         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
655         * c-decl.c (finish_decl): Invoke callbacks on above event.
656         * doc/plugins.texi: Document above event.
657
658 2011-08-11  Richard Guenther  <rguenther@suse.de>
659
660         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
661         lookups, make looking through aggregate copies stronger.
662
663 2011-08-11  Richard Henderson  <rth@redhat.com>
664
665         PR bootstrap/50018
666         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
667
668 2011-08-11  Richard Guenther  <rguenther@suse.de>
669
670         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
671         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
672         (vrp_visit_stmt): Likewise.
673
674 2011-08-11  Richard Guenther  <rguenther@suse.de>
675
676         PR middle-end/50040
677         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
678         load of the other piece with TREE_NO_WARNING.
679         * tree-flow.h (warn_uninit): Adjust prototype.
680         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
681         the base variable and the expression that is used separately.
682         Properly query all TREE_NO_WARNING flags.
683         (struct walk_data): Remove.
684         (warn_uninitialized_var): Likewise.
685         (warn_uninitialized_vars): Do not walk gimple pieces but simply
686         look at all SSA uses of the statement.  Handle unused memory
687         separately.
688         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
689
690 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
691
692         * config/rx/rx.md (movsicc): Allow register to register transfers.
693         (*movsicc): Likewise.
694         (*stcc): Restrict this pattern to EQ and NE compares.
695         (*stcc_reg): New pattern.  Works for any comparison but only for
696         register transfers.
697
698 2011-08-11   Diego Novillo  <dnovillo@google.com>
699
700         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
701         Call stream_write_tree instead of output_record_start.
702         (lto_output_ts_binfo_tree_pointers): Likewise.
703
704         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
705         Convert it to a macro.
706         (stream_read_tree): Likewise.
707
708         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
709         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
710
711         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
712         and tree_read_bitfields.
713         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
714         (lto_write_tree): Call it.
715         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
716         * streamer-hooks.h (struct streamer_hooks): Remove fields
717         name, is_streamable and alloc_tree. Update all users.
718         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
719         (lto_materialize_tree): ... here.
720         Handle CALL_EXPR codes.
721         Remove call to lto_streamer_cache_append.
722         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
723         * tree-streamer.h (tree_read_bitfields): Declare.
724
725         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
726         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
727         * tree-streamer.h (stream_read_tree): New.  Replace all calls
728         to lto_input_tree with it.
729         (stream_write_tree): New.  Replace all calls to lto_output_tree,
730         lto_output_tree_ref and lto_output_tree_or_ref with it.
731         * lto-streamer-in.c (lto_read_tree): Inline code from
732         lto_streamer_read_tree.
733         (lto_input_tree): Move from tree-streamer-in.c.
734         * lto-streamer-out.c (lto_output_tree_ref): Make static.
735         Remove handling of NULL values for EXPR.
736         Do not handle EXPRs that are not indexable.
737         (lto_write_tree): Move from tree-streamer-out.c.
738         Inline lto_streamer_write_tree.
739         (lto_output_tree): Move from tree-streamer-out.c.
740         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
741         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
742         (lto_preload_common_nodes): Likewise.
743         Remove assertions and adjustments for nodes
744         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
745         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
746         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
747         * lto-streamer.h (lto_input_tree): Declare.
748         (lto_output_tree_ref): Remove.
749         * streamer-hooks.h (struct streamer_hooks): Remove fields
750         preload_common_nodes, indexable_with_decls_p,
751         pack_value_fields, unpack_value_fields and output_tree_header.
752         Update all users.
753         * tree-streamer-in.c (lto_materialize_tree): Make extern.
754         (lto_input_tree_pointers): Likewise.
755         (lto_read_tree): Move to lto-streamer-in.c.
756         (lto_input_integer_cst): Make extern.
757         (lto_get_pickled_tree): Likewise.
758         (lto_get_builtin_tree): Likewise.
759         (lto_input_tree): Move to lto-streamer-in.c.
760         * tree-streamer-out.c (pack_value_fields): Make extern.
761         (lto_output_tree_or_ref): Remove.  Replace all callers with
762         calls to stream_write_tree.
763         (lto_output_builtin_tree): Make extern.
764         (lto_streamer_write_tree): Inline into lto_write_tree.
765         (lto_output_tree_pointers): Make extern.
766         (lto_output_tree_header): Likewise.
767         (lto_output_integer_cst): Likewise.
768         (lto_write_tree): Move to lto-streamer-out.c.
769         (lto_output_tree): Likewise.
770         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
771         (preload_common_nodes): Likewise.
772         (lto_streamer_cache_create): Call it.
773         * tree-streamer.h: Include streamer-hooks.h.
774         (stream_write_tree): New.
775         (stream_read_tree): New.
776         (lto_input_tree): Remove.
777         (lto_materialize_tree): Declare.
778         (lto_input_tree_pointers): Declare.
779         (lto_get_pickled_tree): Declare.
780         (lto_get_builtin_tree): Declare.
781         (lto_input_integer_cst): Declare.
782         (lto_output_tree_header): Declare.
783         (pack_value_fields): Declare.
784         (lto_output_tree_pointers): Declare.
785         (lto_output_integer_cst): Declare.
786         (lto_output_builtin_tree): Declare.
787
788 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
789
790         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
791         only if producer writes to the register given by regno.
792
793 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
794             Alexander Monakov  <amonakov@ispras.ru>
795
796         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
797         (sched_get_condition_with_rev_uncached): ... this.  Factor out
798         condition caching logic into ...
799         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
800         attempt to use cache for instructions with zero luid.
801         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
802         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
803
804 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
805
806         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
807         get_seqno_for_a_jump.  Update the caller.
808         (get_seqno_by_succs): New.  Use it ...
809         (get_seqno_for_a_jump): ... here to find a seqno if looking at
810         predecessors was not sufficient.
811         (get_seqno_by_preds): Include head in iteration range, exclude insn.
812
813 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
814
815         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
816
817 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
818
819         * sel-sched-ir.h (register_unavailable_p): Declare.
820         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
821         (set_unavailable_target_for_expr): ... here to properly test
822         availability of a register.
823         (speculate_expr): Ditto.
824         * sel-sched.c (substitute_reg_in_expr): Ditto.
825         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
826
827 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
828
829         * sel-sched.c (verify_target_availability): Fix usage of
830         hard_regno_nregs.
831
832 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
833
834         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
835         recognized by cannot_copy_insn_p hook and volatile instructions.
836
837 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
838
839         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
840
841 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
842
843         * doc/md.texi (define_bypass): Say that the instruction names can
844         be filename-style globs.
845         * Makefile.in (FNMATCH_H): Define.
846         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
847         * genattrtab.c: Include fnmatch.h.
848         (bypass_list): Change field name from "insn" to "pattern".
849         (gen_bypass_1): Update accordingly.
850         (process_bypasses): Use fnmatch to check for matches between
851         insn reservations and define_bypasses.
852         * genautomata.c: Include fnmatch.h.
853         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
854         and out_pattern respectively.
855         (gen_bypass, insert_bypass): Update accordingly.
856         (for_each_matching_insn, process_bypass_2, process_bypass_1)
857         (process_bypass): New functions.
858         (process_decls): Use process_bypass.  Update after field name changes.
859
860 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
861
862         PR target/49687
863         * config/avr/avr.md (smulqi3_highpart): New insn.
864         (umulqi3_highpart): New insn.
865         (*subqi3.ashiftrt7): New insn.
866         (smulhi3_highpart): New expander.
867         (umulhi3_highpart): Nex expander.
868         (*smulhi3_highpart_call): New insn.
869         (*umulhi3_highpart_call): New insn.
870         (extend_u): New code attribute.
871         (extend_prefix): Rename code attribute to extend_su.
872         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
873         widening QI/HI multiply.
874
875 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
876
877         PR tree-optimization/50039
878         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
879         that DEF_STMT has a stmt_vec_info.
880
881 2011-08-10  Richard Guenther  <rguenther@suse.de>
882
883         * tree.h (can_trust_pointer_alignment): Remove.
884         * builtins.c (can_trust_pointer_alignment): Remove.
885
886 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
887
888         * c-typeck.c (scalar_to_vector): New function. Try scalar to
889         vector conversion.
890         (stv_conv): New enum for scalar_to_vector return type.
891         (build_binary_op): Adjust.
892         * doc/extend.texi: Description of scalar to vector expansion.
893
894 2011-08-10  Richard Guenther  <rguenther@suse.de>
895
896         * tree.h (get_pointer_alignment): Remove max-align argument.
897         (get_object_alignment): Likewise.
898         * builtins.c (get_object_alignment_1): Adjust.
899         (get_object_alignment): Remove max-align argument.
900         (get_pointer_alignment): Likewise.
901         (expand_builtin_strlen): Adjust.
902         (expand_builtin_memcpy): Likewise.
903         (expand_builtin_mempcpy_args): Likewise.
904         (expand_builtin_strncpy): Likewise.
905         (expand_builtin_memset_args): Likewise.
906         (expand_builtin_memcmp): Likewise.
907         (expand_builtin_strcmp): Likewise.
908         (expand_builtin_strncmp): Likewise.
909         (get_builtin_sync_mem): Likewise.
910         (fold_builtin_memset): Likewise.
911         (fold_builtin_memory_op): Likewise.
912         (expand_builtin_memory_chk): Likewise.
913         * emit-rtl.c (get_mem_align_offset): Likewise.
914         (set_mem_attributes_minus_bitpos): Likewise.
915         * expr.c (expand_assignment): Likewise.
916         (expand_expr_real_1): Likewise.
917         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
918         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
919         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
920         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
921         * value-prof.c (gimple_stringops_transform): Likewise.
922
923 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
924
925         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
926         * doc/tm.texi: Regenerate.
927
928 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
929
930         PR target/29560
931         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
932         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
933         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
934         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
935         shift target is unused.
936
937 2011-08-10  Richard Guenther  <rguenther@suse.de>
938
939         PR tree-optimization/49937
940         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
941         using get_object_alignment_1.
942
943 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
944
945         * config/i386/i386.c (ix86_emit_i387_round): New function.
946         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
947         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
948         Use ix86_emit_i387_round to expand round function for i387 math.
949         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
950         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
951
952 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
953
954         * config/sync.c: Move to ../libgcc.
955         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
956         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
957         Remove.
958
959 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
960
961         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
962         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
963         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
964         Change 'from' and 'to' arguments type to reg_class_t.
965         (TARGET_REGISTER_MOVE_COST): Define.
966
967 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
968
969         PR target/50026
970         Revert:
971         PR rtl-optimization/49990
972         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
973         ignore classes which can not change mode.
974         (find_costs_and_classes): Ditto.
975
976 2011-08-09  Richard Guenther  <rguenther@suse.de>
977
978         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
979         information for ranges with only negative values.
980         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
981         BIT_AND_EXPR handling to handle ranges with negative values.
982
983 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
984
985         * config/i386/i386.c: Remove traling spaces.
986         * config/i386/sse.md: Likewise.
987         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
988         (*fma_fmsub_<mode>): Likewise.
989         (*fma_fnmadd_<mode>): Likewise.
990         (*fma_fnmsub_<mode>): Likewise.
991
992 2011-08-09  Nick Clifton  <nickc@redhat.com>
993
994         * config/rx/rx.md: Disable extender peepholes at -O3.
995
996 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
997
998         PR target/49781
999         * config/i386/i386.md (reload_noff_load): New.
1000         (reload_noff_store): Ditto.
1001         * config/i386/i386.c (ix86_secondary_reload): Use
1002         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
1003         double-word moves from/to non-offsetable addresses instead of
1004         generating XMM temporary.
1005
1006 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
1007
1008         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
1009
1010 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
1011
1012         PR tree-optimization/50014
1013         * tree-vect-loop.c (vectorizable_reduction): Get def type before
1014         calling vect_get_vec_def_for_stmt_copy ().
1015
1016 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
1017
1018         PR rtl-optimization/49990
1019         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
1020         ignore classes which can not change mode.
1021         (find_costs_and_classes): Ditto.
1022
1023 2011-08-08  Richard Henderson  <rth@redhat.com>
1024
1025         PR middle-end/49990
1026         * config/i386/i386.c (ix86_expand_prologue): Call
1027         for SEH target gen_prologue_use instead of gen_blockage
1028         at prologue's end.
1029
1030 2011-08-08  Martin Jambor  <mjambor@suse.cz>
1031
1032         PR middle-end/49923
1033         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
1034         memory alignment.
1035
1036 2011-08-08   Diego Novillo  <dnovillo@google.com>
1037
1038         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
1039         (DATA_STREAMER_H): New.
1040         (GIMPLE_STREAMER_H): New.
1041         (TREE_STREAMER_H): New.
1042         (STREAMER_HOOKS_H): New.
1043         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
1044         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
1045         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
1046         (data-streamer.o): New.
1047         (data-streamer-in.o): New.
1048         (data-streamer-out.o): New.
1049         (gimple-streamer-in.o): New.
1050         (gimple-streamer-out.o): New.
1051         (streamer-hooks.o): New.
1052         (tree-streamer.o): New.
1053         (tree-streamer-in.o): New.
1054         (tree-streamer-out.o): New.
1055         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
1056         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
1057         GIMPLE_STREAMER_H and TREE_STREAMER_H.
1058         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
1059         GIMPLE_STREAMER_H and TREE_STREAMER_H.
1060         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
1061         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
1062         (ipa-inline-analysis.o): Likewise.
1063         (ipa-pure-const.o): Likewise.
1064         * data-streamer-in.c: New.
1065         * data-streamer-out.c: New.
1066         * data-streamer.c: New.
1067         * data-streamer.h: New.
1068         * gimple-streamer-in.c: New.
1069         * gimple-streamer-out.c: New.
1070         * gimple-streamer.h: New.
1071         * ipa-inline-analysis.c: Include data-streamer.h.
1072         * ipa-prop.c: Include data-streamer.h.
1073         * ipa-pure-const.c: Include data-streamer.h.
1074         * lto-cgraph.c: Include data-streamer.h.
1075         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
1076         (lto_input_widest_uint_uleb128): Likewise.
1077         (lto_input_sleb128): Likewise.
1078         (bp_unpack_var_len_unsigned): Likewise.
1079         (bp_unpack_var_len_int): Likewise.
1080         * lto-section-out.c (lto_output_uleb128_stream): Move to
1081         data-streamer-out.c.
1082         (lto_output_widest_uint_uleb128_stream): Likewise.
1083         (lto_output_sleb128_stream): Likewise.
1084         (bp_pack_var_len_unsigned): Likewise.
1085         (bp_pack_var_len_int): Likewise.
1086         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
1087         (struct string_slot): Remove.  Update all users.
1088         (lto_tag_check_set): Make extern.
1089         (lto_tag_check_range): Move to lto-streamer.h.
1090         (lto_tag_check): Likewise.
1091         (hash_string_slot_node): Remove.  Update all users.
1092         (eq_string_slot_node): Remove.  Update all users.
1093         (string_for_index): Move to data-streamer-in.c
1094         (input_string_internal): Likewise.
1095         (input_string_cst): Move to tree-streamer-in.c.
1096         (input_identifier): Likewise.
1097         (lto_input_string): Move to data-streamer-in.c
1098         (input_record_start): Move to data-streamer.h
1099         (canon_file_name): Use new definition of struct string_slot
1100         from data-streamer.h.  Set S_SLOT.LEN.
1101         (lto_input_location): Make extern.
1102         (lto_input_chain): Move to tree-streamer-in.c.
1103         (lto_init_eh): Make extern.
1104         (input_phi): Move to gimple-streamer-in.c.
1105         (input_gimple_stmt): Likewise.
1106         (input_bb): Likewise.
1107         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
1108         (unpack_ts_real_cst_value_fields): Likewise.
1109         (unpack_ts_fixed_cst_value_fields): Likewise.
1110         (unpack_ts_decl_common_value_fields): Likewise.
1111         (unpack_ts_decl_wrtl_value_fields): Likewise.
1112         (unpack_ts_decl_with_vis_value_fields): Likewise.
1113         (unpack_ts_function_decl_value_fields): Likewise.
1114         (unpack_ts_type_common_value_fields): Likewise.
1115         (unpack_ts_block_value_fields): Likewise.
1116         (unpack_ts_translation_unit_decl_value_fields): Likewise.
1117         (unpack_value_fields): Likewise.
1118         (lto_materialize_tree): Likewise.
1119         (lto_input_ts_common_tree_pointers): Likewise.
1120         (lto_input_ts_vector_tree_pointers): Likewise.
1121         (lto_input_ts_complex_tree_pointers): Likewise.
1122         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
1123         (lto_input_ts_decl_common_tree_pointers): Likewise.
1124         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
1125         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
1126         (lto_input_ts_field_decl_tree_pointers): Likewise.
1127         (lto_input_ts_function_decl_tree_pointers): Likewise.
1128         (lto_input_ts_type_common_tree_pointers): Likewise.
1129         (lto_input_ts_type_non_common_tree_pointers): Likewise.
1130         (lto_input_ts_list_tree_pointers): Likewise.
1131         (lto_input_ts_vec_tree_pointers): Likewise.
1132         (lto_input_ts_exp_tree_pointers): Likewise.
1133         (lto_input_ts_block_tree_pointers): Likewise.
1134         (lto_input_ts_binfo_tree_pointers): Likewise.
1135         (lto_input_ts_constructor_tree_pointers): Likewise.
1136         (lto_input_ts_target_option): Likewise.
1137         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
1138         (lto_input_tree_pointers): Likewise.
1139         (lto_get_pickled_tree): Likewise.
1140         (lto_get_builtin_tree): Likewise.
1141         (lto_read_tree): Likewise.
1142         (lto_input_integer_cst): Likewise.
1143         (lto_input_tree): Likewise.
1144         * lto-streamer-out.c: Include data-streamer.h,
1145         gimple-streamer.h and streamer-hooks.h.
1146         (struct string_slot): Move to data-streamer.h.
1147         (hash_string_slot_node): Likewise.
1148         (eq_string_slot_node): Likewise.
1149         (lto_string_index): Move to data-streamer-out.c.
1150         (lto_output_string_with_length): Likewise.
1151         (lto_output_string): Likewise.
1152         (output_string_cst): Move to tree-streamer-out.c.
1153         (output_identifier): Likewise.
1154         (output_zero): Move to data-streamer-out.c
1155         (output_uleb128): Likewise.
1156         (output_sleb128): Likewise.
1157         (output_record_start): Move to data-streamer.h
1158         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
1159         (pack_ts_real_cst_value_fields): Likewise.
1160         (pack_ts_fixed_cst_value_fields): Likewise.
1161         (pack_ts_decl_common_value_fields): Likewise.
1162         (pack_ts_decl_wrtl_value_fields): Likewise.
1163         (pack_ts_decl_with_vis_value_fields): Likewise.
1164         (pack_ts_function_decl_value_fields): Likewise.
1165         (pack_ts_type_common_value_fields): Likewise.
1166         (pack_ts_block_value_fields): Likewise.
1167         (pack_ts_translation_unit_decl_value_fields): Likewise.
1168         (pack_value_fields): Likewise.
1169         (lto_output_chain): Likewise.
1170         (lto_output_ts_common_tree_pointers): Likewise.
1171         (lto_output_ts_vector_tree_pointers): Likewise.
1172         (lto_output_ts_complex_tree_pointers): Likewise.
1173         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
1174         (lto_output_ts_decl_common_tree_pointers): Likewise.
1175         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
1176         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
1177         (lto_output_ts_field_decl_tree_pointers): Likewise.
1178         (lto_output_ts_function_decl_tree_pointers): Likewise.
1179         (lto_output_ts_type_common_tree_pointers): Likewise.
1180         (lto_output_ts_type_non_common_tree_pointers): Likewise.
1181         (lto_output_ts_list_tree_pointers): Likewise.
1182         (lto_output_ts_vec_tree_pointers): Likewise.
1183         (lto_output_ts_exp_tree_pointers): Likewise.
1184         (lto_output_ts_block_tree_pointers): Likewise.
1185         (lto_output_ts_binfo_tree_pointers): Likewise.
1186         (lto_output_ts_constructor_tree_pointers): Likewise.
1187         (lto_output_ts_target_option): Likewise.
1188         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
1189         (lto_output_tree_pointers): Likewise.
1190         (lto_output_tree_header): Likewise.
1191         (lto_output_builtin_tree): Likewise.
1192         (lto_write_tree): Likewise.
1193         (lto_output_integer_cst): Likewise.
1194         (lto_output_tree): Likewise.
1195         (output_phi): Move to gimple-streamer-out.c.
1196         (output_gimple_stmt): Likewise.
1197         (output_bb): Likewise.
1198         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
1199         (streamer_hooks): Move to streamer-hooks.c.
1200         (check_handled_ts_structures): Move to tree-streamer.c
1201         (lto_streamer_cache_add_to_node_array): Likewise.
1202         (lto_streamer_cache_insert_1): Likewise.
1203         (lto_streamer_cache_insert): Likewise.
1204         (lto_streamer_cache_insert_at): Likewise.
1205         (lto_streamer_cache_append): Likewise.
1206         (lto_streamer_cache_lookup): Likewise.
1207         (lto_streamer_cache_get): Likewise.
1208         (lto_record_common_node): Likewise.
1209         (lto_preload_common_nodes): Likewise.
1210         (lto_streamer_cache_create): Likewise.
1211         (lto_streamer_cache_delete): Likewise.
1212         (streamer_hooks_init): Move to streamer-hooks.c.
1213         * lto-streamer.h: Include diagnostic.h
1214         (struct output_block, struct lto_input_block,
1215         struct data_in, struct bitpack_d): Remove forward declarations.
1216         (struct bitpack_d): Move to data-streamer.h.
1217         (struct lto_streamer_cache_d): Move to tree-streamer.h.
1218         (struct streamer_hooks): Move to streamer-hooks.h.
1219         (bp_pack_var_len_unsigned): Move to data-streamer.h.
1220         (bp_pack_var_len_int): Likewise.
1221         (bp_unpack_var_len_unsigned): Likewise.
1222         (bp_unpack_var_len_int): Likewise.
1223         (lto_input_location): Declare.
1224         (lto_tag_check_set): Declare.
1225         (lto_init_eh): Declare.
1226         (lto_output_tree_ref): Declare.
1227         (lto_output_location): Declare.
1228         (bitpack_create): Move to data-streamer.h.
1229         (bp_pack_value): Likewise.
1230         (lto_output_bitpack): Likewise.
1231         (lto_input_bitpack): Likewise.
1232         (bp_unpack_value): Likewise.
1233         (lto_output_1_stream): Likewise.
1234         (lto_input_1_unsigned): Likewise.
1235         (lto_output_int_in_range): Likewise.
1236         (lto_input_int_in_range): Likewise.
1237         (bp_pack_int_in_range): Likewise.
1238         (bp_unpack_int_in_range): Likewise.
1239         (lto_output_enum): Likewise.
1240         (lto_input_enum): Likewise.
1241         (bp_pack_enum): Likewise.
1242         (bp_unpack_enum): Likewise.
1243         * streamer-hooks.c: New.
1244         * streamer-hooks.h: New.
1245         * tree-streamer-in.c: New.
1246         * tree-streamer-out.c: New.
1247         * tree-streamer.c: New.
1248         * tree-streamer.h: New.
1249
1250 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1251
1252         * gthr-posix95.h: Remove.
1253         * gthr.h [_PTHREADS95]: Remove.
1254         * configure.ac (enable_threads): Remove posix95.
1255         * configure: Regenerate.
1256         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
1257
1258 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
1259
1260         PR target/49781
1261         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
1262         SImode addresses.
1263         (ix86_print_operand_address): Handle zero-extended addresses.
1264         (memory_address_length): Add length of addr32 prefix for
1265         zero-extended addresses.
1266         (ix86_secondary_reload): Handle moves to/from double-word general
1267         registers from/to zero-extended addresses.
1268         * config/i386/predicates.md (lea_address_operand): Reject
1269         zero-extended operands.
1270
1271 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
1272
1273         PR other/48007
1274         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
1275
1276         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
1277         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
1278
1279         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
1280         (_Unwind_Context_Reg_Val): Likewise.
1281         (_Unwind_Get_Unwind_Word): Likewise.
1282         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
1283         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
1284         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
1285         for EXTENDED_CONTEXT_BIT.
1286         (__frame_state_for): Likewise.
1287         (uw_init_context_1): Likewise.
1288         (_Unwind_GetGR): Updated.
1289         (_Unwind_SetGR): Likewise.
1290         (_Unwind_GetGRPtr): Likewise.
1291         (_Unwind_SetGRPtr): Likewise.
1292         (_Unwind_SetGRValue): Likewise.
1293         (_Unwind_GRByValue): Likewise.
1294         (uw_install_context_1): Likewise.
1295
1296         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
1297         ASSUME_EXTENDED_UNWIND_CONTEXT.
1298         * doc/tm.texi: Regenerated.
1299
1300 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1301
1302         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
1303
1304 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1305
1306         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
1307         Linux/GNU-specific.
1308         (DEC Alpha Options, -mtune): Likewise.
1309         (MIPS Options, -march): native is supported on IRIX.
1310
1311 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1312
1313         * config/sparc/driver-sparc.c: New file.
1314         * config/sparc/x-sparc: New file.
1315         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
1316         * config/sparc/sparc.opt (native): New value for enum processor_type.
1317         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
1318         * config/sparc/sparc.c (sparc_option_override): Abort if
1319         PROCESSOR_NATIVE gets here.
1320         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
1321         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
1322         DRIVER_SELF_SPECS): Define.
1323         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
1324         (SPARC Options, -mtune): Likewise.
1325         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
1326         Substitute result.
1327         * configure: Regenerate.
1328         * Makefile.in (EXTRA_GCC_LIBS): Set.
1329         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
1330         (cpp$(exeext)): Likewise.
1331
1332 2011-08-08  Richard Guenther  <rguenther@suse.de>
1333
1334         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
1335         split out from ...
1336         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
1337         by composition.
1338
1339 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
1340
1341         PR tree-optimization/50005
1342         * ipa-inline-analysis (remap_predicate): Add cast to
1343         silence signed/unsigned comparison warning.
1344
1345 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
1346
1347         * modulo-sched.c (get_sched_window): Use a table for the debug output.
1348         Print the current ii.
1349         (sms_schedule_by_order): Reduce whitespace in dump line.
1350
1351 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
1352
1353         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
1354         and one loop for successors.  Fix upper bound of memory range.
1355
1356 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
1357
1358         PR target/50001
1359         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
1360         (TARGET_INSTANTIATE_DECLS): New define.
1361
1362 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
1363             Mikael Morin   <mikael.morin@sfr.fr>
1364
1365         * Makefile.in (INCLUDES_FOR_TARGET): New.
1366         (LIBGCC2_CFLAGS): Use it.
1367         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
1368
1369 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
1370
1371         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
1372         frame->save_regs_using_mov calculation.
1373
1374 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
1375
1376         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
1377         * config/i386/sse.md (castmode): New mode attribute.
1378         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
1379         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
1380
1381 2011-08-05  Jan Hubicka  <jh@suse.cz>
1382
1383         PR middle-end/49494
1384         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
1385
1386 2011-08-05  Jan Hubicka  <jh@suse.cz>
1387
1388         PR middle-end/49500
1389         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
1390         handle aliases.
1391         (create_emultls_var):New function.
1392         (ipa_lower_emutls): Handle aliases correctly.
1393
1394 2011-08-05  Jan Hubicka  <jh@suse.cz>
1395
1396         PR middle-end/49735
1397         * ipa-inline.c (recursive_inlining): Look through aliases.
1398
1399 2011-08-05  Jason Merrill  <jason@redhat.com>
1400
1401         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
1402         declarations to beginning of function.
1403
1404 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
1405
1406         PR rtl-optimization/49900
1407         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
1408         ensure basic blocks stay in the same order.
1409
1410 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
1411
1412         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
1413         store_bit_field.
1414         (s390_expand_atomic): Same.
1415
1416 2011-08-05  Richard Henderson  <rth@redhat.com>
1417
1418         PR rtl-opt/49977
1419         * dwarf2cfi.c (scan_insn_after): Split out of ...
1420         (scan_trace): ... here.  Correctly place notes wrt sequences.
1421
1422 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1423             Richard Henderson  <rth@redhat.com>
1424
1425         PR rtl-opt/49982
1426         * expr.c (fixup_args_size_notes): Look through no-op moves.
1427
1428 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1429
1430         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
1431         of "m" for operand 0.  Add type and mode attribute.
1432         (*pushxf_nointeger"): Use "<" constraint for operand 0.
1433         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
1434         constraint instead of "o" for opreand 1.
1435         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
1436         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
1437         operand 0, alternative 4.
1438         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
1439
1440 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1441
1442         * config/i386/predicates.md (lea_address_operand): Rename from
1443         no_seg_address_operand.
1444         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
1445         (*lea_1_zext): Ditto.
1446         (*lea_2): Ditto.
1447         (*lea_2_zext): Ditto.
1448
1449 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
1450
1451         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
1452         parts.base and parts.index.
1453         * config/i386/predicates.md (aligned_operand): Ditto.
1454         (cmpxchg8b_pic_memory_operand): Ditto.
1455
1456 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1457
1458         * config/soft-fp: Move to ../libgcc.
1459         * Makefile.in (SFP_MACHINE): Remove.
1460         (libgcc-support): Remove $(SFP_MACHINE) dependency.
1461         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
1462         * config/arm/t-arm-softfp: Move to
1463         ../libgcc/config/arm/t-softfp.
1464         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
1465         * config/c6x/t-c6x-softfp: Remove.
1466         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
1467         * config/i386/t-fprules-softfp: Move to
1468         ../libgcc/config/t-softfp-tf.
1469         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
1470         * config/ia64/t-fprules-softfp: Remove.
1471         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
1472         * config/lm32/t-fprules-softfp: Remove.
1473         * config/moxie/sfp-machine.h: Remove.
1474         * config/moxie/t-moxie-softfp: Remove.
1475         * config/rs6000/darwin-ldouble-format: Move to
1476         ../libgcc/config/rs6000/ibm-ldouble-format.
1477         * config/rs6000/darwin-ldouble.c: Move to
1478         ../libgcc/config/rs6000/ibm-ldouble.c
1479         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
1480         * config/rs6000/libgcc-ppc64.ver: Likewise.
1481         * config/rs6000/sfp-machine.h: Likewise.
1482         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
1483         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
1484         (LIB2FUNCS_EXTRA): Remove.
1485         (TARGET_LIBGCC2_CFLAGS): Remove.
1486         * config/rs6000/t-aix52: Likewise
1487         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1488         $(srcdir)/config/rs6000/darwin-ldouble.c.
1489         (SHLIB_MAPFILES): Remove.
1490         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
1491         $(srcdir)/config/rs6000/darwin-ldouble.c.
1492         * config/rs6000/t-fprules-softfp: Move to
1493         ../libgcc/config/t-softfp-sfdf.
1494         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
1495         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
1496         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
1497         $(srcdir)/config/rs6000/darwin-ldouble.c.
1498         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
1499         * config/score/t-score-softfp: Remove.
1500         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
1501         soft-fp/t-softfp from tmake_file.
1502         (arm*-*-uclinux*): Likewise.
1503         (arm*-*-ecos-elf): Likewise.
1504         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
1505         (arm*-*-rtems*): Likewise.
1506         (arm*-*-elf): Likewise.
1507         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
1508         tmake_file.
1509         (moxie-*-uclinux*): Likewise.
1510         (moxie-*-rtems*): Likewise.
1511         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
1512         tmake_file.
1513         (lm32-*-rtems*): Likewise.
1514         (lm32-*-uclinux*): Likewise.
1515         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
1516         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1517         (powerpc-*-linux*, powerpc64-*-linux*): Remove
1518         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
1519         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
1520         tmake_file.
1521         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
1522         tmake_file.
1523         (tic6x-*-uclinux): Likewise.
1524         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
1525         soft-fp/t-softfp from tmake_file.
1526         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
1527         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
1528         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
1529         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
1530         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
1531
1532 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1533
1534         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
1535         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
1536         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
1537         TPBIT, TPBIT_FUNCS.
1538         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
1539         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
1540         Remove.
1541         * config/arm/t-vxworks: Likewise.
1542         * config/arm/t-wince-pe: Likewise.
1543         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
1544         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1545         * config/bfin/t-bfin-elf: Likewise.
1546         * config/bfin/t-bfin-linux: Likewise.
1547         * config/bfin/t-bfin-uclinux: Likewise.
1548         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
1549         Remove.
1550         * config/fr30/t-fr30: Likewise.
1551         * config/frv/t-frv: Likewise.
1552         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
1553         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1554         * config/m32c/t-m32c: Likewise.
1555         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
1556         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1557         * config/mcore/t-mcore: Likewise.
1558         * config/mep/t-mep: Likewise.
1559         * config/microblaze/t-microblaze: Likewise.
1560         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
1561         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1562         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
1563         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1564         * config/mn10300/t-linux: Remove.
1565         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1566         * config/pdp11/t-pdp11: Likewise.
1567         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
1568         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
1569         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1570         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
1571         * config/rs6000/t-aix52: Likewise.
1572         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
1573         $(srcdir)/config/rs6000/ppc64-fp.c.
1574         * config/rs6000/t-fprules-fpbit: Remove.
1575         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
1576         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1577         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
1578         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1579         * config/sparc/t-elf: Likewise.
1580         * config/sparc/t-leon: Likewise.
1581         * config/sparc/t-leon3: Likewise.
1582         * config/spu/t-spu-elf: Likewise.
1583         (DPBIT_FUNCS): Remove.
1584         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
1585         * config/v850/t-v850: Likewise.
1586         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
1587         (avr-*-*): Likewise.
1588         (h8300-*-rtems*): Set libgcc_tm_file.
1589         (h8300-*-elf*): Likewise.
1590         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
1591         tmake_file.
1592         (powerpc-*-eabisim*): Likewise.
1593         (powerpc-*-elf*): Likewise.
1594         (powerpc-*-eabialtivec*): Likewise.
1595         (powerpc-xilinx-eabi*): Likewise.
1596         (powerpc-*-eabi*): Likewise.
1597         (powerpc-*-rtems*): Likewise.
1598         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
1599         (powerpcle-*-elf*): Likewise.
1600         (powerpcle-*-eabisim*): Likewise.
1601         (powerpcle-*-eabi*): Likewise.
1602         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
1603         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
1604         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
1605         Remove.
1606
1607 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1608
1609         * Makefile.in (UNWIND_H): Remove.
1610         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
1611         ../libgcc/Makefile.in.
1612         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
1613         (LIBUNWINDDEP): Remove.
1614         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
1615         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
1616         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
1617         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
1618         Don't copy $(UNWIND_H).
1619         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
1620         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
1621         * aclocal.m4: Regenerate.
1622         * configure: Regenerate.
1623         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
1624         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
1625         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
1626         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
1627         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
1628         * config/arm/libunwind.S, config/arm/pr-support.c,
1629         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
1630         ../libgcc/config/arm.
1631         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
1632         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
1633         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
1634         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
1635         ($(T)frvend$(objext)): Likewise.
1636         * config/ia64/t-glibc (LIB2ADDEH): Remove.
1637         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
1638         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
1639         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
1640         ../libgcc/config/ia64.
1641         * config/ia64/t-hpux (LIB2ADDEH): Remove.
1642         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
1643         * config/ia64/t-vms (LIB2ADDEH): Remove.
1644         * config/ia64/vms.h (UNW_IVMS_MODE,
1645         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
1646         * config/picochip/t-picochip (LIB2ADDEH): Remove.
1647         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
1648         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
1649         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
1650         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
1651         $(srcdir)/../libgcc to refer to unwinder sources.
1652         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
1653         * config/t-darwin (LIB2ADDEH): Remove.
1654         * config/t-freebsd (LIB2ADDEH): Remove.
1655         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
1656         * config/t-libunwind-elf: Move to ../libgcc/config.
1657         * config/t-linux (LIB2ADDEH): Remove.
1658         * config/t-sol2 (LIB2ADDEH): Remove.
1659         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
1660         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
1661
1662 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
1663
1664         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
1665
1666         * doc/invoke.texi: Document core-avx-i.
1667
1668 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1669
1670         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
1671
1672 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
1673
1674         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
1675         result of multiple results reduction when extracting the final
1676         value using scalar code.
1677
1678 2011-08-05  Richard Guenther  <rguenther@suse.de>
1679
1680         PR tree-optimization/49984
1681         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
1682
1683 2011-08-05  Richard Guenther  <rguenther@suse.de>
1684
1685         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
1686         return true for constant integer ranges.
1687         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
1688         BIT_IOR_EXPR handling.
1689
1690 2011-08-04  Kai Tietz  <ktietz@redhat.com>
1691
1692         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
1693         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
1694
1695 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
1696
1697         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
1698         pattern def statement, and its access macro.
1699         (NUM_PATTERNS): Set to 5.
1700         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
1701         pattern def statement.
1702         (vect_transform_loop): Likewise.
1703         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
1704         function vect_recog_over_widening_pattern ().
1705         (vect_operation_fits_smaller_type): New function.
1706         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
1707         Likewise.
1708         (vect_pattern_recog_1): Move the code that marks pattern
1709         statements to vect_mark_pattern_stmts (), and call it.  Update
1710         documentation.
1711         * tree-vect-stmts.c (vect_supportable_shift): New function.
1712         (vect_analyze_stmt): Handle pattern def statement.
1713         (new_stmt_vec_info): Initialize pattern def statement.
1714
1715 2011-08-04  Richard Henderson  <rth@redhat.com>
1716
1717         PR target/49964
1718         * config/i386/i386.c (ix86_expand_call): Don't create nested
1719         PARALLELs for TARGET_VZEROUPPER.
1720         (ix86_split_call_vzeroupper): Fix extraction of the original call.
1721         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
1722         recognize nested PARALLELs.
1723         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
1724         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
1725         *sibcall_value_pop_vzeroupper): Likewise.
1726
1727 2011-08-04  Richard Henderson  <rth@redhat.com>
1728
1729         PR middle-end/49968
1730         * calls.c (expand_call): Use fixup_args_size_notes for
1731         emit_stack_restore.
1732         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
1733         in non-standard modes.
1734
1735 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1736
1737         * gcc.c (self_spec): New variable.
1738         (static_specs): Add self_spec.
1739         (main): Call do_self_spec on "self_spec" specs after reading
1740         user specs files.  Move compare_debug handling right after that.
1741
1742 2011-08-04  Richard Guenther  <rguenther@suse.de>
1743
1744         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
1745         (value_range_nonnegative_p): New function.
1746         (ssa_name_nonnegative_p): Use it.
1747         (value_range_constant_singleton): New function.
1748         (op_with_constant_singleton_value_range): Use it.
1749         (extract_range_from_binary_expr_1): New function, split out from ...
1750         (extract_range_from_binary_expr): ... this.  Remove fallback
1751         constant folding done here.
1752
1753 2011-08-04  Richard Guenther  <rguenther@suse.de>
1754
1755         PR tree-optimization/49806
1756         * tree-vrp.c (op_with_boolean_value_range_p): New function.
1757         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
1758         a new statement for a final conversion to bool.
1759
1760 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
1761
1762         * gengtype-state.c: Include "bconfig.h" if
1763         GENERATOR_FILE is defined, "config.h" otherwise.
1764         * gengtype.c: Likewise.
1765         * gengtype-lex.l: Likewise.
1766         * gengtype-parse.c: Likewise.
1767         * Makefile.in (gengtype-lex.o-warn): New variable.
1768         (plugin_resourcesdir): Likewise.
1769         (plugin_bindir): Likewise.
1770         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
1771         (MOSTLYCLEANFILES): Add gengtype$(exeext).
1772         (native): Depend on gengtype$(exeext) is $enable_plugin
1773         is set to "yes".
1774         (gtype.state): Depend on s-gtype. Use temporary file.
1775         (gengtype-lex.o): New rule.
1776         (gengtype-parse.o): Likewise.
1777         (gengtype-state.o): Likewise.
1778         (gengtype$(exeext)): Likewise.
1779         (install-gengtype): Likewise.
1780         (gengtype.o): Likewise.
1781         (build/gengtype.o): Depend on version.h.
1782         (build/gengtype-state): Depend on double-int.h, version.h,
1783         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
1784         (install-plugin): Depend on install-gengtype.
1785
1786 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
1787
1788         PR middle-end/49905
1789         * tree.h (init_attributes): New prototype.
1790         * attribs.c (init_attributes): No longer static.
1791
1792 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1793
1794         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
1795         maybe_suffix.
1796
1797 2011-08-03   David Li  <davidxl@google.com>
1798
1799         * tree-optimize.c (execute_fixup_cfg): Fix up entry
1800         outgoing edge counts after inlining.
1801
1802 2011-08-03   David Li  <davidxl@google.com>
1803
1804         * profile.c (compute_branch_probabilities): Compute
1805         function frequency after profile annotation.
1806
1807 2011-08-04  Alan Modra  <amodra@gmail.com>
1808
1809         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
1810         use_backchain_to_restore_sp initialisation.
1811         (rs6000_legitimate_offset_address_p): Simplify offset test.
1812
1813 2011-08-03  Richard Henderson  <rth@redhat.com>
1814
1815         * config/spu/spu.md: Use define_c_enum instead of define_constants.
1816         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
1817         (UNSPECV_NOP): New.
1818
1819 2011-08-03  Richard Henderson  <rth@redhat.com>
1820
1821         PR target/34888
1822         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
1823
1824 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
1825
1826         PR tree-optimization/49948
1827         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
1828
1829 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
1830
1831         * config/m32c/m32c.c (class_sizes): Remove.
1832         (reduce_class): Change arguments and return type to reg_class_t.
1833         Change type cc var to HARD_REG_SET. Change type best var to
1834         reg_class_t. Change type best_size var to unsigned int. Remove
1835         initialization class_sizes var. Use reg_class_size array instead
1836         of class_sizes. Use reg_class_contents array instead
1837         of class_contents.
1838
1839 2011-08-03  Richard Guenther  <rguenther@suse.de>
1840
1841         PR middle-end/49958
1842         * fold-const.c (fold_binary_loc): Only associate
1843         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
1844         overflow wraps.
1845
1846 2011-08-03  Alan Modra  <amodra@gmail.com>
1847
1848         PR rtl-optimization/49941
1849         * jump.c (mark_jump_label): Comment.
1850         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
1851         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
1852         (mark_used_flags): Don't mark RETURN.
1853
1854 2011-08-03  Richard Guenther  <rguenther@suse.de>
1855
1856         PR tree-optimization/49938
1857         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
1858         deal with a POLYNOMIAL_CHREC.
1859
1860 2011-08-03  Revital Eres  <revital.eres@linaro.org>
1861
1862         * modulo-sched.c (calculate_stage_count,
1863         calculate_must_precede_follow, get_sched_window,
1864         try_scheduling_node_in_cycle, remove_node_from_ps): Add
1865         declaration.
1866         (update_node_sched_params, set_must_precede_follow, optimize_sc):
1867         New functions.
1868         (reset_sched_times): Call update_node_sched_params.
1869         (sms_schedule): Call optimize_sc.
1870         (get_sched_window): Change function arguments.
1871         (sms_schedule_by_order): Update call to get_sched_window.
1872         Call set_must_precede_follow.
1873         (calculate_stage_count): Add function argument.
1874
1875 2011-08-02  Richard Henderson  <rth@redhat.com>
1876
1877         PR target/49864
1878         PR target/49879
1879         * reg-notes.def (REG_ARGS_SIZE): New.
1880         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
1881         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
1882         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
1883         different stack levels.
1884         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
1885         (maybe_move_args_size_note): New.
1886         (combine_stack_adjustments_for_block): Use it.
1887         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
1888         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
1889         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
1890         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
1891         (cur_cfa): New.
1892         (queued_args_size): Remove.
1893         (add_cfi_args_size): Assert size is non-negative.
1894         (stack_adjust_offset, dwarf2out_args_size): Remove.
1895         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
1896         (notice_args_size, notice_eh_throw): New.
1897         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
1898         (dwarf2out_frame_debug_adjust_cfa): Likewise.
1899         (dwarf2out_frame_debug_cfa_offset): Likewise.
1900         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
1901         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
1902         (change_cfi_row): Don't emit args_size.
1903         (maybe_record_trace_start_abnormal): Split out from ...
1904         (maybe_record_trace_start): Here.  Set args_size_undefined.
1905         (create_trace_edges): Update to match.
1906         (scan_trace): Handle REG_ARGS_SIZE.
1907         (connect_traces): Connect args_size between EH insns.
1908         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
1909         * explow.c (suppress_reg_args_size): New.
1910         (adjust_stack_1): Split out from ...
1911         (adjust_stack): ... here.
1912         (anti_adjust_stack): Use it.
1913         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
1914         * expr.c (mem_autoinc_base): New.
1915         (fixup_args_size_notes): New.
1916         (emit_single_push_insn_1): Rename from emit_single_push_insn.
1917         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
1918         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
1919         * reload1.c (reload_as_needed): Likewise.
1920         * rtl.h (fixup_args_size_notes): Declare.
1921
1922 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
1923
1924         PR bootstrap/49914
1925         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
1926         of abs.
1927         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
1928         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
1929
1930 2011-08-02  Richard Henderson  <rth@redhat.com>
1931
1932         * config/h8300/h8300.c (push, pop): Return the insn.
1933         (h8300_swap_into_er6): Generate correct unwind info.
1934         (h8300_swap_out_of_er6): Likewise.
1935         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
1936         complex cfa expression.
1937         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
1938
1939 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1940
1941         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
1942
1943 2011-08-02  Richard Henderson  <rth@redhat.com>
1944
1945         PR target/49878
1946         * config/h8300/h8300.c (h8300_move_ok): New.
1947         * config/h8300/h8300-protos.h: Declare it.
1948         * config/h8300/h8300.md (P): New mode iterator.
1949         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
1950         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
1951         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
1952         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
1953         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
1954         and pushqi1_h8300hs_normal; use PRE_MODIFY and
1955         register_no_sp_elim_operand.
1956         (*pushhi1_h8300hs_<P>): Similarly.
1957         (pushqi1, pushhi1, pushhi1_h8300): Remove.
1958         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
1959
1960 2011-08-02  Richard Henderson  <rth@redhat.com>
1961
1962         PR target/49881
1963         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
1964
1965 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1966
1967         * c-parser.c (enum c_parser_prec): New enum, moved from within
1968         c_parser_binary_expression.
1969         (c_parser_binary_expression): Add PREC argument.  Stop parsing
1970         if operator has lower or equal precedence than PREC.
1971         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
1972         callers.
1973         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
1974         Adjust c_finish_omp_atomic caller.
1975         (c_parser_omp_taskyield): New function.
1976         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
1977         (c_parser_omp_clause_name): Handle final and mergeable clauses.
1978         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
1979         functions.
1980         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
1981         and PRAGMA_OMP_CLAUSE_MERGEABLE.
1982         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
1983         (c_parser_omp_clause_reduction): Handle min and max.
1984         * c-typeck.c (c_finish_omp_clauses): Don't complain about
1985         const qualified predetermined vars in firstprivate clause.
1986         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1987         Handle MIN_EXPR and MAX_EXPR.
1988         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
1989         and OMP_CLAUSE_MERGEABLE.
1990         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
1991         and OMP_ATOMIC_CAPTURE_NEW.
1992         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
1993         OMP_CLAUSE_MERGEABLE.
1994         (omp_clause_code_name): Likewise.
1995         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
1996         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
1997         and OMP_CLAUSE_MERGEABLE.
1998         (OMP_CLAUSE_FINAL_EXPR): Define.
1999         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
2000         OMP_CLAUSE_MERGEABLE.
2001         (expand_task_call): Likewise.
2002         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
2003         (expand_omp_atomic_fetch_op): Handle cases where old or new
2004         value is needed afterwards.
2005         (expand_omp_atomic): Call expand_omp_atomic_load resp.
2006         expand_omp_atomic_store.
2007         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
2008         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
2009         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
2010         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2011         * tree-nested.c (convert_nonlocal_omp_clauses,
2012         convert_local_omp_clauses): Likewise.
2013         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
2014         OMP_ATOMIC_CAPTURE_NEW): New.
2015         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
2016         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
2017         New inlines.
2018         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
2019         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
2020         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
2021
2022 2011-08-02  Kai Tietz  <ktietz@redhat.com>
2023
2024         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
2025         boolean-type.
2026         (ssa_forward_propagate_and_combine): Interprete result of
2027         forward_propagate_comparison.
2028         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
2029         boolean-typed operands for comparisons.
2030
2031 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
2032
2033         * config/avr/libgcc.S: Gather related function in the
2034         same input section.
2035         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
2036         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
2037         references.
2038         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
2039         __udivmodsi4, __divmodsi4, __prologue_saves__,
2040         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
2041         __do_copy_data, __do_clear_bss, __do_global_ctors,
2042         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
2043
2044 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
2045
2046         PR target/47766
2047         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
2048         (stack_protect_test): The pattern compares ptr_mode value.
2049
2050 2011-08-02  Alan Modra  <amodra@gmail.com>
2051
2052         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
2053         note for save_LR_around_toc_setup sequence.
2054
2055 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2056
2057         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
2058
2059 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
2060             Joseph Myers  <joseph@codesourcery.com>
2061
2062         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
2063         * hwint.c: Include diagnostic-core.h.
2064         (abs_hwi): New.
2065         (gcd): Moved here...
2066         (pos_mul_hwi): New.
2067         (mul_hwi): New.
2068         (least_common_multiple): Moved here...
2069         * hwint.h (gcd): ... from here.
2070         (least_common_multiple): ... from here.
2071         (HOST_WIDE_INT_MIN): New.
2072         (HOST_WIDE_INT_MAX): New.
2073         (abs_hwi): Declared.
2074         (gcd): Declared.
2075         (pos_mul_hwi): Declared.
2076         (mul_hwi): Declared.
2077         (least_common_multiple): Declared.
2078         * omega.c (check_pos_mul): Removed.
2079         (check_mul): Removed.
2080         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
2081         mul_hwi instead of check_mul.
2082
2083 2011-08-01  Richard Henderson  <rth@redhat.com>
2084
2085         PR target/49881
2086         * config/avr/avr.h (PUSH_ROUNDING): New.
2087         * config/avr/avr.md (pushqi1): Rename from *pushqi.
2088         (*pushhi, *pushsi, *pushsf): Remove.
2089         (MPUSH): New mode iterator.
2090         (push<MPUSH>1): New expander.
2091
2092 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
2093
2094         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
2095         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2096         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
2097         mmix_preferred_output_reload_class): Remove.
2098         * config/mmix/mmix.c (mmix_preferred_reload_class,
2099         mmix_preferred_output_reload_class): Make static. Change rclass
2100         argument and return type to reg_class_t.
2101         (TARGET_PREFERRED_RELOAD_CLASS,
2102         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2103
2104 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
2105
2106         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
2107         handling.
2108
2109 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2110
2111         PR target/47766
2112         * config/i386/i386.md (PTR): New.
2113         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
2114         (stack_protect_test): Likewise.
2115         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
2116         (stack_tls_protect_set_<mode>): Likewise.
2117         (stack_tls_protect_test_<mode>): Likewise.
2118
2119 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
2120
2121         PR target/49927
2122         * config/i386/i386.c (ix86_address_subreg_operand): New.
2123         (ix86_decompose_address): Use ix86_address_subreg_operand.
2124         (ix86_legitimate_address_p): Do not assert that subregs satisfy
2125         register_no_elim_operand in DImode.
2126
2127 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
2128
2129         PR tree-optimization/49926
2130         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
2131         in a chain doesn't have uses both inside and outside the loop.
2132
2133 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
2134
2135         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
2136         * config/avr/avr-devices.c (avr_mcu_types): Use it.
2137         * config/avr/avr-mcus.def (AVR_MCU): Use it.
2138         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
2139         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
2140         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
2141         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
2142         to detect if XJMP must not be skipped.
2143
2144 2011-08-02  Alan Modra  <amodra@gmail.com>
2145
2146         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
2147         Delete.
2148         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
2149         (rs6000_emit_prologue): Don't prematurely return when
2150         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
2151         save_toc_in_prologue case.
2152         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
2153         calls_alloca.
2154
2155 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
2156
2157         * config/avr/avr-devices.c: Delete SVN property svn:executable.
2158         * config/avr/predicates.md: Ditto.
2159         * config/avr/driver-avr.c: Ditto.
2160         * config/avr/genopt.sh: Set SVN property svn:executable to *.
2161
2162 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
2163
2164         * calls.c (emit_library_call_value_1): Declare size only if
2165         BLOCK_REG_PADDING is defined.
2166
2167 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
2168
2169         PR target/49547
2170         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
2171         (x86_64-*-*): Likewise.
2172         * config/i386/i386.opt (mlzcnt): New.
2173         * config/i386/abmintrin.h: File removed.
2174         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
2175         * config/i386/lzcntintrin.h: ... here.  New file.
2176         (__lzcnt): Rename to ...
2177         (__lzcnt32): ... this.
2178         * config/i386/bmiintrin.h (head): Update copyright year.
2179         (__lzcnt_u16): Removed.
2180         (__lzcnt_u32): Likewise.
2181         (__lzcnt_u64): Likewise.
2182         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
2183         is defined, remove abmintrin.h.
2184         * config/i386/cpuid.h (bit_LZCNT): New.
2185         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2186         LZCNT feature.
2187         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2188         __LZCNT__ if needed.
2189         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
2190         (ix86_option_override_internal): Handle LZCNT option.
2191         (ix86_valid_target_attribute_inner_p): Likewise.
2192         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
2193         * config/i386/i386.h (TARGET_LZCNT): New.
2194         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
2195         * config/i386/i386.md (clz<mode>2): Update insn constraint.
2196         (clz<mode>2_lzcnt): Likewise.
2197         * doc/invoke.texi: Mention -mlzcnt option.
2198         * doc/extend.texi: Likewise.
2199
2200 2011-08-01  Julian Brown  <julian@codesourcery.com>
2201
2202         * configure.ac (fixed-point): Add ARM support.
2203         * configure: Regenerate.
2204         * config/arm/arm.c (arm_fixed_mode_set): New struct.
2205         (arm_set_fixed_optab_libfunc): New.
2206         (arm_set_fixed_conv_libfunc): New.
2207         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
2208         ARM-specific names.
2209         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
2210         return values in SImode.
2211         (arm_return_in_msb): Return fixed-point types in the msb.
2212         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
2213         upwards.
2214         (arm_scalar_mode_supported_p): Support fixed-point modes.
2215         (arm_vector_mode_supported_p): Support vector fixed-point modes.
2216         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
2217         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
2218         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
2219         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
2220         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
2221         New mode iterators.
2222         (qaddsub_suf): New mode attribute.
2223         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
2224         vector modes.
2225         * config/arm/predicates.md (sat_shift_operator): New predicate.
2226         * config/arm/arm-fixed.md: New.
2227         * config/arm/arm.md: Include arm-fixed.md.
2228         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
2229
2230 2011-08-01  Julian Brown  <julian@codesourcery.com>
2231
2232         * calls.c (emit_library_call_value_1): Support padding for libcall
2233         arguments and return values.
2234         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
2235         downwards in big-endian mode.
2236
2237 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2238
2239         PR debug/49887
2240         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
2241         * config/sol2-protos.h: Likewise.
2242         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
2243         solaris_code_end.
2244         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
2245         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
2246         solaris_file_end.
2247         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
2248
2249 2011-08-01  Julian Brown  <julian@codesourcery.com>
2250
2251         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
2252
2253 2011-08-01  Julian Brown  <julian@codesourcery.com>
2254
2255         * final.c (output_addr_const): Print fixed-point constants as
2256         decimal not hex.
2257
2258 2011-08-01  Richard Guenther  <rguenther@suse.de>
2259
2260         * stor-layout.c (initialize_sizetypes): Properly sign-extend
2261         bitsiztype TYPE_MAX_VALUE.
2262
2263 2011-08-01  Julian Brown  <julian@codesourcery.com>
2264
2265         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
2266         comparison helpers.
2267
2268 2011-07-31  Richard Henderson  <rth@redhat.com>
2269
2270         * config/h8300/crti.asm: Add flags to .section directive.
2271         * config/h8300/crtn.asm: Likewise.
2272
2273 2011-07-31  Richard Henderson  <rth@redhat.com>
2274
2275         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
2276         * tree.c (build_common_tree_nodes): Likewise.
2277
2278 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2279
2280         PR target/49880
2281         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
2282         (divsi3_i1): Likewise.
2283
2284 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2285
2286         PR tree-optimization/49749
2287         * tree-ssa-reassoc.c (get_rank): New forward declaration.
2288         (PHI_LOOP_BIAS): New macro.
2289         (phi_rank): New function.
2290         (loop_carried_phi): Likewise.
2291         (propagate_rank): Likewise.
2292         (get_rank): Add calls to phi_rank and propagate_rank.
2293
2294 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
2295
2296         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
2297         of TARGET_64BIT.
2298         (PTRDIFF_TYPE): Likewise.
2299
2300 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
2301
2302         PR target/49920
2303         * config/i386/i386.md (strset): Do not expand strset_singleop
2304         when %eax or $edi are fixed.
2305         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
2306         (*strsetsi_1): Ditto.
2307         (*strsethi_1): Ditto.
2308         (*strsetqi_1): Ditto.
2309         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
2310         (*rep_stossi): Ditto.
2311         (*rep_stosqi): Ditto.
2312         (*strlenqi_1): Ditto.
2313         (cmpstrnsi): Also fail when %ecx is fixed.
2314         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
2315         (*cmpstrnqi_1): Ditto.
2316         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
2317         (*strmovsi_1): Ditto.
2318         (*strmovhi_1): Ditto.
2319         (*strmovqi_1): Ditto.
2320         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
2321         (*rep_movsi): Ditto.
2322         (*rep_movqi): Ditto.
2323
2324 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
2325
2326         PR target/47908
2327         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
2328         Disable instruction scheduling for non-ColdFire targets.
2329         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
2330
2331 2011-07-31  Revital Eres  <revital.eres@linaro.org>
2332
2333         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
2334         of anti-dep edge from a branch.
2335         (add_cross_iteration_register_deps): Create anti-dep edge from
2336         a branch.
2337
2338 2011-07-31  Revital Eres  <revital.eres@linaro.org>
2339
2340         * modulo-sched.c: Change comment.
2341         (reset_sched_times): Fix print message.
2342         (print_partial_schedule): Add print info.
2343
2344 2011-07-31  Tom de Vries  <tom@codesourcery.com>
2345
2346         PR middle-end/43513
2347         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
2348         get_object_alignment and TYPE_ALIGN.
2349
2350 2011-07-30  Tom de Vries  <tom@codesourcery.com>
2351
2352         PR middle-end/43513
2353         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
2354         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
2355
2356 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2357
2358         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
2359         <sys/sbd.h>.
2360         (cpu_types): New array.
2361         (cputype): New function.
2362         (host_detect_local_cpu): Only define buf, f if !__sgi__.
2363         Use scaninvent instead of /proc/cpuinfo if __sgi__.
2364         * config.host: Also use driver-native.o, mips/x-native on
2365         mips-sgi-irix*.
2366         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
2367         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
2368         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
2369
2370 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
2371
2372         PR middle-end/49897
2373         PR middle-end/49898
2374         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
2375         in nested parallel and outer is a gimple_reg, mark it as addressable
2376         and set its bit in task_shared_vars bitmap too.
2377
2378 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
2379
2380         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
2381
2382 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2383
2384         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
2385         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
2386         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
2387         AMASK_LOCKPFTCHOK): Define.
2388         (host_detect_local_cpu): Remove buf, f, cpu_names.
2389         Define cpu_types, implver, amask.
2390         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
2391         native CPU.
2392         * config.host: Also use driver-alpha.o, alpha/x-alpha on
2393         alpha*-dec-osf*.
2394         * config/alpha/osf5.h [__alpha__ || __alpha]
2395         (host_detect_local_cpu): Declare.
2396         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
2397         (DRIVER_SELF_SPECS): Define.
2398
2399 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
2400
2401         PR target/47715
2402         * config/i386/i386.md (*load_tp_x32): New.
2403         (*load_tp_x32_zext): Ditto.
2404         (*add_tp_x32): Ditto.
2405         (*add_tp_x32_zext): Ditto.
2406         (*load_tp_<mode>): Disable for TARGET_X32 targets.
2407         (*add_tp_<mode>): Ditto.
2408         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
2409         ptr_mode and convert to Pmode if needed.
2410
2411 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
2412
2413         PR target/49687
2414         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
2415         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
2416         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
2417         Add X to register footprint: Clobber r26/r27.
2418
2419 2011-07-29  Richard Guenther  <rguenther@suse.de>
2420
2421         * builtins.c (fold_builtin_signbit): Build the comparison
2422         with a proper type.
2423
2424 2011-07-29  Richard Guenther  <rguenther@suse.de>
2425
2426         PR tree-optimization/49893
2427         * tree-predcom.c (suitable_reference_p): Volatile references
2428         are not suitable.
2429
2430 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
2431
2432         PR target/49313
2433         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2434         (__ctzsi2): Result for 0 may be undefined.
2435         (__ctzhi2): Result for 0 may be undefined.
2436         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2437         (__popcountsi2): Ditto. And don't clobber r26.
2438         (__popcountdi2): Ditto. And don't clobber r27.
2439         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2440         (parityhi2): New expand.
2441         (paritysi2): New expand.
2442         (popcounthi2): New expand.
2443         (popcountsi2): New expand.
2444         (clzhi2): New expand.
2445         (clzsi2): New expand.
2446         (ctzhi2): New expand.
2447         (ctzsi2): New expand.
2448         (ffshi2): New expand.
2449         (ffssi2): New expand.
2450         (copysignsf3): New insn.
2451         (bswapsi2): New expand.
2452         (*parityhi2.libgcc): New insn.
2453         (*parityqihi2.libgcc): New insn.
2454         (*paritysihi2.libgcc): New insn.
2455         (*popcounthi2.libgcc): New insn.
2456         (*popcountsi2.libgcc): New insn.
2457         (*popcountqi2.libgcc): New insn.
2458         (*popcountqihi2.libgcc): New insn-and-split.
2459         (*clzhi2.libgcc): New insn.
2460         (*clzsihi2.libgcc): New insn.
2461         (*ctzhi2.libgcc): New insn.
2462         (*ctzsihi2.libgcc): New insn.
2463         (*ffshi2.libgcc): New insn.
2464         (*ffssihi2.libgcc): New insn.
2465         (*bswapsi2.libgcc): New insn.
2466
2467 2011-07-29  Richard Guenther  <rguenther@suse.de>
2468
2469         * tree-vrp.c (get_value_range): Only set parameter default
2470         definitions to varying, leave others at undefined.
2471         (extract_range_from_binary_expr): Fix undefined handling.
2472         (vrp_visit_phi_node): Handle merged undefined state.
2473
2474 2011-07-29  Wei Guozhi  <carrot@google.com>
2475
2476         PR rtl-optimization/49799
2477         * combine.c (make_compound_operation): Check if the bit field is valid
2478         before change it to bit field extraction.
2479
2480 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
2481
2482         PR rtl-optimization/49891
2483         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
2484         newly created returnjumps.
2485
2486 2011-07-28  DJ Delorie  <dj@redhat.com>
2487
2488         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
2489         local frame in a naked function, and produce a suitable error for
2490         that specific case.
2491
2492         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
2493         registers to be reloaded in HI classes when the target is HI.
2494
2495 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2496
2497         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
2498         bound_one, bound_two.
2499
2500 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2501
2502         PR middle-end/48648
2503         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
2504         CLAST assignments.
2505         (translate_clast): Same.
2506         (translate_clast_assignment): New.
2507
2508 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
2509
2510         PR tree-optimization/49876
2511         * sese.c (rename_uses): Do not return false on gloog_error: set
2512         the new_expr to integer_zero_node and continue code generation.
2513         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
2514
2515 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2516
2517         PR debug/49846
2518         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
2519         arguments also check if they aren't initialized with a MODE_INT
2520         mode of the same size.
2521
2522 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
2523
2524         * expr.c (get_bit_range): Handle *MEM_REF's.
2525
2526 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
2527
2528         * rtlanal.c (tablejump_p): False for returns.
2529         * reorg.c (first_active_target_insn): New static function.
2530         (find_end_label): Set JUMP_LABEL for a new returnjump.
2531         (optimize_skip, get_jump_flags, rare_destination,
2532         mostly_true_jump, get_branch_condition,
2533         steal_delay_list_from_target, own_thread_p,
2534         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
2535         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
2536         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
2537         * jump.c (delete_related_insns): Likewise.
2538         (jump_to_label_p): New function.
2539         (redirect_target): New static function.
2540         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
2541         (redirect_jump_1): Assert that the new label is nonnull.
2542         (redirect_jump): Likewise.
2543         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
2544         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
2545         exit block.
2546         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
2547         changed.  Ensure that the right label is passed to redirect_jump.
2548         * function.c (emit_return_into_block,
2549         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
2550         ret_rtx in their JUMP_LABEL.
2551         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
2552         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
2553         pass ret_rtx as label.
2554         * cfglayout.c (fixup_reorder_chain): Use
2555         force_nonfallthru_and_redirect rather than force_nonfallthru.
2556         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
2557         * rtl.h (ANY_RETURN_P): New macro.
2558         (jump_to_label_p): Declare.
2559         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
2560         JUMP_LABELs.
2561         (mark_target_live_regs): Likewise.
2562         * basic-block.h (force_nonfallthru_and_redirect): Declare.
2563         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
2564         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
2565         alpha_tablejump_best_label): Remove functions.
2566         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
2567         alpha_tablejump_best_label): Remove declarations.
2568         * config/sh/sh.c (barrier_align, split_branches): Adjust for
2569         ret_rtx in JUMP_LABELs.
2570         * config/arm/arm.c (is_jump_table): Likewise.
2571
2572 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2573
2574         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
2575         special predicate.  Remove explicit mode checks.
2576
2577 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
2578
2579         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
2580         DW_AT_data_member_location containing just DW_OP_plus_uconst.
2581
2582         PR debug/49871
2583         * dwarf2out.c (size_of_die, value_format, output_die): Use
2584         DW_FORM_udata instead of DW_FORM_data[48] for
2585         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
2586
2587 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2588
2589         * config/i386/i386.md (*tls_global_dynamic_64): Update
2590         length attribute.
2591
2592 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2593
2594         PR target/47715
2595         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
2596         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
2597         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
2598         (tls_dynamic_gnu2_64): Ditto.
2599         (*tls_dynamic_gnu2_lea_64): Ditto.
2600         (*tls_dynamic_gnu2_call_64): Ditto.
2601         (*tls_dynamic_gnu2_combine_64): Ditto.
2602
2603 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2604
2605         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
2606
2607 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
2608
2609         PR target/47364
2610         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
2611
2612 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2613
2614         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
2615         before the core constraints. Adjust attributes.
2616         ("*thumb2_movdf_vfp"): Likewise.
2617
2618 2011-07-28  Kai Tietz  <ktietz@redhat.com>
2619
2620         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
2621         (simplify_truth_ops_using_ranges): Likewise.
2622         (build_assert_expr_for): Likewise.
2623         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
2624         and handle BIT_NOT_EXPR for truth-operation.
2625
2626 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2627
2628         PR target/49313
2629         Undo r176835 from trunk
2630         2011-07-27  Georg-Johann Lay
2631
2632 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
2633
2634         PR target/49687
2635         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
2636         Add _muluhisi3, _mulshisi3, _usmulhisi3.
2637         * config/avr/libgcc.S (__mulsi3): Rewrite.
2638         (__mulhisi3): Rewrite.
2639         (__umulhisi3): Rewrite.
2640         (__usmulhisi3): New.
2641         (__muluhisi3): New.
2642         (__mulshisi3): New.
2643         (__mulohisi3): New.
2644         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
2645         declare.
2646         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
2647         (pseudo_register_or_const_int_operand): New.
2648         (combine_pseudo_register_operand): New.
2649         (u16_operand): New.
2650         (s16_operand): New.
2651         (o16_operand): New.
2652         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
2653         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
2654         (any_extend, any_extend2): New code iterators.
2655         (extend_prefix): New code attribute.
2656         (mulsi3): Rewrite. Turn insn to expander.
2657         (mulhisi3): Ditto.
2658         (umulhisi3): Ditto.
2659         (usmulhisi3): New expander.
2660         (*mulsi3): New insn-and-split.
2661         (mulu<mode>si3): New insn-and-split.
2662         (muls<mode>si3): New insn-and-split.
2663         (mulohisi3): New insn-and-split.
2664         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
2665         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
2666         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
2667         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
2668         insn-and-split.
2669         (*mulsi3_call): Rewrite.
2670         (*mulhisi3_call): Rewrite.
2671         (*umulhisi3_call): Rewrite.
2672         (*usmulhisi3_call): New insn.
2673         (*muluhisi3_call): New insn.
2674         (*mulshisi3_call): New insn.
2675         (*mulohisi3_call): New insn.
2676         (extendqihi2): Use combine_pseudo_register_operand as predicate
2677         for operand 1.
2678         (extendqisi2): Ditto.
2679         (zero_extendqihi2): Ditto.
2680         (zero_extendqisi2): Ditto.
2681         (zero_extendhisi2): Ditto.
2682         (extendhisi2): Ditto. Don't early-clobber operand 0.
2683
2684 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
2685
2686         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
2687
2688 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2689
2690         PR tree-optimization/49471
2691         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
2692         iv only when the largest type is unsigned.  Do not call
2693         lang_hooks.types.type_for_size.
2694
2695 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2696
2697         PR middle-end/45450
2698         * graphite-poly.c (apply_poly_transforms): Disable legality check
2699         after an openscop read.
2700
2701 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
2702
2703         PR middle-end/47691
2704         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
2705         copy_bb_and_scalar_dependences.
2706         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
2707         (graphite_copy_stmts_from_block): Update call to rename_uses.
2708         (copy_bb_and_scalar_dependences): Update call to
2709         graphite_copy_stmts_from_block.
2710         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
2711
2712 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
2713
2714         PR target/49313
2715         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
2716         (__ctzsi2): Result for 0 may be undefined.
2717         (__ctzhi2): Result for 0 may be undefined.
2718         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
2719         (__popcountsi2): Ditto. And don't clobber r26.
2720         (__popcountdi2): Ditto. And don't clobber r27.
2721         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
2722         (parityhi2): New expand.
2723         (paritysi2): New expand.
2724         (popcounthi2): New expand.
2725         (popcountsi2): New expand.
2726         (clzhi2): New expand.
2727         (clzsi2): New expand.
2728         (ctzhi2): New expand.
2729         (ctzsi2): New expand.
2730         (ffshi2): New expand.
2731         (ffssi2): New expand.
2732         (copysignsf3): New insn.
2733         (bswapsi2): New expand.
2734         (*parityhi2.libgcc): New insn.
2735         (*parityqihi2.libgcc): New insn.
2736         (*paritysihi2.libgcc): New insn.
2737         (*popcounthi2.libgcc): New insn.
2738         (*popcountsi2.libgcc): New insn.
2739         (*popcountqi2.libgcc): New insn.
2740         (*popcountqihi2.libgcc): New insn-and-split.
2741         (*clzhi2.libgcc): New insn.
2742         (*clzsihi2.libgcc): New insn.
2743         (*ctzhi2.libgcc): New insn.
2744         (*ctzsihi2.libgcc): New insn.
2745         (*ffshi2.libgcc): New insn.
2746         (*ffssihi2.libgcc): New insn.
2747         (*bswapsi2.libgcc): New insn.
2748
2749 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2750
2751         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
2752         the mode of symbolic_opreand RTXes.
2753
2754 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
2755
2756         * config/i386/predicates.md (x86_64_movabs_operand): Return false
2757         for pic_32bit_operand RTXes.
2758         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
2759         in DImode.
2760
2761 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2762
2763         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
2764         for 32-bit, too.
2765         (ix86_handle_abi_attribute): Allow function attributes
2766         ms_abi/sysv_abi in 32-bit mode, too.
2767         * doc/extend.texi: Adjust attribute documentation.
2768
2769         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
2770         expression handling.
2771         (and_var_with_comparison_1): Likewise.
2772
2773 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
2774
2775         * params.h (ALLOW_STORE_DATA_RACES): New.
2776         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
2777         * Makefile.in (expr.o): Depend on PARAMS_H.
2778         * machmode.h (get_best_mode): Add argument.
2779         * fold-const.c (optimize_bit_field_compare): Add argument to
2780         get_best_mode.
2781         (fold_truthop): Same.
2782         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
2783         * expr.c (emit_group_store): Same.
2784         (copy_blkmode_from_reg): Same.
2785         (write_complex_part): Same.
2786         (optimize_bitfield_assignment_op): Add argument.
2787         Add argument to get_best_mode.
2788         (get_bit_range): New.
2789         (expand_assignment): Calculate maxbits and pass it down accordingly.
2790         (store_field): New argument.
2791         (expand_expr_real_2): New argument to store_field.  Include params.h.
2792         * expr.h (store_bit_field): New argument.
2793         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
2794         into account maxbits.
2795         * calls.c (store_unaligned_arguments_into_pseudos): New argument
2796         to store_bit_field.
2797         * expmed.c (store_bit_field_1): New argument.  Use it.
2798         (store_bit_field): Same.
2799         (store_fixed_bit_field): Same.
2800         (store_split_bit_field): Same.
2801         (extract_bit_field_1): Pass new argument to get_best_mode.
2802         (extract_bit_field): Same.
2803         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
2804         * doc/invoke.texi: Document parameter allow-store-data-races.
2805
2806 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
2807
2808         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
2809
2810 2011-07-27  Kai Tietz  <ktietz@redhat.com>
2811
2812         * tree-vrp.c (extract_range_from_binary_expr): Remove
2813         TRUTH-binary cases and add new bitwise-cases.
2814         (extract_range_from_assignment): Likewise.
2815         (register_edge_assert_for_1): Likeiwise.
2816         (register_edge_assert_for): Likewise.
2817         (simplify_truth_ops_using_ranges): Likewise.
2818         (simplify_stmt_using_ranges): Likewise.
2819
2820 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
2821
2822         PR target/47372
2823         * config/i386/i386.c (ix86_delegitimize_address): Call
2824         simplify_gen_subreg for PIC with mode of x only if modes of
2825         x and orig_x are different.
2826
2827 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
2828
2829         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
2830         to GC allocated copy of the string.
2831         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
2832         before .debug_line, not after it.
2833
2834 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2835
2836         PR middle-end/47046
2837         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
2838         evolution_function_is_affine_p on CHREC_RIGHT.
2839
2840 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2841
2842         * tree-data-ref.c (max_stmt_executions_tree): Do not call
2843         lang_hooks.types.type_for_size.
2844
2845 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2846
2847         PR middle-end/47653
2848         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
2849         loops using wrapping semantics.
2850
2851 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
2852
2853         PR middle-end/48805
2854         * tree-scalar-evolution.c (instantiate_scev_r): Return
2855         chrec_dont_know for ADDR_EXPR.
2856
2857 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2858             H.J. Lu  <hongjiu.lu@intel.com>
2859
2860         PR target/47369
2861         PR target/49853
2862         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
2863         if legitimize_tls_address returned operand in wrong mode. Allow
2864         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
2865         if legitimize_pic_address returned operand in wrong mode.
2866
2867 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2868
2869         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
2870         return false for invariants.
2871
2872 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2873
2874         * config/i386/i386.md (add->lea splitter): Implement using SWI
2875         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
2876         (add->lea zext splitter): Change operand 2 predicate to
2877         x86_64_nonmemory_operand.
2878
2879 2011-07-26  Richard Guenther  <rguenther@suse.de>
2880
2881         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
2882         frequency makes everything hot.
2883
2884 2011-07-26  Richard Guenther  <rguenther@suse.de>
2885
2886         PR tree-optimization/49840
2887         * tree-vrp.c (range_fits_type_p): Properly handle full
2888         double-int precision.
2889
2890 2011-07-26  Martin Jambor  <mjambor@suse.cz>
2891
2892         PR bootstrap/49786
2893         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
2894         counts.
2895         (update_specialized_profile): Likewise.
2896
2897 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
2898             H.J. Lu  <hongjiu.lu@intel.com>
2899
2900         PR target/47381
2901         PR target/49832
2902         PR target/49833
2903         * config/i386/i386.md (i): Change SImode attribute to "e".
2904         (g): Change SImode attribute to "rme".
2905         (di): Change SImode attribute to "nF".
2906         (general_operand): Change SImode attribute to x86_64_general_operand.
2907         (general_szext_operand): Change SImode attribute to
2908         x86_64_szext_general_operand.
2909         (immediate_operand): Change SImode attribute to
2910         x86_64_immediate_operand.
2911         (nonmemory_operand): Change SImode attribute to
2912         x86_64_nonmemory_operand.
2913         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
2914         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
2915         (*lea_1): Use SWI48 mode iterator.
2916         (*lea_1_zext): New insn pattern.
2917         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
2918         (*bt<mode>): Ditto.
2919         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
2920         Update operand constraints.
2921         (addsi_1_zext): Ditto.
2922         (*add<mode>2): Ditto.
2923         (*addsi_3_zext): Ditto.
2924         (*subsi_1_zext): Ditto.
2925         (*subsi_2_zext): Ditto.
2926         (*subsi_3_zext): Ditto.
2927         (*addsi3_carry_zext): Ditto.
2928         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
2929         (*mulsi3_1_zext): Ditto.
2930         (*andsi_1): Ditto.
2931         (*andsi_1_zext): Ditto.
2932         (*andsi_2_zext): Ditto.
2933         (*<any_or:code>si_1_zext): Ditto.
2934         (*<any_or:code>si_2_zext): Ditto.
2935         (*test<mode>_1): Use <general_operand> predicate for operand 1.
2936         (*and<mode>_2): Ditto.
2937         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
2938         (add->lea splitter): Check operand modes in insn constraint.  Extend
2939         operands less than SImode wide to SImode.
2940         (add->lea zext splitter): Do not extend input operands to DImode.
2941         (*lea_general_1): Handle only QImode and HImode operands.
2942         (*lea_general_2): Ditto.
2943         (*lea_general_3): Ditto.
2944         (*lea_general_1_zext): Remove.
2945         (*lea_general_2_zext): Ditto.
2946         (*lea_general_3_zext): Ditto.
2947         (*lea_general_4): Check operand modes in insn constraint.  Extend
2948         operands less than SImode wide to SImode.
2949         (ashift->lea splitter): Ditto.
2950         * config/i386/i386.c (ix86_print_operand_address): Print address
2951         registers with 'q' modifier on 64bit targets.
2952         * config/i386/predicates.md (pic_32bit_opreand): Define as special
2953         predicate.  Reject non-SI and non-DI modes.
2954
2955 2011-07-25  Andrew Pinski  <apinski@cavium.com>
2956
2957         PR tree-opt/49671
2958         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
2959         TREE_THIS_NOTRAP into the inner most MEM_REF.
2960         Always copy TREE_THIS_VOLATILE.
2961         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
2962         arguments are not volatile references.
2963
2964 2011-07-25  Richard Henderson  <rth@redhat.com>
2965
2966         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
2967         * final.c (final_scan_insn): Don't test for it.
2968         (rest_of_clean_state): Likewise.
2969
2970 2011-07-25  Richard Henderson  <rth@redhat.com>
2971
2972         PR debug/49841
2973         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
2974         (emit_frame_save): Likewise.
2975         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
2976         insn onto a dummy blockage insn after the join label.
2977
2978 2011-07-25  Richard Henderson  <rth@redhat.com>
2979
2980         * dwarf2cfi.c (dw_trace_info): Add ID member.
2981         (get_trace_index): Remove.  Change users to use ID member.
2982         (before_next_cfi_note): New.
2983         (connect_traces): Remove unreachable traces before the main loop.
2984         Look across one trace and generate remember/restore_state if needed.
2985
2986 2011-07-25  Richard Henderson  <rth@redhat.com>
2987
2988         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
2989
2990 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
2991
2992         * genattr.c (write_upcase, gen_attr <enum definition writing>):
2993         Move to ...
2994         * genattr-common.c ... here.
2995         (main): Call gen_attr.
2996         * optc-gen.awk: Make generated program include insn-attr-common.h .
2997         * Makefile.in (oprions.o): Depend on insn-attr-common.h
2998
2999 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
3000
3001         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3002         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
3003         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
3004         m32c_print_operand, m32c_print_operand_address): Remove.
3005         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
3006         Change return type to bool. Change argument type to bool.
3007         (m32c_print_operand, m32c_print_operand_address): Make static.
3008         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
3009         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3010
3011 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3012
3013         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
3014         attributes): Document mmap.
3015
3016 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
3017
3018         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3019         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
3020         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
3021         mmix_print_operand, mmix_print_operand_address): Remove.
3022         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
3023         Change return type to bool. Change argument type to bool.
3024         (mmix_print_operand, mmix_print_operand_address): Make static.
3025         (mmix_intval, mmix_output_condition): Change 'x' argument type
3026         to const_rtx.
3027         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
3028         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
3029
3030 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
3031
3032         PR target/39386
3033         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
3034         shift counter for x << x and x >> x shifts.
3035
3036 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3037
3038         PR target/47124
3039         * config.gcc: Reject *-*-solaris2 configuration.
3040
3041 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
3042
3043         PR tree-optimization/49809
3044         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
3045         gimple_get_lhs instead of gimple_assign_lhs.
3046
3047 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3048
3049         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
3050
3051 2011-07-25  Richard Guenther  <rguenther@suse.de>
3052
3053         PR tree-optimization/49822
3054         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3055         more.  Make sure to preserve stmts with side-effects.  Properly
3056         handle virtual defs, follow a longer def chain.
3057
3058 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
3059
3060         PR plugins/45348
3061         PR plugins/48425
3062         PR plugins/46577
3063         * Makefile.in: Do not flatten c-family directory when installing
3064         plugin headers.
3065
3066 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
3067
3068         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
3069         original nodes if we are dealing with virtual clones.
3070
3071 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
3072
3073         * common/config/c6x/c6x-common.c: New file.
3074
3075 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
3076
3077         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
3078
3079 2011-07-25  Richard Guenther  <rguenther@suse.de>
3080
3081         PR tree-optimization/49715
3082         * tree-vrp.c: Include expr.h and optabs.h.
3083         (range_fits_type_): New function.
3084         (simplify_float_conversion_using_ranges): Likewise.
3085         (simplify_stmt_using_ranges): Call it.
3086         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
3087         * optabs.c (can_float_p): Export.
3088         * optabs.h (can_float_p): Declare.
3089
3090 2011-07-25  Richard Guenther  <rguenther@suse.de>
3091
3092         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
3093         (get_value_range): For out-of-range SSA names or names created
3094         after propagation return a read-only varying range.
3095         (dump_all_value_ranges): Adjust.
3096         (vrp_initialize): Likewise.
3097         (vrp_finalize): Likewise.
3098
3099 2011-07-24  Richard Henderson  <rth@redhat.com>
3100
3101         PR debug/49831
3102         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
3103         them entirely.
3104
3105 2011-07-24  Richard Henderson  <rth@redhat.com>
3106
3107         PR debug/49825
3108         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
3109         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
3110
3111 2011-07-24  Richard Henderson  <rth@redhat.com>
3112
3113         PR debug/49827
3114         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
3115
3116 2011-07-24  Richard Henderson  <rth@redhat.com>
3117
3118         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
3119         Zero args_size for abnormal edges.  Adjust all callers.
3120
3121 2011-07-24  Richard Henderson  <rth@redhat.com>
3122
3123         PR debug/49825
3124         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
3125
3126 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
3127
3128         PR bootstrap/49835
3129         * collect2.c (demangle_flag): Removed.
3130
3131 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
3132
3133         * configure.ac (demangler_in_ld): Default to yes.
3134         * configure: Regenerated.
3135         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
3136         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
3137         --no-demangle options straight through to ld.  When
3138         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
3139         way that has the intended effect on Windows.
3140
3141 2011-07-23  Richard Henderson  <rth@redhat.com>
3142
3143         * dwarf2cfi.c: Include basic-block.h.
3144         (dw_label_info): Remove.
3145         (trace_work_list, trace_index): New.
3146         (remember_row, emit_cfa_remember): Remove.
3147         (dw_trace_info_hash, dw_trace_info_eq): New.
3148         (get_trace_index, get_trace_info): New.
3149         (save_point_p): New.
3150         (free_cfi_row): Remove.
3151         (add_cfi): Do not emit DW_CFA_remember_state.
3152         (cfa_row_equal_p): New.
3153         (barrier_args_size): Remove.
3154         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
3155         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
3156         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
3157         (dwarf2out_cfi_begin_epilogue): Remove.
3158         (dwarf2out_frame_debug_restore_state): Remove.
3159         (connect_traces, create_pseudo_cfg): New.
3160         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
3161         * Makefile.in (dwarf2cfi.o): Update.
3162
3163 2011-07-23  Richard Henderson  <rth@redhat.com>
3164
3165         * dwarf2cfi.c (dw_trace_info): New.
3166         (dw_label_info): New.
3167         (cie_return_save): New.
3168         (cur_trace): New.
3169         (queued_args_size): Rename from args_size.  Update all users.
3170         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
3171         (def_cfa_1): Use cur_trace instead of cfa_*.
3172         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
3173         (clobbers_queued_reg_save, reg_saved_in): Likewise.
3174         (dwarf2out_frame_debug_expr): Likewise.
3175         (create_cie_data): Split out from ...
3176         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
3177
3178 2011-07-23  Richard Henderson  <rth@redhat.com>
3179
3180         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
3181         Update all users to match.
3182         (execute_dwarf2_frame): Free reg_saved_in_data.
3183
3184 2011-07-23  Richard Henderson  <rth@redhat.com>
3185
3186         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
3187         (queued_reg_saves): Don't GTY.  Change to a VEC.
3188         (queue_reg_save): Update to match.
3189         (dwarf2out_flush_queued_reg_saves): Likewise.
3190         (clobbers_queued_reg_save): Likewise.
3191         (reg_saved_in): Likewise.
3192         (execute_dwarf2_frame): Free queued_reg_saves.
3193
3194 2011-07-23  Richard Henderson  <rth@redhat.com>
3195
3196         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
3197
3198 2011-07-23  Richard Henderson  <rth@redhat.com>
3199
3200         * dwarf2cfi.c (add_cfi_args_size): Split out from...
3201         (dwarf2out_args_size): ... here.
3202         (add_cfi_restore): Split out from ...
3203         (dwarf2out_frame_debug_cfa_restore): ... here.
3204         (def_cfa_0): Split out from ...
3205         (def_cfa_1): ... here.
3206         (cfi_oprnd_equal_p, cfi_equal_p): New.
3207         (change_cfi_row): New.
3208         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
3209         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
3210         (output_cfis): Remove.
3211         * dwarf2out.c (output_fde): Simplify output_cfi loop.
3212         (dwarf2out_switch_text_section): Don't call output_cfis.
3213         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
3214         * dwarf2out.h: Update decls.
3215         (enum dw_val_class): Add dw_val_class_none.
3216
3217 2011-07-23  Richard Henderson  <rth@redhat.com>
3218
3219         * dwarf2cfi.c (update_row_reg_save): New.
3220         (dwarf2out_frame_debug_cfa_expression): Use it.
3221         (dwarf2out_frame_debug_cfa_restore): Likewise.
3222         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
3223
3224 2011-07-23  Richard Henderson  <rth@redhat.com>
3225
3226         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
3227
3228 2011-07-23  Richard Henderson  <rth@redhat.com>
3229
3230         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
3231         (cie_cfi_row): New.
3232         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
3233         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
3234         (cur_row, remember_row): New.
3235         (def_cfa_1): Use cur_row instead of the old_* variables.
3236         (dwarf2out_frame_debug_restore_state): Similarly.
3237         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
3238         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
3239         (dwarf2out_frame_debug_adjust_cfa): Likewise.
3240         (dwarf2out_frame_debug_cfa_offset): Likewise.
3241         (dwarf2out_frame_debug_expr): Likewise.
3242         (execute_dwarf2_frame): Set up cur_row.
3243         * dwarf2out.h (struct cfa_loc): Mark for GTY.
3244
3245 2011-07-23  Richard Henderson  <rth@redhat.com>
3246
3247         * basic-block.h (EDGE_PRESERVE): New.
3248         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
3249         * bb-reorder.c: Include except.h.
3250         (fix_up_crossing_landing_pad): New.
3251         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
3252         landing pads in the right partition.  Duplicate as necessary.
3253         (partition_hot_cold_basic_blocks): Fix up DF info after
3254         duplicating landing pads.
3255         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
3256         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
3257         is set properly.  Validate that EH edges are not CROSSING.
3258         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
3259         (dw2_build_landing_pads): ... here.
3260         (convert_to_eh_region_ranges): Remove code to fixup crossing
3261         landing pads.
3262         * except.h (expand_dw2_landing_pad_for_region): Declare.
3263         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
3264
3265 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
3266
3267         PR target/49816
3268         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
3269
3270 2011-07-22  Jason Merrill  <jason@redhat.com>
3271
3272         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
3273
3274 2011-07-22  Richard Henderson  <rth@redhat.com>
3275
3276         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
3277
3278 2011-07-22  Richard Henderson  <rth@redhat.com>
3279
3280         * jump.c (maybe_propagate_label_ref): Split out of...
3281         (mark_all_labels): ... here.  Do not attempt label_ref
3282         propagation while in cfglayout mode.
3283
3284 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
3285
3286         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
3287         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
3288         (dwarf_attr_name): Handle DW_AT_GNU_macros.
3289         (dwarf2out_define): If the vector is empty and
3290         lineno is 0, emit a dummy entry first.
3291         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
3292         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
3293         optimize_macinfo_range): New functions.
3294         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
3295         mergeable, optimize longer strings using
3296         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
3297         optimize longer sequences of define/undef ops from headers
3298         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
3299         emit a section headers.
3300         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
3301         and macinfo_section_label to DEBUG_MACRO_SECTION
3302         resp. DEBUG_MACRO_SECTION_LABEL.
3303         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
3304         instead of DW_AT_macro_info.
3305
3306         PR other/32998
3307         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
3308         options.
3309         * dwarf2out.c: Include opts.h.
3310         (dchar_p): New typedef.  Define heap VEC for it.
3311         (producer_string): New variable.
3312         (gen_producer_string): New function.
3313         (gen_compile_unit_die): Use it.
3314         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
3315         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
3316         * doc/invoke.texi: Document -grecord-gcc-switches and
3317         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
3318         to -frecord-gcc-switches description.
3319
3320 2011-07-22  Jason Merrill  <jason@redhat.com>
3321
3322         PR c++/30112
3323         * c-decl.c (c_linkage_bindings): Define.
3324
3325 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3326
3327         PR debug/49815
3328         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
3329
3330 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
3331
3332         * config/i386/i386.c (ix86_option_override_internal): Disallow
3333         MS ABI in x32 mode.
3334         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
3335         only for TARGET_LP64.
3336         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3337
3338 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3339
3340         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
3341         avoid warnings when GCC is built with a C++ compiler.
3342
3343 2011-07-22  Martin Jambor  <mjambor@suse.cz>
3344
3345         PR lto/49796
3346         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
3347         if decl node is in another partition, call cgraph_get_node only once.
3348
3349 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
3350
3351         * config.gcc (x86_64-*-linux*): Set
3352         default_gnu_indirect_function to yes.
3353
3354 2011-07-22  Richard Guenther  <rguenther@suse.de>
3355
3356         PR tree-optimization/45819
3357         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
3358         preserve volatile and notrap flags.
3359
3360 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3361             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3362
3363         PR bootstrap/49794
3364         * configure.ac: Test AM_ICONV with CXX.
3365         * configure: Regenerate.
3366         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
3367
3368 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3369
3370         PR bootstrap/49797
3371         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
3372         (set_cloog_options): Use it.
3373
3374 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
3375
3376         PR c++/49756
3377         * gcc.c (main): Call stack_limit_increase (64MB).
3378         * toplev.c (toplev_main): Likewise.
3379
3380 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3381
3382         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
3383         instead of force_reg.
3384
3385 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3386
3387         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
3388         needed and use force_reg after convert.
3389         (ix86_expand_call): Likewise.
3390         (ix86_expand_special_args_builtin): Likewise.
3391         (ix86_expand_builtin): Likewise.
3392
3393 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3394
3395         PR middle-end/47654
3396         PR middle-end/49649
3397         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
3398         in parameter.  Initialize v1 and v2 based on the values returned
3399         by clast_name_to_lb_ub.
3400         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
3401         values.
3402         (type_for_clast_bin): Same.
3403         (type_for_clast_expr): Same.
3404         (type_for_clast_eq): Update calls to type_for_clast_expr.
3405         (type_for_clast_for): Same.
3406         (build_iv_mapping): Same.
3407         * graphite-ppl.h (value_min): New.
3408
3409 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3410
3411         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
3412         types whenever possible.
3413
3414 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3415
3416         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
3417         and ub fields.
3418         (new_clast_name_index): Add lb and ub parameters.
3419         (free_clast_name_index): New.
3420         (clast_name_to_lb_ub): New.
3421         (save_clast_name_index): Add lb and ub parameters.
3422         (compute_bounds_for_param): New.
3423         (type_for_level): Removed.
3424         (type_for_clast_for): Removed level parameter.  Do not call
3425         type_for_level.
3426         (graphite_create_new_loop): Store the lb and ub for the clast_name
3427         of the iterator of the loop that has been generated.
3428         (graphite_create_new_loop_guard): Remove parameter level.
3429         (create_params_index): Store the lb and ub of each parameter.