From 27bcd47cfab04b1b1e6d2712e34b9b289c7a2dd7 Mon Sep 17 00:00:00 2001 From: Lawrence Crowl Date: Fri, 7 Sep 2012 00:06:35 +0000 Subject: Modify gcc/*.[hc] double_int call sites to use the new interface. This change entailed adding a few new methods to double_int. The change results in a 0.163% time improvement with a 70% confidence. Tested on x86_64. Index: gcc/ChangeLog 2012-09-06 Lawrence Crowl * double-int.h (double_int::operator &=): New. (double_int::operator ^=): New. (double_int::operator |=): New. (double_int::mul_with_sign): Modify overflow parameter to bool*. (double_int::add_with_sign): New. (double_int::ule): New. (double_int::sle): New. (binary double_int::operator *): Remove parameter name. (binary double_int::operator +): Likewise. (binary double_int::operator -): Likewise. (binary double_int::operator &): Likewise. (double_int::operator |): Likewise. (double_int::operator ^): Likewise. (double_int::and_not): Likewise. (double_int::from_shwi): Tidy formatting. (double_int::from_uhwi): Likewise. (double_int::from_uhwi): Likewise. * double-int.c (double_int::mul_with_sign): Modify overflow parameter to bool*. (double_int::add_with_sign): New. (double_int::ule): New. (double_int::sle): New. * builtins.c: Modify to use the new double_int interface. * cgraph.c: Likewise. * combine.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expmed.c: Likewise. * expr.c: Likewise. * fixed-value.c: Likewise. * fold-const.c: Likewise. * gimple-fold.c: Likewise. * gimple-ssa-strength-reduction.c: Likewise. * gimplify-rtx.c: Likewise. * ipa-prop.c: Likewise. * loop-iv.c: Likewise. * optabs.c: Likewise. * stor-layout.c: Likewise. * tree-affine.c: Likewise. * tree-cfg.c: Likewise. * tree-dfa.c: Likewise. * tree-flow-inline.h: Likewise. * tree-object-size.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-address.c: Likewise. * tree-ssa-alias.c: Likewise. * tree-ssa-ccp.c: Likewise. * tree-ssa-forwprop.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-phiopt.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-sccvn: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa.c: Likewise. * tree-switch-conversion.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vrp.c: Likewise. * tree.h: Likewise. * tree.c: Likewise. * varasm.c: Likewise. From-SVN: r191047 --- gcc/tree-ssa-forwprop.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'gcc/tree-ssa-forwprop.c') diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index 532b9c5..3f5b2f9 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -813,11 +813,10 @@ forward_propagate_addr_expr_1 (tree name, tree def_rhs, { double_int off = mem_ref_offset (lhs); tree new_ptr; - off = double_int_add (off, - shwi_to_double_int (def_rhs_offset)); + off += double_int::from_shwi (def_rhs_offset); if (TREE_CODE (def_rhs_base) == MEM_REF) { - off = double_int_add (off, mem_ref_offset (def_rhs_base)); + off += mem_ref_offset (def_rhs_base); new_ptr = TREE_OPERAND (def_rhs_base, 0); } else @@ -898,11 +897,10 @@ forward_propagate_addr_expr_1 (tree name, tree def_rhs, { double_int off = mem_ref_offset (rhs); tree new_ptr; - off = double_int_add (off, - shwi_to_double_int (def_rhs_offset)); + off += double_int::from_shwi (def_rhs_offset); if (TREE_CODE (def_rhs_base) == MEM_REF) { - off = double_int_add (off, mem_ref_offset (def_rhs_base)); + off += mem_ref_offset (def_rhs_base); new_ptr = TREE_OPERAND (def_rhs_base, 0); } else @@ -2373,8 +2371,7 @@ associate_pointerplus (gimple_stmt_iterator *gsi) if (gimple_assign_rhs1 (def_stmt) != ptr) return false; - algn = double_int_to_tree (TREE_TYPE (ptr), - double_int_not (tree_to_double_int (algn))); + algn = double_int_to_tree (TREE_TYPE (ptr), ~tree_to_double_int (algn)); gimple_assign_set_rhs_with_ops (gsi, BIT_AND_EXPR, ptr, algn); fold_stmt_inplace (gsi); update_stmt (stmt); @@ -2537,7 +2534,7 @@ combine_conversions (gimple_stmt_iterator *gsi) tem = fold_build2 (BIT_AND_EXPR, inside_type, defop0, double_int_to_tree - (inside_type, double_int_mask (inter_prec))); + (inside_type, double_int::mask (inter_prec))); if (!useless_type_conversion_p (type, inside_type)) { tem = force_gimple_operand_gsi (gsi, tem, true, NULL_TREE, true, -- cgit v1.1