aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@multimania.com>2002-05-30 21:33:32 +0000
committerRichard Henderson <rth@gcc.gnu.org>2002-05-30 14:33:32 -0700
commitce60bf25b22ac87577c2e4efdc5a1bdacaa05151 (patch)
treedd32c83a5ab688b1765c9c952a826e5e04b594de /gcc/expr.h
parentd18b1ed89ece9698c8e3d0a90534bbf9fe103951 (diff)
downloadgcc-ce60bf25b22ac87577c2e4efdc5a1bdacaa05151.zip
gcc-ce60bf25b22ac87577c2e4efdc5a1bdacaa05151.tar.gz
gcc-ce60bf25b22ac87577c2e4efdc5a1bdacaa05151.tar.bz2
expmed.c (const_mult_add_overflow_p): New.
* expmed.c (const_mult_add_overflow_p): New. * expr.h: Declare it. * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it. Don't eliminate the biv if the giv has a constant multiplier and the rhs argument of the comparison does satisfy the predicate. Use expand_mult_add to compute the replacement constant. From-SVN: r54075
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 91ffa3f..fa51a8a 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -758,6 +758,7 @@ extern rtx extract_bit_field PARAMS ((rtx, unsigned HOST_WIDE_INT,
enum machine_mode, enum machine_mode,
HOST_WIDE_INT));
extern rtx expand_mult PARAMS ((enum machine_mode, rtx, rtx, rtx, int));
+extern bool const_mult_add_overflow_p PARAMS ((rtx, rtx, rtx, enum machine_mode, int));
extern rtx expand_mult_add PARAMS ((rtx, rtx, rtx, rtx,enum machine_mode, int));
extern rtx expand_mult_highpart_adjust PARAMS ((enum machine_mode, rtx, rtx, rtx, rtx, int));