OSDN Git Service

987baa9256940d94c0dda9dcb5fb357e66ee71a9
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
2
3         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
4         * doc/tm.texi: Regenerate.
5         * targhooks.c (default_preferred_output_reload_class): Don't use
6         PREFERRED_OUTPUT_RELOAD_CLASS macro.
7         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
8
9 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
10
11         PR tree-optimization/48739
12         * tree-ssa.c: Include cfgloop.h.
13         (execute_update_addresses_taken): When updating ssa, if in
14         loop closed SSA form, call rewrite_into_loop_closed_ssa instead of
15         update_ssa.
16         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
17
18 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
19
20         PR rtl-optimization/49936
21         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
22         for calculation of max register move costs.
23
24 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
25
26         * c-parser.c (c_parser_postfix_expression): Convert operands of
27         __builtin_complex to their semantic types.
28
29 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
30
31         PR middle-end/49721
32         * explow.c (convert_memory_address_addr_space): Also permute the
33         conversion and addition of constant for zero-extend.
34
35 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
36
37         * c-parser.c (c_parser_postfix_expression): Handle
38         RID_BUILTIN_COMPLEX.
39         * doc/extend.texi (__builtin_complex): Document.
40
41 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
42
43         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
44         beyond conversions.
45         (convert_mult_to_widen): Convert constant inputs to the right type.
46         (convert_plusminus_to_widen): Don't automatically reject inputs that
47         are not an SSA_NAME.
48         Convert constant inputs to the right type.
49
50 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
51
52         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
53         to the correct type.
54
55 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
56
57         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
58         unsigned inputs of different modes.
59         (convert_plusminus_to_widen): Likewise.
60
61 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
62
63         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
64         'type'.
65         Use 'type' from caller, not inferred from 'rhs'.
66         Don't reject non-conversion statements. Do return lhs in this case.
67         (is_widening_mult_p): Add new argument 'type'.
68         Use 'type' from caller, not inferred from 'stmt'.
69         Pass type to is_widening_mult_rhs_p.
70         (convert_mult_to_widen): Pass type to is_widening_mult_p.
71         (convert_plusminus_to_widen): Likewise.
72
73 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
74
75         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
76         Ensure the the larger type is the first operand.
77
78 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
79
80         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
81         unsupported unsigned multiplies to signed.
82         (convert_plusminus_to_widen): Likewise.
83
84 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
85
86         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
87         conversion statement separating multiply-and-accumulate.
88
89 2011-08-19  Richard Guenther  <rguenther@suse.de>
90
91         PR tree-optimization/50067
92         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
93         offset only if we accounted for it.
94
95 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
96
97         * config/arm/arm.md (maddhidi4): Remove '*' from name.
98         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
99         * optabs.c (find_widening_optab_handler_and_mode): New function.
100         (expand_widen_pattern_expr): Use find_widening_optab_handler.
101         (expand_binop_directly): Likewise.
102         (expand_binop): Likewise.
103         * optabs.h (find_widening_optab_handler): New macro define.
104         (find_widening_optab_handler_and_mode): New prototype.
105         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
106         type precision rules.
107         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
108         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
109         (is_widening_mult_rhs_p): Allow widening by more than one mode.
110         Explicitly disallow mis-matched input types.
111         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
112         input types to fit the new handler.
113         (convert_plusminus_to_widen): Likewise.
114
115 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
116
117         * expr.c (expand_expr_real_2): Use widening_optab_handler.
118         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
119         (gen_insn): $N now means $a must be wider than $b, not consecutive.
120         * optabs.c (widened_mode): New function.
121         (expand_widen_pattern_expr): Use widening_optab_handler.
122         (expand_binop_directly): Likewise.
123         (expand_binop): Likewise.
124         * optabs.h (widening_optab_handlers): New struct.
125         (optab_d): New member, 'widening'.
126         (widening_optab_handler): New function.
127         (set_widening_optab_handler): New function.
128         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
129         widening_optab_handler.
130         (convert_plusminus_to_widen): Likewise.
131
132 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
133
134         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
135         pedantic.
136         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax
137         comment.
138         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
139
140 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
141
142         * opth-gen.awk: Do not declare target save/restore structures and
143         functions if IN_RTS defined.
144
145 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
146
147         PR target/49437
148         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
149         when stack was realigned in interrupt handler prologue.
150
151 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
152
153         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
154         (quals_from_declspecs): Assert _Noreturn not present.
155         (grokdeclarator): Handle _Noreturn.
156         (build_null_declspecs): Initialize noreturn_p.
157         (declspecs_add_scspec): Handle RID_NORETURN.
158         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
159         (c_parser_attributes): Handle RID_NORETURN.
160         * c-tree.h (struct c_declspecs): Add noreturn_p.
161         * ginclude/stdnoreturn.h: New.
162         * Makefile.in (USER_H): Add stdnoreturn.h.
163
164 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
165
166         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
167         (OPTION_MASK_ISA_AVX_UNSET): Update.
168         (OPTION_MASK_ISA_AVX2_UNSET): New.
169         (ix86_handle_option): Handle OPT_mavx2 case.
170         * config/i386/cpuid.h (bit_AVX2): New.
171         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
172         AVX2 feature.
173         * config/i386/i386-c.c (ix86_target_macros_internal):
174         Conditionally define __AVX2__.
175         * config/i386/i386.c (ix86_option_override_internal): Define
176         PTA_AVX2.  Define "core-avx2" processor alias.  Handle avx2
177         option.
178         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
179         * config/i386/i386.h (TARGET_AVX2): New.
180         * config/i386/i386.opt (mavx2): New.
181         * doc/invoke.texi: Document -mavx2.
182
183 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
184
185         PR rtl-optimization/49890
186         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
187         subclasses of class which is superset of a pressure class.
188
189 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
190             Igor Zamyatin <igor.zamyatin@intel.com>
191
192         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
193         with HOST_WIDE_INT for isa_flag.
194         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
195         isa variables.
196
197         * config/i386/i386.c (ix86_target_string): Replace int with
198         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
199         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
200         (pta_flags): Removed.
201         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
202         (pta): Use HOST_WIDE_INT on flags.
203         (builtin_isa): Use HOST_WIDE_INT on isa.
204         (ix86_add_new_builtins): Likewise.
205         (def_builtin): Use HOST_WIDE_INT on mask.
206         (def_builtin_const): Likewise.
207         (builtin_description): Likewise.
208
209         * config/i386/i386.opt (ix86_isa_flags): Replace int with
210         HOST_WIDE_INT.
211         (ix86_isa_flags_explicit): Likewise.
212         (x_ix86_isa_flags_explicit): Likewise.
213
214 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
215
216         PR rtl-optimization/50107
217         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
218         (ira_hard_reg_in_set_p): New.
219
220         * ira-color.c (calculate_saved_nregs): New.
221         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
222         hard regs.
223         (allocno_reload_assign, fast_allocation): Use
224         ira_hard_reg_set_intersection_p instead of
225         ira_hard_reg_not_in_set_p.
226
227         * ira.c (setup_reg_renumber): Use
228         ira_hard_reg_set_intersection_p instead of
229         ira_hard_reg_not_in_set_p.
230         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
231         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
232
233         * ira-costs.c (ira_tune_allocno_costs): Use
234         ira_hard_reg_set_intersection_p instead of
235         ira_hard_reg_not_in_set_p.
236
237 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
238             Igor Zamyatin <igor.zamyatin@intel.com>
239
240         * hwint.h (HOST_WIDE_INT_1): New.
241
242         * opt-functions.awk (switch_bit_fields): Initialize the
243         host_wide_int field.
244         (host_wide_int_var_name): New.
245         (var_type_struct): Check and return HOST_WIDE_INT.
246
247         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
248
249         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
250
251         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
252         check masks for HOST_WIDE_INT.
253
254         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
255         (option_enabled): Likewise.
256         (get_option_state): Likewise.
257
258         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
259         to HOST_WIDE_INT.
260
261 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
262             Marc Glisse  <marc.glisse@normalesup.org>
263
264         PR libstdc++-v3/1773
265         * target.def (decl_mangling_context): New C++ hook.
266         * doc/tm.texi: Regenerate.
267         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
268         * config/sol2-protos.h: Group by source file.
269         (solaris_cxx_decl_mangling_context): Declare.
270         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
271         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
272         Use $<.
273         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
274         Add sol2-stubs.o to extra_objs.
275
276 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
277
278         PR target/50009
279         * stor-layout.c (update_alignment_for_field): Don't ICE on
280         packed flexible array members if ms_bitfield_layout_p.
281
282         PR target/50092
283         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
284         on the result before returning it.
285
286         PR debug/50017
287         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
288         is a debug stmt, use location of the first non-debug stmt after it.
289
290 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
291
292         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
293         (arm_size_rtx_costs): Likewise.
294
295 2011-08-18  Richard Guenther  <rguenther@suse.de>
296
297         * tree.h (tree_int_cst_msb): Remove.
298         * tree.c (tree_int_cst_msb): Likewise.
299         (tree_int_cst_sign_bit): Move from ...
300         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
301
302 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
303
304         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
305         * doc/tm.texi: Regenerate.
306         * target.def (rtx_costs): Add an opno parameter.
307         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
308         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
309         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
310         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
311         * cse.c (COST_IN): Add an opno parameter.
312         (notreg_cost): Likewise.  Update call to rtx_cost.
313         (COST, fold_rtx): Update accordingly.
314         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
315         * expmed.c (emit_store_flag): Likewise.
316         * optabs.c (avoid_expensive_constant): Add an opno parameter.
317         Update call to rtx_cost.
318         (expand_binop_directly, expand_binop): Likewise.
319         (expand_twoval_binop, prepare_cmp_insn): Likewise.
320         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
321         (set_src_cost, get_full_set_src_cost): Update accordingly.
322         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
323         to target hook.
324         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
325         (default_adress_cost): Update calls to rtx_cost.
326
327         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
328         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
329         (arm_rtx_costs): Add an opno parameter.
330         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
331         adjust any recursive rtx-cost calls.
332         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
333         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
334         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
335         * config/cris/cris.c (cris_rtx_costs): Likewise.
336         * config/frv/frv.c (frv_rtx_costs): Likewise.
337         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
338         * config/i386/i386.c (ix86_rtx_costs): Likewise.
339         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
340         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
341         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
342         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
343         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
344         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
345         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
346         * config/mep/mep.c (mep_rtx_cost): Likewise.
347         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
348         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
349         (mips_zero_extend_cost): Add an opno parameter.
350         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
351         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
352         to rtx_cost.
353         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
354         rtx-cost calls.
355         * config/pa/pa.c (hppa_rtx_costs): Likewise.
356         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
357         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
358         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
359         (rs6000_debug_rtx_costs): Likewise.
360         * config/s390/s390.c (s390_rtx_costs): Likewise.
361         * config/score/score-protos.h (score_rtx_costs): Likewise.
362         * config/score/score.c (score_rtx_costs): Likewise.
363         * config/sh/sh.c (andcosts): Update call to rtx_cost.
364         (sh_rtx_costs): Add an opno parameter.
365         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
366         * config/spu/spu.c (spu_rtx_costs): Likewise.
367         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
368         * config/v850/v850.c (v850_rtx_costs): Likewise.
369         * config/vax/vax.c (vax_rtx_costs): Likewise.
370         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
371
372 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
373
374         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
375         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
376         rtx_cost.
377         * calls.c (precompute_register_parameters): Likewise.
378         * combine.c (expand_compound_operation, make_extraction): Likewise.
379         (force_to_mode, distribute_and_simplify_rtx): Likewise.
380         * dse.c (find_shift_sequence): Likewise.
381         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
382         * expr.c (compress_float_constant): Likewise.
383         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
384         * gcse.c (want_to_gcse_p): Likewise.
385         * ifcvt.c (noce_try_sign_mask): Likewise.
386         * loop-doloop.c (doloop_optimize): Likewise.
387         * loop-invariant.c (create_new_invariant): Likewise.
388         * optabs.c (avoid_expensive_constant): Likewise.
389         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
390         (try_replace_in_use, reload_cse_move2add): Likewise.
391         * reload1.c (calculate_elim_costs_all_insns): Likewise.
392         (note_reg_elim_costly): Likewise.
393         * rtlanal.c (insn_rtx_cost): Likewise.
394         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
395         * stmt.c (lshift_cheap_p): Likewise.
396         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
397         * config/avr/avr.c (final_prescan_insn): Likewise.
398         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
399         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
400
401 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
402
403         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
404         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
405         * cfgloopanal.c (seq_cost): Likewise.
406         * loop-invariant.c (create_new_invariant): Likewise.
407         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
408         (reload_cse_move2add): Use get_full_set_rtx_cost.
409
410 2011-08-18  Richard Guenther  <rguenther@suse.de>
411
412         * expr.c (get_inner_reference): Fix typo in last change.
413
414 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
415             Joseph Myers  <joseph@codesourcery.com>
416
417         PR tree-optimization/49963
418         * hwint.c (absu_hwi): Define.
419         * hwint.h (absu_hwi): Declare.
420         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
421         of abs_hwi.
422         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
423         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
424
425 2011-08-18  Richard Guenther  <rguenther@suse.de>
426
427         * expr.c (get_inner_reference): Sign-extend the constant
428         twos-complement offset before doing arbitrary precision
429         arithmetic on it.
430         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
431         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
432         to get_constraint_for_ptr_offset.
433
434 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
435
436         PR target/50068
437         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
438
439 2011-08-17  Richard Guenther  <rguenther@suse.de>
440
441         * tree.h (convert_to_ptrofftype_loc): New function.
442         (convert_to_ptrofftype): Define.
443         * builtins.c (expand_builtin_bzero): Use size_type_node.
444         (fold_builtin_bzero): Likewise.
445         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
446         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
447         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
448         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
449         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
450         * fold-const.c (build_range_check): Negate using the original
451         type.
452         (fold_unary_loc): Use fold_build_pointer_plus_loc.
453         * gimple-fold.c (gimple_adjust_this_by_delta): Use
454         convert_to_ptrofftype.
455         * gimplify.c (gimplify_self_mod_expr): Likewise.
456         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
457         (graphite_create_new_loop_guard): Likewise.
458         * graphite-sese-to-poly.c (my_long_long): Remove.
459         (scop_ivs_can_be_represented): Adjust.
460         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
461         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
462         * tree-loop-distribution.c (build_size_arg_loc): Use
463         size_type_node.
464         (generate_memset_zero): Simplify.
465         * tree-mudflap.c: Use fold_convert, not convert.
466         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
467         its own type.
468         (determine_offset): Likewise for DR_STEP.
469         (valid_initializer_p): Likewise.
470         * tree-profile.c (prepare_instrumented_value): Convert the pointer
471         to an integer type of same size.
472         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
473         to sizetype without need.
474         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
475         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
476         * tree-ssa-loop-manip.c (create_iv): Likewise.
477         (determine_exit_conditions): Adjust comment.
478         * tree-ssa-pre.c (create_expression_by_pieces): Use
479         convert_to_ptrofftype.
480         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
481         * varasm.c (array_size_for_constructor): Compute using double_ints.
482
483 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
484
485         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
486         when generating an integer result where possible.  Short-cut
487         comparison against 0 also for QImode.
488
489 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
490
491         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
492         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
493         prototype.
494         * config/spu/spu.c (spu_legitimize_reload_address): New function.
495         (spu_legitimate_address_p): Do not check displacement if the base
496         is an eliminable stack register.
497
498 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
499
500         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
501         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
502         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
503         m32c_preferred_output_reload_class): Remove.
504         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
505         Change rclass argument and return types to reg_class_t. Use
506         reg_class_subset_p instead of class_sizes.
507         (m32c_preferred_output_reload_class): Make static. Change rclass
508         argument and return types to reg_class_t.
509         (TARGET_PREFERRED_RELOAD_CLASS,
510         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
511
512 2011-08-16  Kai Tietz  <ktietz@redhat.com>
513
514         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
515
516 2011-08-16  Richard GUenther  <rguenther@suse.de>
517
518         PR tree-optimization/50082
519         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
520         warnings here, instead of ...
521         (ssa_forward_propagate_and_combine): ... here.
522         (forward_propagate_into_comparison_1): Adjust.
523         (forward_propagate_into_comparison): Likewise.
524         (forward_propagate_into_gimple_cond): Likewise.
525         (forward_propagate_into_cond): Likewise.
526
527 2011-08-16  Andreas Schwab  <schwab@redhat.com>
528
529         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
530         instead of ggc_alloc_zone_vec_rtvec_def.
531
532 2011-08-16  Richard Guenther  <rguenther@suse.de>
533
534         * tree.h (ptrofftype_p): New helper function.
535         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
536         offset verification.
537         (verify_gimple_assign_binary): Likewise.
538         * tree.c (build2_stat): Likewise.
539         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
540         (reset_evolution_in_loop): Likewise.
541         * tree-chrec.h (build_polynomial_chrec): Likewise.
542
543 2011-08-16  Liang Wang  <lwang1@marvell.com>
544
545         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
546         ggc_alloc_zone_vec_rtvec_def.
547
548 2011-08-16  Richard Guenther  <rguenther@suse.de>
549
550         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
551         helper factored out from ...
552         (extract_range_from_binary_expr_1): ... here.  Re-structure
553         to not glob handling too different tree codes.
554
555 2011-08-15  Richard Henderson  <rth@redhat.com>
556
557         PR middle-end/50006
558         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
559         setting out to include allocate_stack named pattern as well.
560         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
561         * stmt.c (expand_stack_restore): Likewise.
562
563 2011-08-15  Richard Guenther  <rguenther@suse.de>
564
565         PR middle-end/50082
566         * fold-const.c (maybe_canonicalize_comparison_1): Properly
567         convert the modified operand to the other operand type.
568         (fold_comparison): Call maybe_canonicalize_comparison_1 with
569         useless conversions stripped from comparison operands.
570
571 2011-08-15  Richard Guenther  <rguenther@suse.de>
572
573         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
574         (extract_range_from_unary_expr_1): Restructure.
575
576 2011-08-15  Richard Guenther  <rguenther@suse.de>
577
578         PR tree-optimization/50058
579         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
580         copy matching.
581
582 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
583
584         PR target/50022
585         * config/arm/arm.c (output_move_double): Add 2 parameters
586         to count the number of insns emitted and whether to emit or not.
587         Use the flag to decide when to emit and count number of instructions
588         that will be emitted.
589         Handle case where output_move_double might be called for calculating
590         lengths with an invalid constant.
591         (arm_count_output_move_double_insns): Define.
592         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
593         (output_move_double): Adjust prototype.
594         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
595         output_move_double.
596         ("*movdi_vfp_cortexa8"): Likewise and add attribute
597         for ce_count.
598         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
599         ("*movdf_soft_insn"): Likewise.
600         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
601         ("*cirrus_thumb2_movdi"): Likewise.
602         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
603         ("*cirrus_movdf_hard_insn"): Likewise.
604         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
605         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
606         ("mov<mode>_internal VMMX"): Likewise.
607         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
608
609 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
610
611         * config/i386/i386.c (ix86_expand_round_sse4): New function.
612         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
613         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
614         for TARGET_ROUND.
615
616         (rint<mode>2): Simplify TARGET_ROUND check.
617         (floor<mode>2): Ditto.
618         (ceil<mode>2): Ditto.
619         (btrunc<mode>2): Ditto.
620
621 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
622
623         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
624         as mmix_preferred_output_reload_class.
625
626 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
627
628         * PR target/49903
629         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
630         (branch_unspec): New insn.
631         (branch): Beauty farm.
632         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
633         to be IF_THEN_ELSE.
634         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
635         New static functions.
636         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
637         Use CONST_INT_P.  Beauty.
638
639 2011-08-12  Richard Henderson  <rth@redhat.com>
640
641         PR rtl-opt/49994
642         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
643         * sched-deps.c (init_deps): Clear it.
644         (deps_analyze_insn): Consume it.
645         (sched_analyze_insn): Fill it.
646
647 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
648
649         PR target/48328
650         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
651         for tbh instructions.
652
653 2011-08-12   Diego Novillo  <dnovillo@google.com>
654
655         * data-streamer.h (streamer_write_zero): Rename from output_zero.
656         (streamer_write_uhwi): Rename from lto_output_uleb128.
657         (streamer_write_hwi): Rename from output_sleb128.
658         (streamer_write_string): Rename from lto_output_string.
659         (streamer_string_index): Rename from lto_string_index.
660         (streamer_write_string_with_length): Rename from
661         lto_output_string_with_length.
662         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
663         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
664         (streamer_read_string): Rename from lto_input_string.
665         (streamer_read_indexed_string): Rename from input_string_internal.
666         (streamer_read_uhwi): Rename from lto_input_uleb128.
667         (streamer_read_hwi): Rename from lto_input_sleb128.
668         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
669         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
670         (streamer_write_enum): Rename from lto_output_enum.
671         (streamer_read_enum): Rename from lto_input_enum.
672         (streamer_write_record_start): Rename from output_record_start.
673         (streamer_read_record_start): Rename from input_record_start.
674         (streamer_write_bitpack): Rename from lto_output_bitpack.
675         (streamer_read_bitpack): Rename from lto_input_bitpack.
676         (streamer_write_char_stream): Rename from lto_output_1_stream.
677         (streamer_read_uchar): Rename from lto_input_1_unsigned.
678         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
679         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
680         (streamer_read_string_cst): Rename from input_string_cst.
681         (streamer_read_chain): Rename from lto_input_chain.
682         (streamer_alloc_tree): Rename from lto_materialize_tree.
683         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
684         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
685         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
686         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
687         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
688         (streamer_write_chain): Rename from lto_output_chain.
689         (streamer_write_tree_header): Rename from lto_output_tree_header.
690         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
691         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
692         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
693         (streamer_write_builtin): Rename from lto_output_builtin_tree.
694         (streamer_check_handled_ts_structures): Rename from
695         check_handled_ts_structures.
696         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
697         (streamer_tree_cache_insert_at): Rename from
698         lto_streamer_cache_insert_at.
699         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
700         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
701         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
702         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
703         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
704         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
705         (write_identifier): Rename from output_identifier.
706         (write_ts_common_tree_pointers): Rename from
707         lto_output_ts_common_tree_pointers.
708         (write_ts_vector_tree_pointers): Rename from
709         lto_output_ts_vector_tree_pointers.
710         (write_ts_complex_tree_pointers): Rename from
711         lto_output_ts_complex_tree_pointers.
712         (write_ts_decl_minimal_tree_pointers): Rename from
713         lto_output_ts_decl_minimal_tree_pointers.
714         (write_ts_decl_common_tree_pointers): Rename from
715         lto_output_ts_decl_common_tree_pointers.
716         (write_ts_decl_non_common_tree_pointers): Rename from
717         lto_output_ts_decl_non_common_tree_pointers.
718         (write_ts_decl_with_vis_tree_pointers): Rename from
719         lto_output_ts_decl_with_vis_tree_pointers.
720         (write_ts_field_decl_tree_pointers): Rename from
721         lto_output_ts_field_decl_tree_pointers.
722         (write_ts_function_decl_tree_pointers): Rename from
723         lto_output_ts_function_decl_tree_pointers.
724         (write_ts_type_common_tree_pointers): Rename from
725         lto_output_ts_type_common_tree_pointers.
726         (write_ts_type_non_common_tree_pointers): Rename from
727         lto_output_ts_type_non_common_tree_pointers.
728         (write_ts_list_tree_pointers): Rename from
729         lto_output_ts_list_tree_pointers.
730         (write_ts_vec_tree_pointers): Rename from
731         lto_output_ts_vec_tree_pointers.
732         (write_ts_exp_tree_pointers): Rename from
733         lto_output_ts_exp_tree_pointers.
734         (write_ts_block_tree_pointers): Rename from
735         lto_output_ts_block_tree_pointers.
736         (write_ts_binfo_tree_pointers): Rename from
737         lto_output_ts_binfo_tree_pointers.
738         (write_ts_constructor_tree_pointers): Rename from
739         lto_output_ts_constructor_tree_pointers.
740         (write_ts_target_option): Rename from lto_output_ts_target_option.
741         (write_ts_translation_unit_decl_tree_pointers): Rename from
742         lto_output_ts_translation_unit_decl_tree_pointers.
743         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
744         Rename from lto_streamer_cache_add_to_node_array.
745         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
746         (record_common_node): Rename from lto_record_common_node.
747
748         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
749         declarations.
750         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
751         function.
752         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
753         unused function.
754         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
755         (ipa-reference.o): Likewise.
756         * lto-section-out.c: Include data-streamer.h.
757         * ipa-reference.c: Include data-streamer.h.
758
759 2011-08-12  Nick Clifton  <nickc@redhat.com>
760
761         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
762         * doc/md.texi (cmpstrn): Note that the comparison stops if both
763         fetched bytes are zero.
764         (cmpstr): Likewise.
765         (cmpmem): Note that the comparison does not stop if both of the
766         fetched bytes are zero.
767
768 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
769
770         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
771         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
772         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
773         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
774         to integer_type_node.
775         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
776         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
777         * builtins.c (expand_builtin_in): Ditto.
778         (mathfn_built_in_1): Ditto.
779         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
780         BUILT_IN_IFLOOR.
781         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
782         BUILT_IN_IROUND.
783         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
784         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
785         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
786
787 2011-08-12  Richard Guenther  <rguenther@suse.de>
788
789         * tree-vrp.c (extract_range_from_unary_expr_1): Implement
790         -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
3428 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
3429
3430         PR target/49816
3431         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
3432
3433 2011-07-22  Jason Merrill  <jason@redhat.com>
3434
3435         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
3436
3437 2011-07-22  Richard Henderson  <rth@redhat.com>
3438
3439         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
3440
3441 2011-07-22  Richard Henderson  <rth@redhat.com>
3442
3443         * jump.c (maybe_propagate_label_ref): Split out of...
3444         (mark_all_labels): ... here.  Do not attempt label_ref
3445         propagation while in cfglayout mode.
3446
3447 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
3448
3449         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
3450         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
3451         (dwarf_attr_name): Handle DW_AT_GNU_macros.
3452         (dwarf2out_define): If the vector is empty and
3453         lineno is 0, emit a dummy entry first.
3454         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
3455         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
3456         optimize_macinfo_range): New functions.
3457         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
3458         mergeable, optimize longer strings using
3459         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
3460         optimize longer sequences of define/undef ops from headers
3461         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
3462         emit a section headers.
3463         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
3464         and macinfo_section_label to DEBUG_MACRO_SECTION
3465         resp. DEBUG_MACRO_SECTION_LABEL.
3466         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
3467         instead of DW_AT_macro_info.
3468
3469         PR other/32998
3470         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
3471         options.
3472         * dwarf2out.c: Include opts.h.
3473         (dchar_p): New typedef.  Define heap VEC for it.
3474         (producer_string): New variable.
3475         (gen_producer_string): New function.
3476         (gen_compile_unit_die): Use it.
3477         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
3478         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
3479         * doc/invoke.texi: Document -grecord-gcc-switches and
3480         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
3481         to -frecord-gcc-switches description.
3482
3483 2011-07-22  Jason Merrill  <jason@redhat.com>
3484
3485         PR c++/30112
3486         * c-decl.c (c_linkage_bindings): Define.
3487
3488 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3489
3490         PR debug/49815
3491         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
3492
3493 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
3494
3495         * config/i386/i386.c (ix86_option_override_internal): Disallow
3496         MS ABI in x32 mode.
3497         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
3498         only for TARGET_LP64.
3499         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
3500
3501 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
3502
3503         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
3504         avoid warnings when GCC is built with a C++ compiler.
3505
3506 2011-07-22  Martin Jambor  <mjambor@suse.cz>
3507
3508         PR lto/49796
3509         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
3510         if decl node is in another partition, call cgraph_get_node only once.
3511
3512 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
3513
3514         * config.gcc (x86_64-*-linux*): Set
3515         default_gnu_indirect_function to yes.
3516
3517 2011-07-22  Richard Guenther  <rguenther@suse.de>
3518
3519         PR tree-optimization/45819
3520         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
3521         preserve volatile and notrap flags.
3522
3523 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3524             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3525
3526         PR bootstrap/49794
3527         * configure.ac: Test AM_ICONV with CXX.
3528         * configure: Regenerate.
3529         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
3530
3531 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3532
3533         PR bootstrap/49797
3534         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
3535         (set_cloog_options): Use it.
3536
3537 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
3538
3539         PR c++/49756
3540         * gcc.c (main): Call stack_limit_increase (64MB).
3541         * toplev.c (toplev_main): Likewise.
3542
3543 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3544
3545         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
3546         instead of force_reg.
3547
3548 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3549
3550         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
3551         needed and use force_reg after convert.
3552         (ix86_expand_call): Likewise.
3553         (ix86_expand_special_args_builtin): Likewise.
3554         (ix86_expand_builtin): Likewise.
3555
3556 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3557
3558         PR middle-end/47654
3559         PR middle-end/49649
3560         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
3561         in parameter.  Initialize v1 and v2 based on the values returned
3562         by clast_name_to_lb_ub.
3563         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
3564         values.
3565         (type_for_clast_bin): Same.
3566         (type_for_clast_expr): Same.
3567         (type_for_clast_eq): Update calls to type_for_clast_expr.
3568         (type_for_clast_for): Same.
3569         (build_iv_mapping): Same.
3570         * graphite-ppl.h (value_min): New.
3571
3572 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3573
3574         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
3575         types whenever possible.
3576
3577 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3578
3579         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
3580         and ub fields.
3581         (new_clast_name_index): Add lb and ub parameters.
3582         (free_clast_name_index): New.
3583         (clast_name_to_lb_ub): New.
3584         (save_clast_name_index): Add lb and ub parameters.
3585         (compute_bounds_for_param): New.
3586         (type_for_level): Removed.
3587         (type_for_clast_for): Removed level parameter.  Do not call
3588         type_for_level.
3589         (graphite_create_new_loop): Store the lb and ub for the clast_name
3590         of the iterator of the loop that has been generated.
3591         (graphite_create_new_loop_guard): Remove parameter level.
3592         (create_params_index): Store the lb and ub of each parameter.
3593         (gloog): Use free_clast_name_index.  Pass to create_params_index
3594         the current scop.
3595
3596 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3597
3598         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
3599         (max_precision_type): Inline max_signed_precision_type.
3600         (type_for_clast_red): Use max_precision_type.
3601         (type_for_clast_bin): Same.
3602         (type_for_clast_for): Same.
3603
3604 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3605
3606         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
3607         type_for_interval.
3608         (gcc_type_for_value): Renamed type_for_value.
3609         (gcc_type_for_clast_term): Renamed type_for_clast_term.
3610         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
3611         (gcc_type_for_clast_red): Renamed type_for_clast_red.
3612         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
3613         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
3614         (graphite_translate_clast_equation): Update calls.
3615         (compute_type_for_level): Renamed type_for_level.
3616         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
3617         (build_iv_mapping): Update calls.
3618         (graphite_create_new_loop_guard): Same.
3619
3620 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3621
3622         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
3623         comment.
3624
3625 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3626
3627         * graphite-clast-to-gimple.c (struct ivs_params): New.
3628         (clast_name_to_gcc): Use ivs_params to pass around parameters.
3629         (clast_to_gcc_expression): Same.
3630         (clast_to_gcc_expression_red): Same.
3631         (gcc_type_for_clast_term): Same.
3632         (gcc_type_for_clast_expr): Same.
3633         (gcc_type_for_clast_red): Same.
3634         (gcc_type_for_clast_bin): Same.
3635         (gcc_type_for_clast_eq): Same.
3636         (graphite_translate_clast_equation): Same.
3637         (graphite_create_guard_cond_expr): Same.
3638         (graphite_create_new_guard): Same.
3639         (graphite_create_new_loop): Same.
3640         (build_iv_mapping): Same.
3641         (translate_clast_user): Same.
3642         (graphite_create_new_loop_guard): Same.
3643         (translate_clast): Same.
3644         (translate_clast_for_loop): Same.
3645         (translate_clast_for): Same.
3646         (translate_clast_guard): Same.
3647         (initialize_cloog_names): Fix typo.
3648         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
3649
3650 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3651
3652         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
3653         (new_clast_name_index): Add level parameter.
3654         (clast_name_to_level): New.
3655         (save_clast_name_index): Add level parameter.
3656         (newivs_to_depth_to_newiv): Removed.
3657         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
3658         (graphite_create_new_loop): Add level parameter.  Pass level to
3659         save_clast_name_index.
3660         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
3661         (create_params_index): Pass level to save_clast_name_index.
3662
3663 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3664
3665         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
3666         recompute type, lb, and ub.  Get them from...
3667         (graphite_create_new_loop_guard): ...here.  Pass in parameter
3668         pointers to type, lb, and ub.
3669         (translate_clast_for_loop): Update function calls.
3670         (translate_clast_for): Same.
3671
3672 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
3673
3674         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
3675         psct_dynamic_dim.
3676         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
3677         (gcc_type_for_iv_of_clast_loop): Update use of level.
3678         (gloog): Start counting nesting level from 0.
3679         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
3680         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
3681         psct_dynamic_dim on level.
3682
3683 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3684
3685         * config/i386/i386.c (ix86_legitimize_address): Convert to
3686         Pmode if needed.
3687
3688 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
3689
3690         * config/i386/i386.c (function_value_64): Always return pointers
3691         in Pmode.
3692         (ix86_promote_function_mode): New.
3693         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
3694
3695 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3696
3697         PR tree-optimization/49749
3698         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
3699         remove no-longer-used maxrank variable.
3700
3701 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
3702
3703         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
3704
3705 2011-07-21  Jason Merrill  <jason@redhat.com>
3706
3707         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
3708         * recog.h (struct insn_data_d): Check it instead of
3709         HAVE_DESIGNATED_INITIALIZERS.
3710         * genoutput.c (output_insn_data): Likewise.
3711
3712 2011-07-21  Richard Guenther  <rguenther@suse.de>
3713
3714         PR tree-optimization/49770
3715         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
3716         valueized any operand.  Renamed from ...
3717         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
3718         (valueize_shared_reference_ops_from_ref): Return whether we
3719         valueized any operand.
3720         (vn_reference_lookup): Only when we valueized any operand
3721         use the valueized reference for alias analysis.  Do not preserve
3722         the original reference tree in this case.
3723
3724 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
3725
3726         * config/i386/i386.c (ix86_decompose_address): Reject all but
3727         register operands and subregs of DImode hard registers in index.
3728
3729 2011-07-21  Kai Tietz  <ktietz@redhat.com>
3730
3731         * fold-const.c (fold_unary_loc): Preserve indirect
3732         comparison cast to none-boolean type.
3733         * tree-ssa.c (useless_type_conversion_p): Preserve cast
3734         from/to boolean-type.
3735         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
3736         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
3737         * tree-cfg.c (verify_gimple_comparison): Check result
3738         type of comparison expression.
3739         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
3740         of condition result and disallow type-cast sinking into comparison.
3741
3742 2011-07-21  Richard Guenther  <rguenther@suse.de>
3743
3744         * tree-ssa-forwprop.c (combine_conversions): Return whether
3745         we have to run cfg-cleanup.  Properly remove dead stmts.
3746         (ssa_forward_propagate_and_combine): Adjust.
3747
3748 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
3749
3750         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
3751
3752 2011-07-21  Kai Tietz  <ktietz@redhat.com>
3753
3754         * tree-ssa-propagate.c (substitute_and_fold): Use
3755         do_dce flag to deside, if BB's statements are scanned
3756         in last to first, or first to last order.
3757
3758 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
3759
3760         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
3761
3762 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
3763             Uros Bizjak  <ubizjak@gmail.com>
3764             Richard Henderson  <rth@redhat.com>
3765
3766         * config/i386/constraints.md (w): New.
3767
3768         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
3769         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
3770
3771         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
3772         instead of TARGET_64BIT.
3773
3774         * config/i386/i386.md (indirect_jump): Replace
3775         nonimmediate_operand with indirect_branch_operand.
3776         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
3777         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
3778         Convert operand 0 to Pmode for x32 if not PIC.
3779         (*tablejump_1): Replace nonimmediate_operand with
3780         indirect_branch_operand.  Replace constraint "m" with "w".
3781         (*call_vzeroupper): Replace constraint "m" with "w".
3782         (*call): Likewise.
3783         (*call_rex64_ms_sysv_vzeroupper): Likewise.
3784         (*call_rex64_ms_sysv): Likewise.
3785         (*call_value_vzeroupper): Likewise.
3786         (*call_value): Likewise.
3787         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
3788         (*call_value_rex64_ms_sysv): Likewise.
3789         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
3790
3791         * config/i386/predicates.md (indirect_branch_operand): New.
3792         (call_insn_operand): Support x32.
3793
3794 2011-07-20  Michael Eager  <eager@eagercon.com>
3795
3796         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
3797
3798 2011-07-20  Richard Henderson  <rth@redhat.com>
3799
3800         * cfg.c (dump_bb_info): Dump basic_block->flags.
3801         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
3802
3803 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3804
3805         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3806         of DImode hard registers in index.
3807         (ix86_legitimate_address_p): Allow subregs of base and index to span
3808         more than a word.  Assert that subregs of base and index satisfy
3809         register_no_elim_operand predicates.  Reject addresses where
3810         base and index have different modes.
3811
3812 2011-07-20  Robert Millan  <rmh@gnu.org>
3813
3814         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
3815
3816 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3817
3818         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
3819         removing now-unnecessary assignment.
3820
3821 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3822
3823         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
3824         memory address space to the type's address space.
3825
3826 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3827
3828         PR target/36467
3829         PR target/49687
3830         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
3831         and expand appropriately if there is a CONST_INT in operand2.
3832         (usmulqihi3): New insn.
3833         (*sumulqihi3): New insn.
3834         (*osmulqihi3): New insn.
3835         (*oumulqihi3): New insn.
3836         (*muluqihi3.uconst): New insn_and_split.
3837         (*muluqihi3.sconst): New insn_and_split.
3838         (*mulsqihi3.sconst): New insn_and_split.
3839         (*mulsqihi3.uconst): New insn_and_split.
3840         (*mulsqihi3.oconst): New insn_and_split.
3841         (*ashifthi3.signx.const): New insn_and_split.
3842         (*ashifthi3.signx.const7): New insn_and_split.
3843         (*ashifthi3.zerox.const): New insn_and_split.
3844         (mulsqihi3): New insn.
3845         (muluqihi3): New insn.
3846         (muloqihi3): New insn.
3847         * config/avr/predicates.md (const_2_to_7_operand): New.
3848         (const_2_to_6_operand): New.
3849         (u8_operand): New.
3850         (s8_operand): New.
3851         (o8_operand): New.
3852         (s9_operand): New.
3853         (register_or_s9_operand): New.
3854
3855 2011-07-20  Kai Tietz  <ktietz@redhat.com>
3856
3857         * builtins.c (fold_builtin_expect): See through the cast
3858         from truthvalue_type_node to long.
3859
3860 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
3861
3862         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
3863         where we can use them from the standard and altivec instruction
3864         sets, instead of always using the 3 operand VSX forms that require
3865         the destination to overlap one of the inputs.
3866         (vsx_fms*): Ditto.
3867         (vsx_fnma*): Ditto.
3868         (vsx_fnms*): Ditto.
3869
3870         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
3871         for DF types.
3872         (fmsdf4_fpr): Ditto.
3873         (nfmadf4_fpr): Ditto.
3874         (nfmsdf4_fpr): Ditto.
3875
3876 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
3877
3878         * genrecog.c (make_insn_sequence): Correct position numbering
3879         when filtering out match_scratch and match_dup.
3880
3881 2011-07-20  Richard Guenther  <rguenther@suse.de>
3882
3883         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
3884         against already removed statements.
3885         (forward_propagate_into_comparison): Remove dead defining stmts.
3886         (forward_propagate_into_gimple_cond): Likewise.
3887         (forward_propagate_into_cond): Simplify.
3888         (ssa_forward_propagate_and_combine): Handle changed cfg from
3889         forward_propagate_into_comparison.
3890         * tree-ssa-phiopt.c (conditional_replacement): Use proper
3891         locations for newly built statements.
3892
3893 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
3894
3895         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
3896
3897 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3898
3899         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
3900         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
3901
3902 2011-07-20  Richard Guenther  <rguenther@suse.de>
3903
3904         PR middle-end/18908
3905         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
3906         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
3907         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
3908
3909 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
3910
3911         * config/frv/frv.c (frv_register_move_cost): Define explicitly
3912         costs for subclasses of GR_REGS.
3913
3914 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
3915
3916         PR target/49780
3917         * config/i386/predicates.md (no_seg_addres_operand): No more special.
3918         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
3919         of DImode hard registers in base.
3920         (ix86_legitimate_address_p): Allow SImode and DImode base and index
3921         registers.
3922
3923 2011-07-20  Richard Guenther  <rguenther@suse.de>
3924
3925         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
3926         (unify_nodes): Deal with that.
3927         (solve_graph): Likewise.
3928
3929 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
3930
3931         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
3932         canonicalize left operand from ZERO_EXTEND to AND.
3933
3934 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
3935
3936         * target.def (class_max_nregs): New hook.
3937         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
3938         * doc/tm.texi: Regenerate.
3939         * targhooks.c (default_class_max_nregs): New function.
3940         * targhooks.h (default_class_max_nregs): Declare.
3941         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
3942         x_ira_reg_class_min_nregs arrays to unsigned char.
3943         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
3944         hook instead of CLASS_MAX_NREGS macro.
3945         * reginfo.c (restore_register_info): Ditto.
3946         * ira-conflicts.c (process_regs_for_copy): Use
3947         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3948         Change type rclass and aclass vars to reg_class_t.
3949         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
3950         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
3951         reg_class_t.
3952         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
3953         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
3954
3955         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
3956         * config/i386/i386.c (ix86_class_max_nregs): New function.
3957         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
3958         instead of CLASS_MAX_NREGS macro.
3959         (TARGET_CLASS_MAX_NREGS): Define.
3960         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
3961         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
3962         * config/avr/avr.c (class_max_nregs): Remove function.
3963         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
3964         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
3965         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
3966         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
3967         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
3968         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
3969         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
3970         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
3971         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
3972         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
3973         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
3974         * config/score/score.h (CLASS_MAX_NREGS): Remove.
3975         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
3976         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
3977         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
3978
3979 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
3980
3981         * cif-code.def (OVERWRITABLE): Fix typo and move around.
3982         (TARGET_OPTIMIZATION_MISMATCH): Delete.
3983         (EH_PERSONALITY): Fix typo.
3984         (NON_CALL_EXCEPTIONS): Fix message.
3985         (OPTIMIZATION_MISMATCH): Adjust message.
3986         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
3987
3988 2011-07-19  Ian Lance Taylor  <iant@google.com>
3989
3990         * doc/install.texi (Configuration): Document
3991         --enable-build-poststage1-with-cxx.
3992
3993 2011-07-19  Robert Millan  <rmh@gnu.org>
3994
3995         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
3996         (GLIBC_DYNAMIC_LINKER): Remove.
3997
3998         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
3999         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
4000         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
4001         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
4002         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
4003         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
4004
4005         * config/mips/linux.h: Remove everything except for ...
4006         (GLIBC_DYNAMIC_LINKER): ... this macro.
4007
4008         * config/mips/linux64.h: Remove everything except for ...
4009         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
4010         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
4011         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
4012         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
4013         (GNU_USER_LINK_EMULATIONN32): New macros.
4014
4015         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
4016         Use the new headers.
4017
4018 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
4019
4020         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.