summaryrefslogtreecommitdiff
path: root/gcc/predict.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-04-23 10:47:34 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-04-23 10:47:34 +0000
commitc311b856b2cba0c426fdc646db8ae60a59f035c0 (patch)
tree82eb7f2396f54b578dc352f34d49acdd01bb3d25 /gcc/predict.c
parenta87365c70a434f981dcbe71d287d0197d99424f5 (diff)
downloadgcc-c311b856b2cba0c426fdc646db8ae60a59f035c0.tar.gz
Tweak uses of new API
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@209689 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/predict.c')
-rw-r--r--gcc/predict.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/gcc/predict.c b/gcc/predict.c
index c9c106606e7..d8669e39327 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -1309,33 +1309,34 @@ predict_iv_comparison (struct loop *loop, basic_block bb,
bool overflow, overall_overflow = false;
widest_int compare_count, tem;
- widest_int loop_bound = wi::to_widest (loop_bound_var);
- widest_int compare_bound = wi::to_widest (compare_var);
- widest_int base = wi::to_widest (compare_base);
- widest_int compare_step = wi::to_widest (compare_step_var);
-
/* (loop_bound - base) / compare_step */
- tem = wi::sub (loop_bound, base, SIGNED, &overflow);
+ tem = wi::sub (wi::to_widest (loop_bound_var),
+ wi::to_widest (compare_base), SIGNED, &overflow);
overall_overflow |= overflow;
- widest_int loop_count = wi::div_trunc (tem, compare_step, SIGNED,
- &overflow);
+ widest_int loop_count = wi::div_trunc (tem,
+ wi::to_widest (compare_step_var),
+ SIGNED, &overflow);
overall_overflow |= overflow;
- if (!wi::neg_p (compare_step)
+ if (!wi::neg_p (wi::to_widest (compare_step_var))
^ (compare_code == LT_EXPR || compare_code == LE_EXPR))
{
/* (loop_bound - compare_bound) / compare_step */
- tem = wi::sub (loop_bound, compare_bound, SIGNED, &overflow);
+ tem = wi::sub (wi::to_widest (loop_bound_var),
+ wi::to_widest (compare_var), SIGNED, &overflow);
overall_overflow |= overflow;
- compare_count = wi::div_trunc (tem, compare_step, SIGNED, &overflow);
+ compare_count = wi::div_trunc (tem, wi::to_widest (compare_step_var),
+ SIGNED, &overflow);
overall_overflow |= overflow;
}
else
{
/* (compare_bound - base) / compare_step */
- tem = wi::sub (compare_bound, base, SIGNED, &overflow);
+ tem = wi::sub (wi::to_widest (compare_var),
+ wi::to_widest (compare_base), SIGNED, &overflow);
overall_overflow |= overflow;
- compare_count = wi::div_trunc (tem, compare_step, SIGNED, &overflow);
+ compare_count = wi::div_trunc (tem, wi::to_widest (compare_step_var),
+ SIGNED, &overflow);
overall_overflow |= overflow;
}
if (compare_code == LE_EXPR || compare_code == GE_EXPR)