Home
last modified time | relevance | path

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

/llvm-project-15.0.7/llvm/lib/Transforms/Scalar/
H A DLoopLoadElimination.cpp166 : L(L), LI(LI), LAI(LAI), DT(DT), BFI(BFI), PSI(PSI), PSE(LAI.getPSE()) {} in LoadEliminationForLoop()
174 findStoreToLoadDependences(const LoopAccessInfo &LAI) { in findStoreToLoadDependences() argument
177 const auto *Deps = LAI.getDepChecker().getDependences(); in findStoreToLoadDependences()
188 Instruction *Source = Dep.getSource(LAI); in findStoreToLoadDependences()
189 Instruction *Destination = Dep.getDestination(LAI); in findStoreToLoadDependences()
471 auto StoreToLoadDependences = findStoreToLoadDependences(LAI); in processLoop()
477 InstOrder = LAI.getDepChecker().generateInstructionOrderMap(); in processLoop()
531 if (LAI.getPSE().getPredicate().getComplexity() > in processLoop()
543 if (LAI.hasConvergentOp()) { in processLoop()
564 LoopVersioning LV(LAI, Checks, L, LI, DT, PSE.getSE()); in processLoop()
[all …]
H A DLoopDistribute.cpp505 computePartitionSetForPointers(const LoopAccessInfo &LAI) { in computePartitionSetForPointers() argument
682 LAI = &GetLAA(*L); in processLoop()
686 if (LAI->canVectorizeMemory()) in processLoop()
690 auto *Dependences = LAI->getDepChecker().getDependences(); in processLoop()
715 const MemoryDepChecker &DepChecker = LAI->getDepChecker(); in processLoop()
772 const SCEVPredicate &Pred = LAI->getPSE().getPredicate(); in processLoop()
773 if (LAI->hasConvergentOp() && !Pred.isAlwaysTrue()) { in processLoop()
794 const auto *RtPtrChecking = LAI->getRuntimePointerChecking(); in processLoop()
799 if (LAI->hasConvergentOp() && !Checks.empty()) { in processLoop()
817 LoopVersioning LVer(*LAI, Checks, L, LI, DT, SE); in processLoop()
[all …]
H A DLoopVersioningLICM.cpp185 const LoopAccessInfo *LAI = nullptr; member
416 LAI = &GetLAI(CurLoop); in legalLoopInstructions()
418 if (LAI->getRuntimePointerChecking()->getChecks().empty()) { in legalLoopInstructions()
423 if (LAI->getNumRuntimePointerChecks() > in legalLoopInstructions()
432 << NV("RuntimeChecks", LAI->getNumRuntimePointerChecks()) in legalLoopInstructions()
537 << NV("RuntimeChecks", LAI->getNumRuntimePointerChecks()); in isLegalForVersioning()
623 LoopVersioning LVer(*LAI, LAI->getRuntimePointerChecking()->getChecks(), in runOnLoop()
H A DLoopAccessAnalysisPrinter.cpp20 auto &LAI = AM.getResult<LoopAccessAnalysis>(L, AR); in run() local
23 LAI.print(OS, 4); in run()
/llvm-project-15.0.7/llvm/lib/Transforms/Utils/
H A DLoopVersioning.cpp40 LoopVersioning::LoopVersioning(const LoopAccessInfo &LAI, in LoopVersioning() argument
45 Preds(LAI.getPSE().getPredicate()), LAI(LAI), LI(LI), DT(DT), 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()
278 const LoopAccessInfo &LAI = GetLAA(*L); in runImpl() local
279 if (!LAI.hasConvergentOp() && in runImpl()
280 (LAI.getNumRuntimePointerChecks() || in runImpl()
281 !LAI.getPSE().getPredicate().isAlwaysTrue())) { in runImpl()
282 LoopVersioning LVer(LAI, LAI.getRuntimePointerChecking()->getChecks(), L, in runImpl()
/llvm-project-15.0.7/llvm/include/llvm/Transforms/Vectorize/
H A DLoopVectorizationLegality.h372 return LAI->getRuntimePointerChecking(); in getRuntimePointerChecking()
375 const LoopAccessInfo *getLAI() const { return LAI; } in getLAI()
378 return LAI->getDepChecker().isSafeForAnyVectorWidth(); in isSafeForAnyVectorWidth()
381 unsigned getMaxSafeDepDistBytes() { return LAI->getMaxSafeDepDistBytes(); } in getMaxSafeDepDistBytes()
384 return LAI->getDepChecker().getMaxSafeVectorWidthInBits(); in getMaxSafeVectorWidthInBits()
387 bool hasStride(Value *V) { return LAI->hasStride(V); } in hasStride()
395 unsigned getNumStores() const { return LAI->getNumStores(); } in getNumStores()
396 unsigned getNumLoads() const { return LAI->getNumLoads(); } in getNumLoads()
472 return LAI ? &LAI->getSymbolicStrides() : nullptr; in getSymbolicStrides()
502 const LoopAccessInfo *LAI = nullptr; variable
/llvm-project-15.0.7/llvm/include/llvm/Analysis/
H A DVectorUtils.h755 const LoopAccessInfo *LAI) in InterleavedAccessInfo() argument
756 : PSE(PSE), TheLoop(L), DT(DT), LI(LI), LAI(LAI) {} in InterleavedAccessInfo()
824 const LoopAccessInfo *LAI; variable
902 return LAI && LAI->getDepChecker().getDependences(); in areDependencesValid()
961 auto *Deps = LAI->getDepChecker().getDependences(); in collectDependences()
963 Dependences[Dep.getSource(*LAI)].insert(Dep.getDestination(*LAI)); in collectDependences()
H A DLoopAccessAnalysis.h150 Instruction *getSource(const LoopAccessInfo &LAI) const;
152 Instruction *getDestination(const LoopAccessInfo &LAI) const;
827 const LoopAccessInfo &LAI) const { in getSource() argument
828 return LAI.getDepChecker().getMemoryInstructions()[Source]; in getSource()
832 const LoopAccessInfo &LAI) const { in getDestination() argument
833 return LAI.getDepChecker().getMemoryInstructions()[Destination]; in getDestination()
/llvm-project-15.0.7/llvm/include/llvm/Transforms/Utils/
H A DLoopVersioning.h47 LoopVersioning(const LoopAccessInfo &LAI,
141 const LoopAccessInfo &LAI; variable
/llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/
H A DLoopVectorizationLegality.cpp466 return LAI->isUniform(V); in isUniform()
908 LAI = &(*GetLAA)(*TheLoop); in canVectorizeMemory()
909 const OptimizationRemarkAnalysis *LAR = LAI->getReport(); in canVectorizeMemory()
917 if (!LAI->canVectorizeMemory()) in canVectorizeMemory()
924 if (!LAI->getStoresToInvariantAddresses().empty()) { in canVectorizeMemory()
926 for (StoreInst *SI : LAI->getStoresToInvariantAddresses()) { in canVectorizeMemory()
938 if (LAI->hasDependenceInvolvingLoopInvariantAddress()) { in canVectorizeMemory()
947 for (StoreInst *SI : LAI->getStoresToInvariantAddresses()) { in canVectorizeMemory()
982 PSE.addPredicate(LAI->getPSE().getPredicate()); in canVectorizeMemory()
1335 << (LAI->getRuntimePointerChecking()->Need in canVectorize()
H A DLoopVectorize.cpp1880 void Create(Loop *L, const LoopAccessInfo &LAI, in Create() argument
1888 LAI.getNumRuntimePointerChecks() > VectorizeMemoryCheckThreshold; in Create()
1907 const auto &RtPtrChecking = *LAI.getRuntimePointerChecking(); in Create()
7567 const LoopAccessInfo *LAI = ILV.Legal->getLAI(); in executePlan() local
7568 if (LAI && !LAI->getRuntimePointerChecking()->getChecks().empty() && in executePlan()
7569 !LAI->getRuntimePointerChecking()->getDiffChecks()) { in executePlan()
7576 *LAI, LAI->getRuntimePointerChecking()->getChecks(), OrigLoop, LI, DT, in executePlan()
/llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/
H A DVPlanSlpTest.cpp29 std::unique_ptr<LoopAccessInfo> LAI; member in llvm::__anon034c6bf40111::VPlanSlpTest
47 LAI.reset(new LoopAccessInfo(L, &*SE, &TLI, &*AARes, &*DT, &*LI)); in getInterleavedAccessInfo()
48 IAI.reset(new InterleavedAccessInfo(*PSE, L, &*DT, &*LI, &*LAI)); in getInterleavedAccessInfo()
/llvm-project-15.0.7/llvm/lib/Analysis/
H A DLoopAccessAnalysis.cpp2622 auto &LAI = LoopAccessInfoMap[L]; in getInfo() local
2624 if (!LAI) in getInfo()
2625 LAI = std::make_unique<LoopAccessInfo>(L, SE, TLI, AA, DT, LI); in getInfo()
2627 return *LAI; in getInfo()
2636 auto &LAI = LAA.getInfo(L); in print() local
2637 LAI.print(OS, 4); in print()
H A DVectorUtils.cpp1174 const ValueToValueMap &Strides = LAI->getSymbolicStrides(); in analyzeInterleaving()
/llvm-project-15.0.7/llvm/lib/Target/ARM/
H A DARMTargetTransformInfo.cpp2113 const LoopAccessInfo *LAI) { in canTailPredicateLoop() argument
2143 PredicatedScalarEvolution PSE = LAI->getPSE(); in canTailPredicateLoop()