diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2013-08-01 22:42:18 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2013-08-01 22:42:18 +0000 |
commit | 186f8f9d41ea5dfa219144fec3cdb4bf2dd0f64a (patch) | |
tree | 24785385821aaa296e1ccb7b3dd57e5612cdf7c1 /lib/Transforms/Utils/Local.cpp | |
parent | 72bc423e7f88808f562798504f8405eee625f272 (diff) | |
download | external_llvm-186f8f9d41ea5dfa219144fec3cdb4bf2dd0f64a.zip external_llvm-186f8f9d41ea5dfa219144fec3cdb4bf2dd0f64a.tar.gz external_llvm-186f8f9d41ea5dfa219144fec3cdb4bf2dd0f64a.tar.bz2 |
Teach getOrEnforceKnownAlignment about address spaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187629 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/Local.cpp')
-rw-r--r-- | lib/Transforms/Utils/Local.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Transforms/Utils/Local.cpp b/lib/Transforms/Utils/Local.cpp index dddddf4..08e1808 100644 --- a/lib/Transforms/Utils/Local.cpp +++ b/lib/Transforms/Utils/Local.cpp @@ -928,12 +928,13 @@ static unsigned enforceKnownAlignment(Value *V, unsigned Align, /// and it is more than the alignment of the ultimate object, see if we can /// increase the alignment of the ultimate object, making this check succeed. unsigned llvm::getOrEnforceKnownAlignment(Value *V, unsigned PrefAlign, - const DataLayout *TD) { + const DataLayout *DL) { assert(V->getType()->isPointerTy() && "getOrEnforceKnownAlignment expects a pointer!"); - unsigned BitWidth = TD ? TD->getPointerSizeInBits() : 64; + unsigned BitWidth = DL ? DL->getPointerTypeSizeInBits(V->getType()) : 64; + APInt KnownZero(BitWidth, 0), KnownOne(BitWidth, 0); - ComputeMaskedBits(V, KnownZero, KnownOne, TD); + ComputeMaskedBits(V, KnownZero, KnownOne, DL); unsigned TrailZ = KnownZero.countTrailingOnes(); // Avoid trouble with ridiculously large TrailZ values, such as @@ -946,7 +947,7 @@ unsigned llvm::getOrEnforceKnownAlignment(Value *V, unsigned PrefAlign, Align = std::min(Align, +Value::MaximumAlignment); if (PrefAlign > Align) - Align = enforceKnownAlignment(V, Align, PrefAlign, TD); + Align = enforceKnownAlignment(V, Align, PrefAlign, DL); // We don't need to make any adjustment. return Align; |