From: Artur Pilipenko Date: Fri, 9 Oct 2015 15:58:26 +0000 (+0000) Subject: ValueTracking: use getAlignment in isAligned X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=fb36ba7b83c01857d2838ac1be550e14639d3d01;p=oota-llvm.git ValueTracking: use getAlignment in isAligned Reviewed By: reames Differential Revision: http://reviews.llvm.org/D13517 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249841 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/ValueTracking.cpp b/lib/Analysis/ValueTracking.cpp index 2259d871c8c..8b0850d105e 100644 --- a/lib/Analysis/ValueTracking.cpp +++ b/lib/Analysis/ValueTracking.cpp @@ -2998,20 +2998,7 @@ static bool isDereferenceableFromAttribute(const Value *V, const DataLayout &DL, static bool isAligned(const Value *Base, APInt Offset, unsigned Align, const DataLayout &DL) { - APInt BaseAlign(Offset.getBitWidth(), 0); - if (const AllocaInst *AI = dyn_cast(Base)) - BaseAlign = AI->getAlignment(); - else if (const GlobalVariable *GV = dyn_cast(Base)) - BaseAlign = GV->getAlignment(); - else if (const Argument *A = dyn_cast(Base)) - BaseAlign = A->getParamAlignment(); - else if (auto CS = ImmutableCallSite(Base)) - BaseAlign = CS.getAttributes().getParamAlignment(AttributeSet::ReturnIndex); - else if (const LoadInst *LI = dyn_cast(Base)) - if (MDNode *MD = LI->getMetadata(LLVMContext::MD_align)) { - ConstantInt *CI = mdconst::extract(MD->getOperand(0)); - BaseAlign = CI->getLimitedValue(); - } + APInt BaseAlign(Offset.getBitWidth(), getAlignment(Base, DL)); if (!BaseAlign) { Type *Ty = Base->getType()->getPointerElementType();