Home
last modified time | relevance | path

Searched refs:LoopNest (Results 1 – 25 of 34) sorted by relevance

12

/llvm-project/llvm/lib/Analysis/
H A DLoopNestAnalysis.cpp39 // LoopNest implementation
42 LoopNest::LoopNest(Loop &Root, ScalarEvolution &SE) in LoopNest() function in LoopNest
47 std::unique_ptr<LoopNest> LoopNest::getLoopNest(Loop &Root, in getLoopNest()
49 return std::make_unique<LoopNest>(Root, SE); in getLoopNest()
103 bool LoopNest::arePerfectlyNested(const Loop &OuterLoop, const Loop &InnerLoop, in arePerfectlyNested()
109 LoopNest::LoopNestEnum LoopNest::analyzeLoopNestForPerfectNest( in analyzeLoopNestForPerfectNest()
181 LoopNest
[all...]
H A DDependenceAnalysis.cpp858 // Returns true if Expression is loop invariant in LoopNest. in isLoopInvariant()
860 const Loop *LoopNest) const { in isLoopInvariant()
865 if (!LoopNest) in isLoopInvariant()
870 return SE->isLoopInvariant(Expression, LoopNest->getOutermostLoop()); in isLoopInvariant()
875 // Finds the set of loops from the LoopNest that
878 const Loop *LoopNest, in collectCommonLoops()
880 while (LoopNest) { in collectCommonLoops()
881 unsigned Level = LoopNest->getLoopDepth(); in collectCommonLoops()
882 if (Level <= CommonLevels && !SE->isLoopInvariant(Expression, LoopNest)) in collectCommonLoops()
884 LoopNest in collectCommonLoops()
877 collectCommonLoops(const SCEV * Expression,const Loop * LoopNest,SmallBitVector & Loops) const collectCommonLoops() argument
962 checkSubscript(const SCEV * Expr,const Loop * LoopNest,SmallBitVector & Loops,bool IsSrc) checkSubscript() argument
1000 checkSrcSubscript(const SCEV * Src,const Loop * LoopNest,SmallBitVector & Loops) checkSrcSubscript() argument
1007 checkDstSubscript(const SCEV * Dst,const Loop * LoopNest,SmallBitVector & Loops) checkDstSubscript() argument
[all...]
/llvm-project/llvm/include/llvm/Analysis/
H A DLoopNestAnalysis.h28 class LLVM_ABI LoopNest {
33 LoopNest(Loop &Root, ScalarEvolution &SE);
35 LoopNest() = delete;
37 /// Construct a LoopNest object.
38 static std::unique_ptr<LoopNest> getLoopNest(Loop &Root, ScalarEvolution &SE);
54 /// Return a vector of instructions that prevent the LoopNest given
198 raw_ostream &operator<<(raw_ostream &, const LoopNest &);
207 using Result = LoopNest;
211 /// Printer pass for the \c LoopNest results.
H A DDependenceAnalysis.h545 bool isLoopInvariant(const SCEV *Expression, const Loop *LoopNest) const;
562 const Loop *LoopNest,
568 const Loop *LoopNest,
574 const Loop *LoopNest,
973 bool checkSubscript(const SCEV *Expr, const Loop *LoopNest,
/llvm-project/mlir/include/mlir/Dialect/SCF/IR/
H A DSCF.h66 struct LoopNest {
84 /// only the zero-operand terminator. Returns the LoopNest containing the list
89 LoopNest buildLoopNest(
99 LoopNest buildLoopNest(OpBuilder &builder, Location loc, ValueRange lbs,
72 struct LoopNest { global() struct
90 resultsLoopNest global() argument
/llvm-project/llvm/include/llvm/Transforms/Scalar/
H A DLoopInterchange.h18 class LoopNest; variable
21 PreservedAnalyses run(LoopNest &L, LoopAnalysisManager &AM,
H A DLoopFlatten.h21 class LoopNest; variable
27 PreservedAnalyses run(LoopNest &LN, LoopAnalysisManager &LAM,
H A DLoopUnrollAndJamPass.h17 class LoopNest; variable
25 PreservedAnalyses run(LoopNest &L, LoopAnalysisManager &AM,
H A DLICM.h43 class LoopNest; variable
94 PreservedAnalyses run(LoopNest &L, LoopAnalysisManager &AM,
H A DLoopPassManager.h124 detail::PassModel<LoopNest, PassT, LoopAnalysisManager, in addPass()
145 detail::PassConcept<LoopNest, LoopAnalysisManager,
172 static const Loop &getLoopFromIR(LoopNest &LN) { in getLoopFromIR()
367 // Get the loop in case of Loop pass and outermost loop in case of LoopNest
/llvm-project/llvm/unittests/Analysis/
H A DLoopNestTest.cpp94 LoopNest LN(*L, SE); in TEST()
190 LoopNest LN(*L, SE); in TEST()
276 LoopNest LN(*L, SE); in TEST()
303 const LoopNest::InstrVectorTy InstrV = in TEST()
/llvm-project/mlir/lib/Dialect/SCF/Transforms/
H A DForallToFor.cpp26 using scf::LoopNest;
38 LoopNest loopNest = scf::buildLoopNest(rewriter, loc, lbs, ubs, steps); in forallToForLoop()
/llvm-project/llvm/lib/Transforms/Scalar/
H A DLoopPassManager.cpp80 // `LoopNestPtr` points to the `LoopNest` object for the current top-level in runWithLoopNestPasses()
82 // The `LoopNest` object will have to be re-constructed if the pointer is in runWithLoopNestPasses()
84 std::unique_ptr<LoopNest> LoopNestPtr; in runWithLoopNestPasses()
107 LoopNestPtr = LoopNest::getLoopNest(*OuterMostLoop, AR.SE); in runWithLoopNestPasses()
H A DLoopUnrollAndJamPass.cpp423 static bool tryToUnrollAndJamLoop(LoopNest &LN, DominatorTree &DT, LoopInfo &LI,
451 PreservedAnalyses LoopUnrollAndJamPass::run(LoopNest &LN,
H A DLoopInterchange.cpp426 bool run(LoopNest &LN) { in processLoopList()
621 LoopNest::skipEmptyBlockUntil(InnerLoopExit, OuterLoopLatch); in isLoopStructureUnderstood()
1748 PreservedAnalyses LoopInterchangePass::run(LoopNest &LN,
H A DLoopFlatten.cpp995 PreservedAnalyses LoopFlattenPass::run(LoopNest &LN, LoopAnalysisManager &LAM, in run()
/llvm-project/llvm/unittests/IR/
H A DPassBuilderCallbacksTest.cpp176 struct MockPassHandle<LoopNest>
177 : MockPassHandleBase<MockPassHandle<LoopNest>, LoopNest,
181 PreservedAnalyses(LoopNest &, LoopAnalysisManager &,
183 static void invalidateLoopNest(LoopNest &L, LoopAnalysisManager &, in invalidateLoopNest()
404 std::conditional_t<std::is_same_v<IRUnitT, Loop>, MockPassHandle<LoopNest>,
849 runBeforePass(HasNameRegex("MockPassHandle<.*LoopNest>"), in TEST_F()
854 HasNameRegex("MockPassHandle<.*LoopNest>"), HasName("loop"))) in TEST_F()
857 runAfterPass(HasNameRegex("MockPassHandle<.*LoopNest>"), in TEST_F()
939 [&](LoopNest in TEST_F()
943 __anon51161aa70e02(LoopNest &, LoopAnalysisManager &, LoopStandardAnalysisResults &, LPMUpdater &) TEST_F() argument
[all...]
/llvm-project/flang/include/flang/Optimizer/Builder/
H A DHLFIRTools.h360 struct LoopNest {
373 LoopNest genLoopNest(mlir::Location loc, fir::FirOpBuilder &builder,
376 inline LoopNest genLoopNest(mlir::Location loc, fir::FirOpBuilder &builder,
359 struct LoopNest { global() struct
368 oneBasedIndicesLoopNest global() argument
/llvm-project/llvm/test/Other/
H A Dprint-passes.ll21 ; CHECK: LoopNest passes:
/llvm-project/flang/lib/Optimizer/HLFIR/Transforms/
H A DLowerHLFIROrderedAssignments.cpp193 std::optional<hlfir::LoopNest> vectorSubscriptLoopNest;
277 std::optional<hlfir::LoopNest> whereLoopNest;
447 std::optional<hlfir::LoopNest> elementalLoopNest; in pre()
461 std::optional<hlfir::LoopNest> elementalLoopNest; in pre()
H A DOptimizedBufferization.cpp692 hlfir::LoopNest loopNest = in generateReductionLoop()
764 hlfir::LoopNest loopNest = in matchAndRewrite()
/llvm-project/mlir/test/lib/Dialect/Tensor/
H A DTestTensorTransforms.cpp234 scf::LoopNest nest = scf::buildLoopNest( in emitReplacement()
/llvm-project/mlir/lib/Dialect/Linalg/Utils/
H A DUtils.cpp292 LoopNest loopNest = mlir::scf::buildLoopNest( in makeMemRefCopyOp()
393 LoopNest singleLoop = buildLoopNest( in updateBoundsForCyclicDistribution()
/llvm-project/llvm/include/llvm/Passes/
H A DPassBuilder.h943 PreservedAnalyses run(LoopNest &L, LoopAnalysisManager &, in run()
/llvm-project/llvm/unittests/Transforms/Scalar/
H A DLoopPassManagerTest.cpp196 : MockPassHandleBase<MockLoopNestPassHandle, LoopNest, LoopAnalysisManager,
199 PreservedAnalyses(LoopNest &, LoopAnalysisManager &,

12