OSDN Git Service

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