diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2017-10-19 05:33:28 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2017-10-19 05:33:28 +0000 |
commit | 8801482e48f5afd0a76d78ba0c6d518a355ed642 (patch) | |
tree | deef073173a3d3f1db552cb39d76dbd7c7f1eb0a | |
parent | 1fd7e8c37af621d75b191deec9721b23ca36c9ea (diff) |
[NFC][IRCE] Filter out empty ranges early
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316146 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp b/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp index 9cdc1d18963..111713b541c 100644 --- a/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp +++ b/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp @@ -1655,12 +1655,14 @@ static Optional<InductiveRangeCheck::Range> IntersectRange(ScalarEvolution &SE, const Optional<InductiveRangeCheck::Range> &R1, const InductiveRangeCheck::Range &R2) { - if (!R1.hasValue()) { - if (!R2.isEmpty()) - return R2; + if (R2.isEmpty()) return None; - } + if (!R1.hasValue()) + return R2; auto &R1Value = R1.getValue(); + // We never return empty ranges from this function, and R1 is supposed to be + // a result of intersection. Thus, R1 is never empty. + assert(!R1Value.isEmpty() && "We should never have empty R1!"); // TODO: we could widen the smaller range and have this work; but for now we // bail out to keep things simple. |