diff options
author | Roger Sayle <roger@eyesopen.com> | 2003-09-16 17:16:25 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-09-16 17:16:25 +0000 |
commit | 0c6d17eca1ca73e0b3799d75c28aadac9adaeb85 (patch) | |
tree | a192947f5361f11b60ac0e1c25f61e8c3c0526b8 /gcc/cfgloopanal.c | |
parent | 37af03cba8d6cd7b1fd7830748e3d9d6e47f3009 (diff) | |
download | gcc-0c6d17eca1ca73e0b3799d75c28aadac9adaeb85.zip gcc-0c6d17eca1ca73e0b3799d75c28aadac9adaeb85.tar.gz gcc-0c6d17eca1ca73e0b3799d75c28aadac9adaeb85.tar.bz2 |
re PR bootstrap/12269 (Mainline failed to bootstrap on Linux/ia64)
PR bootstrap/12269
* simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
argument to be VOIDmode, taking the mode of the comparison from
the operands. Only call simplify_relational_operation if we
know the mode of the comparison. Honor FLOAT_STORE_FLAG_VALUE
if comparison has a floating point result. Ensure that the
result is always of the specified mode.
(simplify_replace_rtx): Simplify call to simplify_gen_relational.
(simplify_unary_operation): Ensure the correct mode and cmp_mode
are always passed to simplify_gen_relational. Simplify NOT of
comparison operator in any mode, not just BImode.
(simplify_ternary_operation): Correct tests on the return value
of simplify_relational_operation to use const_true_rtx, not
const1_rtx. Abort if it ever returns a non-constant result.
* cfgloopanal.c (count_strange_loop_iterations): Use the function
simplify_relational_operation, not simplify_gen_relational, if
we're only interested in constant comparisons and will ignore
non-constant results.
From-SVN: r71439
Diffstat (limited to 'gcc/cfgloopanal.c')
-rw-r--r-- | gcc/cfgloopanal.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c index 68dd928..57c3bac 100644 --- a/gcc/cfgloopanal.c +++ b/gcc/cfgloopanal.c @@ -470,7 +470,7 @@ count_strange_loop_iterations (rtx init, rtx lim, enum rtx_code cond, /* If we are able to prove that we don't pass the first test, we are done. */ - rqmt = simplify_gen_relational (cond, SImode, mode, init, lim); + rqmt = simplify_relational_operation (cond, mode, init, lim); if (rqmt == const0_rtx) return const0_rtx; @@ -560,7 +560,7 @@ count_strange_loop_iterations (rtx init, rtx lim, enum rtx_code cond, /* If this is const_true_rtx and we did not take a conservative approximation of after_wrap above, we might iterate the calculation (but of course we would have to take care about infinite cases). Ignore this for now. */ - rqmt = simplify_gen_relational (cond, SImode, mode, after_wrap, lim); + rqmt = simplify_relational_operation (cond, mode, after_wrap, lim); if (rqmt != const0_rtx) return NULL_RTX; |