diff options
author | David Edelsohn <edelsohn@gnu.org> | 2003-04-22 15:01:18 +0000 |
---|---|---|
committer | David Edelsohn <dje@gcc.gnu.org> | 2003-04-22 11:01:18 -0400 |
commit | 85e50b6ba8ca2221593838878ab8d804b37faf44 (patch) | |
tree | ee72cba827c7a86639b3c34912d8d1ba9c6e5d2a /gcc/fold-const.c | |
parent | 256c249cf916c692809166f946d5fb7926c3fa40 (diff) | |
download | gcc-85e50b6ba8ca2221593838878ab8d804b37faf44.tar.gz |
fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT macro defaulting to original BRANCH_COST heuristic.
* fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
macro defaulting to original BRANCH_COST heuristic.
* doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
* config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
From-SVN: r65942
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 146f40f97ac..eb65795e913 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3414,6 +3414,10 @@ merge_ranges (pin_p, plow, phigh, in0_p, low0, high0, in1_p, low1, high1) return 1; } +#ifndef RANGE_TEST_NON_SHORT_CIRCUIT +#define RANGE_TEST_NON_SHORT_CIRCUIT (BRANCH_COST >= 2) +#endif + /* EXP is some logical combination of boolean tests. See if we can merge it into some range test. Return the new tree if so. */ @@ -3450,7 +3454,7 @@ fold_range_test (exp) /* On machines where the branch cost is expensive, if this is a short-circuited branch and the underlying object on both sides is the same, make a non-short-circuit operation. */ - else if (BRANCH_COST >= 2 + else if (RANGE_TEST_NON_SHORT_CIRCUIT && lhs != 0 && rhs != 0 && (TREE_CODE (exp) == TRUTH_ANDIF_EXPR || TREE_CODE (exp) == TRUTH_ORIF_EXPR) |