Home
last modified time | relevance | path

Searched refs:LAI (Results 1 – 14 of 14) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/
H A DLoopVersioning.cpp42 LoopVersioning::LoopVersioning(const LoopAccessInfo &LAI, in LoopVersioning() argument
46 : VersionedLoop(L), AliasChecks(Checks), Preds(LAI.getPSE().getPredicate()), in LoopVersioning()
47 LAI(LAI), LI(LI), DT(DT), SE(SE) {} in LoopVersioning()
61 const auto &RtPtrChecking = *LAI.getRuntimePointerChecking(); in versionLoop()
182 const RuntimePointerChecking *RtPtrChecking = LAI.getRuntimePointerChecking(); in prepareNoAliasMetadata()
223 for (Instruction *I : LAI.getDepChecker().getMemoryInstructions()) { in annotateLoopWithNoAlias()
287 const LoopAccessInfo &LAI = LAIs.getInfo(*L); in runImpl() local
288 if (!LAI.hasConvergentOp() && in runImpl()
289 (LAI.getNumRuntimePointerChecks() || in runImpl()
290 !LAI.getPSE().getPredicate().isAlwaysTrue())) { in runImpl()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopLoadElimination.cpp170 LoadEliminationForLoop(Loop *L, LoopInfo *LI, const LoopAccessInfo &LAI, in LoadEliminationForLoop() argument
173 : L(L), LI(LI), LAI(LAI), DT(DT), BFI(BFI), PSI(PSI), PSE(LAI.getPSE()) {} in LoadEliminationForLoop()
181 findStoreToLoadDependences(const LoopAccessInfo &LAI) { in findStoreToLoadDependences() argument
184 const auto &DepChecker = LAI.getDepChecker(); in findStoreToLoadDependences()
322 LAI.getRuntimePointerChecking()->getPointerInfo(PtrIdx1).PointerValue; in needsChecking()
324 LAI.getRuntimePointerChecking()->getPointerInfo(PtrIdx2).PointerValue; in needsChecking()
378 const auto &MemInstrs = LAI.getDepChecker().getMemoryInstructions(); in findPointersWrittenOnForwardingPath()
400 const auto &AllChecks = LAI.getRuntimePointerChecking()->getChecks(); in collectMemchecks()
415 LLVM_DEBUG(LAI.getRuntimePointerChecking()->printChecks(dbgs(), Checks)); in collectMemchecks()
509 auto StoreToLoadDependences = findStoreToLoadDependences(LAI); in processLoop()
[all …]
H A DLoopVersioningLICM.cpp134 const LoopAccessInfo *LAI = nullptr; member
348 auto &Pointers = LAI->getRuntimePointerChecking()->Pointers; in instructionSafeForVersioning()
371 LAI = &LAIs.getInfo(*CurLoop, /*AllowPartial=*/true); in legalLoopInstructions()
373 if (LAI->getRuntimePointerChecking()->getChecks().empty()) { in legalLoopInstructions()
391 if (LAI->getNumRuntimePointerChecks() > in legalLoopInstructions()
400 << NV("RuntimeChecks", LAI->getNumRuntimePointerChecks()) in legalLoopInstructions()
505 << NV("RuntimeChecks", LAI->getNumRuntimePointerChecks()); in isLegalForVersioning()
524 LoopVersioning LVer(*LAI, LAI->getRuntimePointerChecking()->getChecks(), in run()
H A DLoopDistribute.cpp498 computePartitionSetForPointers(const LoopAccessInfo &LAI) { in computePartitionSetForPointers() argument
499 const RuntimePointerChecking *RtPtrCheck = LAI.getRuntimePointerChecking(); in computePartitionSetForPointers()
506 LAI.getInstructionsForAccess(Ptr, RtPtrCheck->Pointers[I].IsWritePtr); in computePartitionSetForPointers()
676 LAI = &LAIs.getInfo(*L); in processLoop()
680 if (LAI->canVectorizeMemory()) in processLoop()
684 auto *Dependences = LAI->getDepChecker().getDependences(); in processLoop()
712 const MemoryDepChecker &DepChecker = LAI->getDepChecker(); in processLoop()
769 const SCEVPredicate &Pred = LAI->getPSE().getPredicate(); in processLoop()
770 if (LAI->hasConvergentOp() && !Pred.isAlwaysTrue()) { in processLoop()
791 auto PtrToPartition = Partitions.computePartitionSetForPointers(*LAI); in processLoop()
[all …]
H A DLoopFlatten.cpp908 const LoopAccessInfo &LAI) { in FlattenLoopPair() argument
970 LoopVersioning LVer(LAI, Checks, FI.OuterLoop, LI, DT, SE); in FlattenLoopPair()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Vectorize/
H A DLoopVectorizationLegality.h387 return LAI->getRuntimePointerChecking(); in getRuntimePointerChecking()
390 const LoopAccessInfo *getLAI() const { return LAI; } in getLAI()
393 return LAI->getDepChecker().isSafeForAnyVectorWidth() && in isSafeForAnyVectorWidth()
394 LAI->getDepChecker().isSafeForAnyStoreLoadForwardDistances(); in isSafeForAnyVectorWidth()
398 return LAI->getDepChecker().getMaxSafeVectorWidthInBits(); in getMaxSafeVectorWidthInBits()
420 return LAI->getDepChecker().isSafeForAnyStoreLoadForwardDistances(); in isSafeForAnyStoreLoadForwardDistances()
426 return LAI->getDepChecker().getStoreLoadForwardSafeDistanceInBits(); in getMaxStoreLoadForwardSafeDistanceInBits()
439 unsigned getNumStores() const { return LAI->getNumStores(); } in getNumStores()
440 unsigned getNumLoads() const { return LAI->getNumLoads(); } in getNumLoads()
589 const LoopAccessInfo *LAI = nullptr; variable
/freebsd/contrib/llvm-project/llvm/include/llvm/Analysis/
H A DVectorUtils.h671 const LoopAccessInfo *LAI) in InterleavedAccessInfo() argument
672 : PSE(PSE), TheLoop(L), DT(DT), LI(LI), LAI(LAI) {} in InterleavedAccessInfo()
743 const LoopAccessInfo *LAI; variable
826 return LAI && LAI->getDepChecker().getDependences(); in areDependencesValid()
884 const auto &DepChecker = LAI->getDepChecker(); in collectDependences()
/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp460 LAI ? LAI->getSymbolicStrides() : DenseMap<Value *, const SCEV *>(); in isConsecutivePtr()
472 return LAI->isInvariant(V); in isInvariant()
1164 const MemoryDepChecker &DepChecker = LAI->getDepChecker(); in canVectorizeIndirectUnsafeDependences()
1197 return findHistogram(LI, SI, TheLoop, LAI->getPSE(), Histograms); in canVectorizeIndirectUnsafeDependences()
1201 LAI = &LAIs.getInfo(*TheLoop); in canVectorizeMemory()
1202 const OptimizationRemarkAnalysis *LAR = LAI->getReport(); in canVectorizeMemory()
1210 if (!LAI->canVectorizeMemory()) in canVectorizeMemory()
1213 if (LAI->hasLoadStoreDependenceInvolvingLoopInvariantAddress()) { in canVectorizeMemory()
1226 if (!LAI->getStoresToInvariantAddresses().empty()) { in canVectorizeMemory()
1229 for (StoreInst *SI : LAI->getStoresToInvariantAddresses()) { in canVectorizeMemory()
[all …]
H A DLoopVectorize.cpp1793 void create(Loop *L, const LoopAccessInfo &LAI, in create() argument
1801 LAI.getNumRuntimePointerChecks() > VectorizeMemoryCheckThreshold; in create()
1826 const auto &RtPtrChecking = *LAI.getRuntimePointerChecking(); in create()
8322 const LoopAccessInfo *LAI = Legal->getLAI(); in buildVPlansWithVPRecipes() local
8323 LoopVersioning LVer(*LAI, LAI->getRuntimePointerChecking()->getChecks(), in buildVPlansWithVPRecipes()
8325 if (!LAI->getRuntimePointerChecking()->getChecks().empty() && in buildVPlansWithVPRecipes()
8326 !LAI->getRuntimePointerChecking()->getDiffChecks()) { in buildVPlansWithVPRecipes()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Utils/
H A DLoopVersioning.h47 LoopVersioning(const LoopAccessInfo &LAI,
146 const LoopAccessInfo &LAI; variable
/freebsd/contrib/llvm-project/llvm/lib/Analysis/
H A DLoopAccessAnalysis.cpp3096 for (const auto &[L, LAI] : LoopAccessInfoMap) { in clear()
3097 if (LAI->getRuntimePointerChecking()->getChecks().empty() && in clear()
3098 LAI->getPSE().getPredicate().isAlwaysTrue()) in clear()
H A DVectorUtils.cpp1446 const auto &Strides = LAI->getSymbolicStrides(); in analyzeInterleaving()
/freebsd/contrib/llvm-project/llvm/lib/Target/ARM/
H A DARMTargetTransformInfo.cpp2414 const LoopAccessInfo *LAI) { in canTailPredicateLoop() argument
2444 PredicatedScalarEvolution PSE = LAI->getPSE(); in canTailPredicateLoop()
/freebsd/contrib/one-true-awk/testdir/
H A Dfunstack.in19753 @Article{Bresenham:1977:LAI,