summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2014-01-06 19:43:14 +0000
committerAndrew Trick <atrick@apple.com>2014-01-06 19:43:14 +0000
commita55aaf7fe6b5728c60050cc3664fffe762f85aa1 (patch)
tree7199ec9e27eb0bad1eae2aaf376e6ead42549130 /include
parent1abc3c0b7fe517ac7fc0d215c0e93003518e6270 (diff)
downloadllvm-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.h7
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,