Lines Matching refs:Alignment
34 static bool isAligned(const Value *Base, const APInt &Offset, Align Alignment, in isAligned() argument
37 const APInt APAlign(Offset.getBitWidth(), Alignment.value()); in isAligned()
39 return BA >= Alignment && !(Offset & (APAlign - 1)); in isAligned()
45 const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, in isDereferenceableAndAlignedPointer() argument
64 return isDereferenceableAndAlignedPointer(Sel->getTrueValue(), Alignment, in isDereferenceableAndAlignedPointer()
67 isDereferenceableAndAlignedPointer(Sel->getFalseValue(), Alignment, in isDereferenceableAndAlignedPointer()
76 BC->getOperand(0), Alignment, Size, DL, CtxI, DT, TLI, in isDereferenceableAndAlignedPointer()
93 return isAligned(V, Offset, Alignment, DL); in isDereferenceableAndAlignedPointer()
102 V, {Attribute::Dereferenceable, Attribute::Alignment}, nullptr, in isDereferenceableAndAlignedPointer()
106 if (RK.AttrKind == Attribute::Alignment) in isDereferenceableAndAlignedPointer()
110 if (AlignRK && DerefRK && AlignRK.ArgValue >= Alignment.value() && in isDereferenceableAndAlignedPointer()
127 !Offset.urem(APInt(Offset.getBitWidth(), Alignment.value())) in isDereferenceableAndAlignedPointer()
140 Base, Alignment, Offset + Size.sextOrTrunc(Offset.getBitWidth()), DL, in isDereferenceableAndAlignedPointer()
147 Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer()
151 return isDereferenceableAndAlignedPointer(ASC->getOperand(0), Alignment, in isDereferenceableAndAlignedPointer()
157 return isDereferenceableAndAlignedPointer(RP, Alignment, Size, DL, CtxI, in isDereferenceableAndAlignedPointer()
185 return isAligned(V, Offset, Alignment, DL); in isDereferenceableAndAlignedPointer()
194 bool llvm::isDereferenceableAndAlignedPointer(const Value *V, Align Alignment, in isDereferenceableAndAlignedPointer() argument
206 return ::isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer()
227 const Align Alignment = DL.getValueOrABITypeAlignment(MA, Ty); in isDereferenceableAndAlignedPointer() local
230 return isDereferenceableAndAlignedPointer(V, Alignment, AccessSize, DL, CtxI, in isDereferenceableAndAlignedPointer()
281 const Align Alignment = LI->getAlign(); in isDereferenceableAndAlignedInLoop() local
288 return isDereferenceableAndAlignedPointer(Ptr, Alignment, EltSize, DL, in isDereferenceableAndAlignedInLoop()
318 if (EltSize.urem(Alignment.value()) != 0) in isDereferenceableAndAlignedInLoop()
320 return isDereferenceableAndAlignedPointer(Base, Alignment, AccessSize, DL, in isDereferenceableAndAlignedInLoop()
335 bool llvm::isSafeToLoadUnconditionally(Value *V, Align Alignment, APInt &Size, in isSafeToLoadUnconditionally() argument
342 if (isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, TLI)) in isSafeToLoadUnconditionally()
395 if (AccessedAlign < Alignment) in isSafeToLoadUnconditionally()
410 bool llvm::isSafeToLoadUnconditionally(Value *V, Type *Ty, Align Alignment, in isSafeToLoadUnconditionally() argument
416 return isSafeToLoadUnconditionally(V, Alignment, Size, DL, ScanFrom, DT, TLI); in isSafeToLoadUnconditionally()