diff options
author | Andrew Trick <atrick@apple.com> | 2014-01-06 19:43:14 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2014-01-06 19:43:14 +0000 |
commit | a55aaf7fe6b5728c60050cc3664fffe762f85aa1 (patch) | |
tree | 7199ec9e27eb0bad1eae2aaf376e6ead42549130 /include | |
parent | 1abc3c0b7fe517ac7fc0d215c0e93003518e6270 (diff) | |
download | llvm-a55aaf7fe6b5728c60050cc3664fffe762f85aa1.tar.gz llvm-a55aaf7fe6b5728c60050cc3664fffe762f85aa1.tar.bz2 llvm-a55aaf7fe6b5728c60050cc3664fffe762f85aa1.tar.xz |
Reapply r198478 "Fix PR18361: Invalidate LoopDispositions after LoopSimplify hoists things."
Now with a fix for PR18384: ValueHandleBase::ValueIsDeleted.
We need to invalidate SCEV's loop info when we delete a block, even if no values are hoisted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198631 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Analysis/ScalarEvolution.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/llvm/Analysis/ScalarEvolution.h b/include/llvm/Analysis/ScalarEvolution.h index a397046315..26dd4dd5fc 100644 --- a/include/llvm/Analysis/ScalarEvolution.h +++ b/include/llvm/Analysis/ScalarEvolution.h @@ -784,6 +784,13 @@ namespace llvm { /// disconnect it from a def-use chain linking it to a loop. void forgetValue(Value *V); + /// \brief Called when the client has changed the disposition of values in + /// this loop. + /// + /// We don't have a way to invalidate per-loop dispositions. Clear and + /// recompute is simpler. + void forgetLoopDispositions(const Loop *L) { LoopDispositions.clear(); } + /// GetMinTrailingZeros - Determine the minimum number of zero bits that S /// is guaranteed to end in (at every loop iteration). It is, at the same /// time, the minimum number of times S is divisible by 2. For example, |