Lines Matching refs:Alignment

29 static bool isAligned(const Value *Base, const APInt &Offset, Align Alignment,  in isAligned()  argument
32 const APInt APAlign(Offset.getBitWidth(), Alignment.value()); in isAligned()
34 return BA >= Alignment && !(Offset & (APAlign - 1)); in isAligned()
40 const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, in isDereferenceableAndAlignedPointer() argument
59 return isDereferenceableAndAlignedPointer(Sel->getTrueValue(), Alignment, in isDereferenceableAndAlignedPointer()
62 isDereferenceableAndAlignedPointer(Sel->getFalseValue(), Alignment, in isDereferenceableAndAlignedPointer()
71 BC->getOperand(0), Alignment, Size, DL, CtxI, DT, TLI, in isDereferenceableAndAlignedPointer()
88 return isAligned(V, Offset, Alignment, DL); in isDereferenceableAndAlignedPointer()
97 V, {Attribute::Dereferenceable, Attribute::Alignment}, nullptr, in isDereferenceableAndAlignedPointer()
101 if (RK.AttrKind == Attribute::Alignment) in isDereferenceableAndAlignedPointer()
105 if (AlignRK && DerefRK && AlignRK.ArgValue >= Alignment.value() && in isDereferenceableAndAlignedPointer()
122 !Offset.urem(APInt(Offset.getBitWidth(), Alignment.value())) in isDereferenceableAndAlignedPointer()
135 Base, Alignment, Offset + Size.sextOrTrunc(Offset.getBitWidth()), DL, in isDereferenceableAndAlignedPointer()
142 Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer()
146 return isDereferenceableAndAlignedPointer(ASC->getOperand(0), Alignment, in isDereferenceableAndAlignedPointer()
152 return isDereferenceableAndAlignedPointer(RP, Alignment, Size, DL, CtxI, in isDereferenceableAndAlignedPointer()
180 return isAligned(V, Offset, Alignment, DL); in isDereferenceableAndAlignedPointer()
189 bool llvm::isDereferenceableAndAlignedPointer(const Value *V, Align Alignment, in isDereferenceableAndAlignedPointer() argument
201 return ::isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer()
206 Align Alignment, in isDereferenceableAndAlignedPointer() argument
223 return isDereferenceableAndAlignedPointer(V, Alignment, AccessSize, DL, CtxI, in isDereferenceableAndAlignedPointer()
274 const Align Alignment = LI->getAlign(); in isDereferenceableAndAlignedInLoop() local
281 return isDereferenceableAndAlignedPointer(Ptr, Alignment, EltSize, DL, in isDereferenceableAndAlignedInLoop()
311 if (EltSize.urem(Alignment.value()) != 0) in isDereferenceableAndAlignedInLoop()
313 return isDereferenceableAndAlignedPointer(Base, Alignment, AccessSize, DL, in isDereferenceableAndAlignedInLoop()
328 bool llvm::isSafeToLoadUnconditionally(Value *V, Align Alignment, APInt &Size, in isSafeToLoadUnconditionally() argument
335 if (isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, TLI)) in isSafeToLoadUnconditionally()
388 if (AccessedAlign < Alignment) in isSafeToLoadUnconditionally()
403 bool llvm::isSafeToLoadUnconditionally(Value *V, Type *Ty, Align Alignment, in isSafeToLoadUnconditionally() argument
412 return isSafeToLoadUnconditionally(V, Alignment, Size, DL, ScanFrom, DT, TLI); in isSafeToLoadUnconditionally()