From 0774902a007e429217c5d2d12f53a6abf548afee Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Mon, 27 Feb 2012 23:16:46 +0000 Subject: 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. llvm-svn: 151584 --- llvm/lib/Analysis/BasicAliasAnalysis.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp') diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp index 23b89ddf75f..20ecfd26a98 100644 --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/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; } -- cgit v1.2.3