diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2012-02-27 23:16:46 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2012-02-27 23:16:46 +0000 |
commit | cd38485b8ae2928cc8cb3bb67dcff7c7b7529ebe (patch) | |
tree | 6f77e5fed9ce604841730fc0e910747ec72647b8 /lib/Analysis/BasicAliasAnalysis.cpp | |
parent | 0cae72c47eac96ea53def5c1964aae188618f389 (diff) |
Duncan pointed out that if the alignment isn't explicitly specified, it defaults to the ABI alignment. Given that, make this code a bit more aggressive in such cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151584 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r-- | lib/Analysis/BasicAliasAnalysis.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Analysis/BasicAliasAnalysis.cpp b/lib/Analysis/BasicAliasAnalysis.cpp index 23b89ddf75..20ecfd26a9 100644 --- a/lib/Analysis/BasicAliasAnalysis.cpp +++ b/lib/Analysis/BasicAliasAnalysis.cpp @@ -120,11 +120,11 @@ static uint64_t getObjectSize(const Value *V, const TargetData &TD, return AliasAnalysis::UnknownSize; uint64_t Size = TD.getTypeAllocSize(AccessTy); - if (RoundToAlign) { - if (!Align) - return AliasAnalysis::UnknownSize; + // If there is an explicitly specified alignment, and we need to + // take alignment into account, round up the size. (If the alignment + // is implicit, getTypeAllocSize is sufficient.) + if (RoundToAlign && Align) Size = RoundUpToAlignment(Size, Align); - } return Size; } |