Lines Matching defs:DL
30 const DataLayout &DL) {
31 Align BA = Base->getPointerAlignment(DL);
38 const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL,
59 APInt Offset(DL.getIndexTypeSizeInBits(GEP->getType()), 0);
60 if (!GEP->accumulateConstantOffset(DL, Offset) || Offset.isNegative() ||
74 Base, Alignment, Offset + Size.sextOrTrunc(Offset.getBitWidth()), DL,
82 BC->getOperand(0), Alignment, Size, DL, CtxI, AC, DT, TLI,
89 Size, DL, CtxI, AC, DT, TLI,
92 Size, DL, CtxI, AC, DT, TLI,
98 V->getPointerDereferenceableBytes(DL, CheckForNonNull,
103 isKnownNonZero(V, SimplifyQuery(DL, DT, AC, CtxI))) {
107 APInt Offset(DL.getTypeStoreSizeInBits(V->getType()), 0);
108 return isAligned(V, Offset, Alignment, DL);
117 return isDereferenceableAndAlignedPointer(RP, Alignment, Size, DL, CtxI,
134 if (getObjectSize(V, ObjSize, DL, TLI, Opts)) {
137 isKnownNonZero(V, SimplifyQuery(DL, DT, AC, CtxI)) &&
143 APInt Offset(DL.getTypeStoreSizeInBits(V->getType()), 0);
144 return isAligned(V, Offset, Alignment, DL);
152 Alignment, Size, DL, CtxI, AC, DT,
157 Size, DL, CtxI, AC, DT, TLI,
188 const Value *V, Align Alignment, const APInt &Size, const DataLayout &DL,
197 return ::isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, AC,
202 const Value *V, Type *Ty, Align Alignment, const DataLayout &DL,
215 APInt AccessSize(DL.getPointerTypeSizeInBits(V->getType()),
216 DL.getTypeStoreSize(Ty));
217 return isDereferenceableAndAlignedPointer(V, Alignment, AccessSize, DL, CtxI,
222 const DataLayout &DL,
227 return isDereferenceableAndAlignedPointer(V, Ty, Align(1), DL, CtxI, AC, DT,
266 auto &DL = LI->getDataLayout();
269 APInt EltSize(DL.getIndexTypeSizeInBits(Ptr->getType()),
270 DL.getTypeStoreSize(LI->getType()).getFixedValue());
278 return isDereferenceableAndAlignedPointer(Ptr, Alignment, EltSize, DL,
344 return isDereferenceableAndAlignedPointer(Base, Alignment, AccessSize, DL,
360 const DataLayout &DL,
367 if (isDereferenceableAndAlignedPointer(V, Alignment, Size, DL, CtxI, AC, DT,
426 TypeSize::isKnownLE(LoadSize, DL.getTypeStoreSize(AccessedTy)))
430 TypeSize::isKnownLE(LoadSize, DL.getTypeStoreSize(AccessedTy)))
437 const DataLayout &DL,
442 TypeSize TySize = DL.getTypeStoreSize(Ty);
445 APInt Size(DL.getIndexTypeSizeInBits(V->getType()), TySize.getFixedValue());
446 return isSafeToLoadUnconditionally(V, Alignment, Size, DL, ScanFrom, AC, DT,
483 const DataLayout &DL) {
484 APInt LoadOffset(DL.getIndexTypeSizeInBits(LoadPtr->getType()), 0);
485 APInt StoreOffset(DL.getIndexTypeSizeInBits(StorePtr->getType()), 0);
487 DL, LoadOffset, /* AllowNonInbounds */ false);
489 DL, StoreOffset, /* AllowNonInbounds */ false);
492 auto LoadAccessSize = LocationSize::precise(DL.getTypeStoreSize(LoadTy));
493 auto StoreAccessSize = LocationSize::precise(DL.getTypeStoreSize(StoreTy));
503 const DataLayout &DL, bool *IsLoadCSE) {
517 if (CastInst::isBitOrNoopPointerCastable(LI->getType(), AccessTy, DL)) {
541 if (CastInst::isBitOrNoopPointerCastable(Val->getType(), AccessTy, DL))
544 TypeSize StoreSize = DL.getTypeSizeInBits(Val->getType());
545 TypeSize LoadSize = DL.getTypeSizeInBits(AccessTy);
548 return ConstantFoldLoadFromConst(C, AccessTy, DL);
570 TypeSize LoadTypeSize = DL.getTypeSizeInBits(AccessTy);
582 if (CastInst::isBitOrNoopPointerCastable(SplatC->getType(), AccessTy, DL))
598 const DataLayout &DL = ScanBB->getDataLayout();
621 AtLeastAtomic, DL, IsLoadCSE))
643 SI->getValueOperand()->getType(), DL))
678 const DataLayout &DL = Load->getDataLayout();
700 AtLeastAtomic, DL, IsLoadCSE);
745 const DataLayout &DL) {
751 isDereferenceablePointer(To, Type::getInt8Ty(To->getContext()), DL))
758 const DataLayout &DL) {
764 if (isPointerAlwaysReplaceable(&*U, To, DL))
770 const DataLayout &DL) {
776 return isPointerAlwaysReplaceable(From, To, DL);