Lines Matching refs:DL
30 const DataLayout &DL) { in isAligned() argument
31 Align BA = Base->getPointerAlignment(DL); in isAligned()
40 const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL, in isDereferenceableAndAlignedPointer() argument
60 Size, DL, CtxI, DT, TLI, Visited, in isDereferenceableAndAlignedPointer()
63 Size, DL, CtxI, DT, TLI, Visited, in isDereferenceableAndAlignedPointer()
71 BC->getOperand(0), Alignment, Size, DL, CtxI, DT, TLI, in isDereferenceableAndAlignedPointer()
77 V->getPointerDereferenceableBytes(DL, CheckForNonNull, in isDereferenceableAndAlignedPointer()
81 if (!CheckForNonNull || isKnownNonZero(V, DL, 0, nullptr, CtxI, DT)) { in isDereferenceableAndAlignedPointer()
87 APInt Offset(DL.getTypeStoreSizeInBits(Ty), 0); in isDereferenceableAndAlignedPointer()
88 return isAligned(V, Offset, Alignment, DL); in isDereferenceableAndAlignedPointer()
120 APInt Offset(DL.getIndexTypeSizeInBits(GEP->getType()), 0); in isDereferenceableAndAlignedPointer()
121 if (!GEP->accumulateConstantOffset(DL, Offset) || Offset.isNegative() || in isDereferenceableAndAlignedPointer()
135 Base, Alignment, Offset + Size.sextOrTrunc(Offset.getBitWidth()), DL, in isDereferenceableAndAlignedPointer()
142 Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer()
147 Size, DL, CtxI, DT, TLI, in isDereferenceableAndAlignedPointer()
152 return isDereferenceableAndAlignedPointer(RP, Alignment, Size, DL, CtxI, in isDereferenceableAndAlignedPointer()
169 if (getObjectSize(V, ObjSize, DL, TLI, Opts)) { in isDereferenceableAndAlignedPointer()
172 isKnownNonZero(V, DL, 0, nullptr, CtxI, DT) && !V->canBeFreed()) { in isDereferenceableAndAlignedPointer()
179 APInt Offset(DL.getTypeStoreSizeInBits(Ty), 0); in isDereferenceableAndAlignedPointer()
180 return isAligned(V, Offset, Alignment, DL); in isDereferenceableAndAlignedPointer()
191 const DataLayout &DL, in isDereferenceableAndAlignedPointer() argument
201 return ::isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, in isDereferenceableAndAlignedPointer()
207 const DataLayout &DL, in isDereferenceableAndAlignedPointer() argument
221 APInt AccessSize(DL.getPointerTypeSizeInBits(V->getType()), in isDereferenceableAndAlignedPointer()
222 DL.getTypeStoreSize(Ty)); in isDereferenceableAndAlignedPointer()
223 return isDereferenceableAndAlignedPointer(V, Alignment, AccessSize, DL, CtxI, in isDereferenceableAndAlignedPointer()
228 const DataLayout &DL, in isDereferenceablePointer() argument
232 return isDereferenceableAndAlignedPointer(V, Ty, Align(1), DL, CtxI, DT, TLI); in isDereferenceablePointer()
269 auto &DL = LI->getModule()->getDataLayout(); in isDereferenceableAndAlignedInLoop() local
272 APInt EltSize(DL.getIndexTypeSizeInBits(Ptr->getType()), in isDereferenceableAndAlignedInLoop()
273 DL.getTypeStoreSize(LI->getType()).getFixedSize()); in isDereferenceableAndAlignedInLoop()
281 return isDereferenceableAndAlignedPointer(Ptr, Alignment, EltSize, DL, in isDereferenceableAndAlignedInLoop()
313 return isDereferenceableAndAlignedPointer(Base, Alignment, AccessSize, DL, in isDereferenceableAndAlignedInLoop()
329 const DataLayout &DL, in isSafeToLoadUnconditionally() argument
335 if (isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, DT, TLI)) in isSafeToLoadUnconditionally()
393 LoadSize <= DL.getTypeStoreSize(AccessedTy)) in isSafeToLoadUnconditionally()
397 LoadSize <= DL.getTypeStoreSize(AccessedTy)) in isSafeToLoadUnconditionally()
404 const DataLayout &DL, in isSafeToLoadUnconditionally() argument
408 TypeSize TySize = DL.getTypeStoreSize(Ty); in isSafeToLoadUnconditionally()
411 APInt Size(DL.getIndexTypeSizeInBits(V->getType()), TySize.getFixedValue()); in isSafeToLoadUnconditionally()
412 return isSafeToLoadUnconditionally(V, Alignment, Size, DL, ScanFrom, DT, TLI); in isSafeToLoadUnconditionally()
449 const DataLayout &DL) { in areNonOverlapSameBaseLoadAndStore() argument
450 APInt LoadOffset(DL.getIndexTypeSizeInBits(LoadPtr->getType()), 0); in areNonOverlapSameBaseLoadAndStore()
451 APInt StoreOffset(DL.getIndexTypeSizeInBits(StorePtr->getType()), 0); in areNonOverlapSameBaseLoadAndStore()
453 DL, LoadOffset, /* AllowNonInbounds */ false); in areNonOverlapSameBaseLoadAndStore()
455 DL, StoreOffset, /* AllowNonInbounds */ false); in areNonOverlapSameBaseLoadAndStore()
458 auto LoadAccessSize = LocationSize::precise(DL.getTypeStoreSize(LoadTy)); in areNonOverlapSameBaseLoadAndStore()
459 auto StoreAccessSize = LocationSize::precise(DL.getTypeStoreSize(StoreTy)); in areNonOverlapSameBaseLoadAndStore()
469 const DataLayout &DL, bool *IsLoadCSE) { in getAvailableLoadStore() argument
483 if (CastInst::isBitOrNoopPointerCastable(LI->getType(), AccessTy, DL)) { in getAvailableLoadStore()
507 if (CastInst::isBitOrNoopPointerCastable(Val->getType(), AccessTy, DL)) in getAvailableLoadStore()
510 TypeSize StoreSize = DL.getTypeSizeInBits(Val->getType()); in getAvailableLoadStore()
511 TypeSize LoadSize = DL.getTypeSizeInBits(AccessTy); in getAvailableLoadStore()
514 return ConstantFoldLoadFromConst(C, AccessTy, DL); in getAvailableLoadStore()
527 const DataLayout &DL = ScanBB->getModule()->getDataLayout(); in findAvailablePtrLoadStore() local
550 AtLeastAtomic, DL, IsLoadCSE)) in findAvailablePtrLoadStore()
572 SI->getValueOperand()->getType(), DL)) in findAvailablePtrLoadStore()
607 const DataLayout &DL = Load->getModule()->getDataLayout(); in FindAvailableLoadedValue() local
629 AtLeastAtomic, DL, IsLoadCSE); in FindAvailableLoadedValue()
649 bool llvm::canReplacePointersIfEqual(Value *A, Value *B, const DataLayout &DL, in canReplacePointersIfEqual() argument
661 APInt OneByte(DL.getPointerTypeSizeInBits(Ty), 1); in canReplacePointersIfEqual()
663 isDereferenceableAndAlignedPointer(B, Align(1), OneByte, DL, CtxI); in canReplacePointersIfEqual()