Disable the asserts that check that normalization is perfectly

invertible. ScalarEvolution's folding routines don't always succeed
in canonicalizing equal expressions to a single canonical form, and
this can cause these asserts to fail, even though there's no actual
correctness problem. This fixes PR8066.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113021 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2010-09-03 22:12:56 +00:00
parent e8f279cbd4
commit 46ffb231c6

View File

@ -108,7 +108,11 @@ const SCEV *llvm::TransformForPostIncUse(TransformKind Kind,
Result = SE.getMinusSCEV(Result, TransformedStep);
Loops.insert(L);
}
#ifdef XDEBUG
#if 0
// This assert is conceptually correct, but ScalarEvolution currently
// sometimes fails to canonicalize two equal SCEVs to exactly the same
// form. It's possibly a pessimization when this happens, but it isn't a
// correctness problem, so disable this assert for now.
assert(S == TransformForPostIncUse(Denormalize, Result,
User, OperandValToReplace,
Loops, SE, DT) &&
@ -122,7 +126,8 @@ const SCEV *llvm::TransformForPostIncUse(TransformKind Kind,
User, OperandValToReplace, Loops, SE, DT);
Result = SE.getMinusSCEV(Result, TransformedStep);
}
#ifdef XDEBUG
#if 0
// See the comment on the assert above.
assert(S == TransformForPostIncUse(Denormalize, Result,
User, OperandValToReplace,
Loops, SE, DT) &&