| /freebsd/contrib/llvm-project/llvm/lib/Transforms/Utils/ |
| H A D | LoopVersioning.cpp | 42 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 D | LoopLoadElimination.cpp | 170 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 D | LoopVersioningLICM.cpp | 134 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 D | LoopDistribute.cpp | 498 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 D | LoopFlatten.cpp | 908 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 D | LoopVectorizationLegality.h | 387 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 D | VectorUtils.h | 671 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 D | LoopVectorizationLegality.cpp | 460 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 D | LoopVectorize.cpp | 1793 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 D | LoopVersioning.h | 47 LoopVersioning(const LoopAccessInfo &LAI, 146 const LoopAccessInfo &LAI; variable
|
| /freebsd/contrib/llvm-project/llvm/lib/Analysis/ |
| H A D | LoopAccessAnalysis.cpp | 3096 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 D | VectorUtils.cpp | 1446 const auto &Strides = LAI->getSymbolicStrides(); in analyzeInterleaving()
|
| /freebsd/contrib/llvm-project/llvm/lib/Target/ARM/ |
| H A D | ARMTargetTransformInfo.cpp | 2414 const LoopAccessInfo *LAI) { in canTailPredicateLoop() argument 2444 PredicatedScalarEvolution PSE = LAI->getPSE(); in canTailPredicateLoop()
|
| /freebsd/contrib/one-true-awk/testdir/ |
| H A D | funstack.in | 19753 @Article{Bresenham:1977:LAI,
|