OSDN Git Service

2011-08-18 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 32162ec..4491a17 100644 (file)
@@ -1,3 +1,290 @@
+2011-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (tree_int_cst_msb): Remove.
+       * tree.c (tree_int_cst_msb): Likewise.
+       (tree_int_cst_sign_bit): Move from ...
+       * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
+
+2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
+       * doc/tm.texi: Regenerate.
+       * target.def (rtx_costs): Add an opno parameter.
+       * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
+       (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
+       * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
+       (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
+       * cse.c (COST_IN): Add an opno parameter.
+       (notreg_cost): Likewise.  Update call to rtx_cost.
+       (COST, fold_rtx): Update accordingly.
+       * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
+       * expmed.c (emit_store_flag): Likewise.
+       * optabs.c (avoid_expensive_constant): Add an opno parameter.
+       Update call to rtx_cost.
+       (expand_binop_directly, expand_binop): Likewise.
+       (expand_twoval_binop, prepare_cmp_insn): Likewise.
+       * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
+       (set_src_cost, get_full_set_src_cost): Update accordingly.
+       * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
+       to target hook.
+       (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
+       (default_adress_cost): Update calls to rtx_cost.
+
+       * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
+       (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
+       (arm_rtx_costs): Add an opno parameter.
+       * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
+       adjust any recursive rtx-cost calls.
+       * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
+       * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
+       * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
+       * config/cris/cris.c (cris_rtx_costs): Likewise.
+       * config/frv/frv.c (frv_rtx_costs): Likewise.
+       * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
+       * config/i386/i386.c (ix86_rtx_costs): Likewise.
+       * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
+       * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
+       * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
+       * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
+       * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
+       * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
+       * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
+       * config/mep/mep.c (mep_rtx_cost): Likewise.
+       * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
+       * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
+       (mips_zero_extend_cost): Add an opno parameter.
+       * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
+       * config/mn10300/mn10300.c (mn10300_address_cost): Update call
+       to rtx_cost.
+       (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
+       rtx-cost calls.
+       * config/pa/pa.c (hppa_rtx_costs): Likewise.
+       * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
+       * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
+       * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
+       (rs6000_debug_rtx_costs): Likewise.
+       * config/s390/s390.c (s390_rtx_costs): Likewise.
+       * config/score/score-protos.h (score_rtx_costs): Likewise.
+       * config/score/score.c (score_rtx_costs): Likewise.
+       * config/sh/sh.c (andcosts): Update call to rtx_cost.
+       (sh_rtx_costs): Add an opno parameter.
+       * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
+       * config/spu/spu.c (spu_rtx_costs): Likewise.
+       * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
+       * config/v850/v850.c (v850_rtx_costs): Likewise.
+       * config/vax/vax.c (vax_rtx_costs): Likewise.
+       * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
+
+2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
+       * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
+       rtx_cost.
+       * calls.c (precompute_register_parameters): Likewise.
+       * combine.c (expand_compound_operation, make_extraction): Likewise.
+       (force_to_mode, distribute_and_simplify_rtx): Likewise.
+       * dse.c (find_shift_sequence): Likewise.
+       * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
+       * expr.c (compress_float_constant): Likewise.
+       * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
+       * gcse.c (want_to_gcse_p): Likewise.
+       * ifcvt.c (noce_try_sign_mask): Likewise.
+       * loop-doloop.c (doloop_optimize): Likewise.
+       * loop-invariant.c (create_new_invariant): Likewise.
+       * optabs.c (avoid_expensive_constant): Likewise.
+       * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
+       (try_replace_in_use, reload_cse_move2add): Likewise.
+       * reload1.c (calculate_elim_costs_all_insns): Likewise.
+       (note_reg_elim_costly): Likewise.
+       * rtlanal.c (insn_rtx_cost): Likewise.
+       * simplify-rtx.c (simplify_binary_operation_1): Likewise.
+       * stmt.c (lshift_cheap_p): Likewise.
+       * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
+       * config/avr/avr.c (final_prescan_insn): Likewise.
+       * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
+       * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
+
+2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
+
+       * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
+       * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
+       * cfgloopanal.c (seq_cost): Likewise.
+       * loop-invariant.c (create_new_invariant): Likewise.
+       * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
+       (reload_cse_move2add): Use get_full_set_rtx_cost.
+
+2011-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * expr.c (get_inner_reference): Fix typo in last change.
+
+2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
+           Joseph Myers  <joseph@codesourcery.com>
+
+       PR tree-optimization/49963
+       * hwint.c (absu_hwi): Define.
+       * hwint.h (absu_hwi): Declare.
+       * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
+       of abs_hwi.
+       * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
+       * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
+
+2011-08-18  Richard Guenther  <rguenther@suse.de>
+
+       * expr.c (get_inner_reference): Sign-extend the constant
+       twos-complement offset before doing arbitrary precision
+       arithmetic on it.
+       * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
+       (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
+       to get_constraint_for_ptr_offset.
+
+2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/50068
+       * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
+
+2011-08-17  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (convert_to_ptrofftype_loc): New function.
+       (convert_to_ptrofftype): Define.
+       * builtins.c (expand_builtin_bzero): Use size_type_node.
+       (fold_builtin_bzero): Likewise.
+       (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
+       * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
+       * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
+       (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
+       * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
+       * fold-const.c (build_range_check): Negate using the original
+       type.
+       (fold_unary_loc): Use fold_build_pointer_plus_loc.
+       * gimple-fold.c (gimple_adjust_this_by_delta): Use
+       convert_to_ptrofftype.
+       * gimplify.c (gimplify_self_mod_expr): Likewise.
+       * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
+       (graphite_create_new_loop_guard): Likewise.
+       * graphite-sese-to-poly.c (my_long_long): Remove.
+       (scop_ivs_can_be_represented): Adjust.
+       * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
+       * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
+       * tree-loop-distribution.c (build_size_arg_loc): Use
+       size_type_node.
+       (generate_memset_zero): Simplify.
+       * tree-mudflap.c: Use fold_convert, not convert.
+       * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
+       its own type.
+       (determine_offset): Likewise for DR_STEP.
+       (valid_initializer_p): Likewise.
+       * tree-profile.c (prepare_instrumented_value): Convert the pointer
+       to an integer type of same size.
+       * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
+       to sizetype without need.
+       * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
+       * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
+       * tree-ssa-loop-manip.c (create_iv): Likewise.
+       (determine_exit_conditions): Adjust comment.
+       * tree-ssa-pre.c (create_expression_by_pieces): Use
+       convert_to_ptrofftype.
+       * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
+       * varasm.c (array_size_for_constructor): Compute using double_ints.
+
+2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
+       when generating an integer result where possible.  Short-cut
+       comparison against 0 also for QImode.
+
+2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
+       * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
+       prototype.
+       * config/spu/spu.c (spu_legitimize_reload_address): New function.
+       (spu_legitimate_address_p): Do not check displacement if the base
+       is an eliminable stack register.
+
+2011-08-16  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
+       PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
+       * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
+       m32c_preferred_output_reload_class): Remove.
+       * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
+       Change rclass argument and return types to reg_class_t. Use
+       reg_class_subset_p instead of class_sizes.
+       (m32c_preferred_output_reload_class): Make static. Change rclass
+       argument and return types to reg_class_t.
+       (TARGET_PREFERRED_RELOAD_CLASS,
+       TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
+
+2011-08-16  Kai Tietz  <ktietz@redhat.com>
+
+       * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
+
+2011-08-16  Richard GUenther  <rguenther@suse.de>
+
+       PR tree-optimization/50082
+       * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
+       warnings here, instead of ...
+       (ssa_forward_propagate_and_combine): ... here.
+       (forward_propagate_into_comparison_1): Adjust.
+       (forward_propagate_into_comparison): Likewise.
+       (forward_propagate_into_gimple_cond): Likewise.
+       (forward_propagate_into_cond): Likewise.
+
+2011-08-16  Andreas Schwab  <schwab@redhat.com>
+
+       * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
+       instead of ggc_alloc_zone_vec_rtvec_def.
+
+2011-08-16  Richard Guenther  <rguenther@suse.de>
+
+       * tree.h (ptrofftype_p): New helper function.
+       * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
+       offset verification.
+       (verify_gimple_assign_binary): Likewise.
+       * tree.c (build2_stat): Likewise.
+       * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
+       (reset_evolution_in_loop): Likewise.
+       * tree-chrec.h (build_polynomial_chrec): Likewise.
+
+2011-08-16  Liang Wang  <lwang1@marvell.com>
+
+       * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
+       ggc_alloc_zone_vec_rtvec_def.
+
+2011-08-16  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (extract_range_from_multiplicative_op_1): New
+       helper factored out from ...
+       (extract_range_from_binary_expr_1): ... here.  Re-structure
+       to not glob handling too different tree codes.
+
+2011-08-15  Richard Henderson  <rth@redhat.com>
+
+       PR middle-end/50006
+       * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
+       setting out to include allocate_stack named pattern as well.
+       * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
+       * stmt.c (expand_stack_restore): Likewise.
+
+2011-08-15  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/50082
+       * fold-const.c (maybe_canonicalize_comparison_1): Properly
+       convert the modified operand to the other operand type.
+       (fold_comparison): Call maybe_canonicalize_comparison_1 with
+       useless conversions stripped from comparison operands.
+
+2011-08-15  Richard Guenther  <rguenther@suse.de>
+
+       * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
+       (extract_range_from_unary_expr_1): Restructure.
+
+2011-08-15  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/50058
+       * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
+       copy matching.
+
 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 
        PR target/50022
        (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
        Use CONST_INT_P.  Beauty.
 
-2011-08-12  David Li  <davidxl@google.com>
-
-       * cp/class.c (update_vtable_entry_for_fn): Set
-       LOST_PRIMARY bit properly.
-
 2011-08-12  Richard Henderson  <rth@redhat.com>
 
        PR rtl-opt/49994