summaryrefslogtreecommitdiff
path: root/include/llvm/Support/ValueHandle.h
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2012-08-13 23:06:54 +0000
committerNadav Rotem <nrotem@apple.com>2012-08-13 23:06:54 +0000
commit7b6783a03f16376e8e2d0d9791f090ef32727c8f (patch)
tree5a52d078f152b92426f9f57633c4934016d95f3d /include/llvm/Support/ValueHandle.h
parent8dff60e96a0b3044628511b0e43a59788de56b9d (diff)
downloadllvm-7b6783a03f16376e8e2d0d9791f090ef32727c8f.tar.gz
llvm-7b6783a03f16376e8e2d0d9791f090ef32727c8f.tar.bz2
llvm-7b6783a03f16376e8e2d0d9791f090ef32727c8f.tar.xz
LICM uses AliasSet information to hoist and sink instructions. However, other passes, such as LoopRotate
may invalidate its AliasSet because SSAUpdater does not update the AliasSet properly. This patch teaches SSAUpdater to notify AliasSet that it made changes. The testcase in PR12901 is too big to be useful and I could not reduce it to a normal size. rdar://11872059 PR12901 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Support/ValueHandle.h')
-rw-r--r--include/llvm/Support/ValueHandle.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/llvm/Support/ValueHandle.h b/include/llvm/Support/ValueHandle.h
index 6787633c1d..61e21b86ea 100644
--- a/include/llvm/Support/ValueHandle.h
+++ b/include/llvm/Support/ValueHandle.h
@@ -110,11 +110,12 @@ protected:
V != DenseMapInfo<Value *>::getTombstoneKey();
}
-private:
+public:
// Callbacks made from Value.
static void ValueIsDeleted(Value *V);
static void ValueIsRAUWd(Value *Old, Value *New);
+private:
// Internal implementation details.
ValueHandleBase **getPrevPtr() const { return PrevPair.getPointer(); }
HandleBaseKind getKind() const { return PrevPair.getInt(); }