aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-07-15 00:56:40 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-07-15 00:56:40 +0000
commit70f4db88d5b749a697d49fee7ceedb59bfba2b75 (patch)
tree7c3aa98ef4aab437adc68a6474b307130e8dc204 /llvm/lib/Analysis/ValueTracking.cpp
parent7a63c3b3899fd33b51c2d32f08cad34b5ee5a46f (diff)
downloadllvm-70f4db88d5b749a697d49fee7ceedb59bfba2b75.zip
llvm-70f4db88d5b749a697d49fee7ceedb59bfba2b75.tar.gz
llvm-70f4db88d5b749a697d49fee7ceedb59bfba2b75.tar.bz2
Teach GetUnderlyingObject / BasicAA about addrspacecast
llvm-svn: 213025
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 9e2deaa..bfdc349 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -1901,7 +1901,8 @@ llvm::GetUnderlyingObject(Value *V, const DataLayout *TD, unsigned MaxLookup) {
for (unsigned Count = 0; MaxLookup == 0 || Count < MaxLookup; ++Count) {
if (GEPOperator *GEP = dyn_cast<GEPOperator>(V)) {
V = GEP->getPointerOperand();
- } else if (Operator::getOpcode(V) == Instruction::BitCast) {
+ } else if (Operator::getOpcode(V) == Instruction::BitCast ||
+ Operator::getOpcode(V) == Instruction::AddrSpaceCast) {
V = cast<Operator>(V)->getOperand(0);
} else if (GlobalAlias *GA = dyn_cast<GlobalAlias>(V)) {
if (GA->mayBeOverridden())