diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 6c44b0da45a9..26032e703206 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -797,10 +797,6 @@ static void computeKnownBitsFromAssume(const Value *V, APInt &KnownZero, // FIXME: Publish a warning/remark that we have encountered UB or the compiler // is broken. - // FIXME: Implement a stronger version of "I give up" by invalidating/clearing - // the assumption cache. This should indicate that the cache is corrupted so - // future callers will not waste time repopulating it with faulty assumptions. - if ((KnownZero & KnownOne) != 0) { KnownZero.clearAllBits(); KnownOne.clearAllBits(); diff --git a/llvm/test/Transforms/InstSimplify/assume.ll b/llvm/test/Transforms/InstSimplify/assume.ll index 2edcc0c23670..4255238126b8 100644 --- a/llvm/test/Transforms/InstSimplify/assume.ll +++ b/llvm/test/Transforms/InstSimplify/assume.ll @@ -28,8 +28,7 @@ define i64 @PR31809() { ; Similar to above: there's no way to know which assumption is truthful, ; so just don't crash. The second icmp+assume gets processed later, so that -; determines the return value. This can be improved by permanently invalidating -; the cached assumptions for this function. +; determines the return value. define i8 @conflicting_assumptions(i8 %x) { ; CHECK-LABEL: @conflicting_assumptions(