aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/Loads.cpp
diff options
context:
space:
mode:
authorArtur Pilipenko <apilipenko@azulsystems.com>2016-01-17 12:35:29 +0000
committerArtur Pilipenko <apilipenko@azulsystems.com>2016-01-17 12:35:29 +0000
commitf84dc06e5b4ba4f96fb6ef24b2df848c512f41d6 (patch)
treeef60cf0b47410ba11641cd6ca9e56c9f3b070dc6 /llvm/lib/Analysis/Loads.cpp
parente1f273d900b004ac1d1331794079973f8949e78f (diff)
downloadllvm-f84dc06e5b4ba4f96fb6ef24b2df848c512f41d6.zip
llvm-f84dc06e5b4ba4f96fb6ef24b2df848c512f41d6.tar.gz
llvm-f84dc06e5b4ba4f96fb6ef24b2df848c512f41d6.tar.bz2
Push isDereferenceableAndAlignedPointer down into isSafeToLoadUnconditionally
Reviewed By: reames Differential Revision: http://reviews.llvm.org/D16226 llvm-svn: 258010
Diffstat (limited to 'llvm/lib/Analysis/Loads.cpp')
-rw-r--r--llvm/lib/Analysis/Loads.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/Loads.cpp b/llvm/lib/Analysis/Loads.cpp
index bad745a..5b2113a 100644
--- a/llvm/lib/Analysis/Loads.cpp
+++ b/llvm/lib/Analysis/Loads.cpp
@@ -71,6 +71,9 @@ bool llvm::isSafeToLoadUnconditionally(Value *V, unsigned Align,
Align = DL.getABITypeAlignment(V->getType()->getPointerElementType());
assert(isPowerOf2_32(Align));
+ if (isDereferenceableAndAlignedPointer(V, Align, DL))
+ return true;
+
int64_t ByteOffset = 0;
Value *Base = V;
Base = GetPointerBaseWithConstantOffset(V, ByteOffset, DL);