diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/Analysis/LoopAccessAnalysis.h | 16 | ||||
| -rw-r--r-- | llvm/lib/Analysis/LoopAccessAnalysis.cpp | 6 | ||||
| -rw-r--r-- | llvm/lib/Passes/PassRegistry.def | 2 |
3 files changed, 15 insertions, 9 deletions
diff --git a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h index 71d06322167..2d88e6dfbee 100644 --- a/llvm/include/llvm/Analysis/LoopAccessAnalysis.h +++ b/llvm/include/llvm/Analysis/LoopAccessAnalysis.h @@ -772,16 +772,22 @@ private: LoopInfo *LI; }; -/// \brief LoopAccessInfoAnalysis -class LoopAccessInfoAnalysis - : public AnalysisInfoMixin<LoopAccessInfoAnalysis> { - friend AnalysisInfoMixin<LoopAccessInfoAnalysis>; +/// \brief This analysis provides dependence information for the memory +/// accesses of a loop. +/// +/// It runs the analysis for a loop on demand. This can be initiated by +/// querying the loop access info via AM.getResult<LoopAccessAnalysis>. +/// getResult return a LoopAccessInfo object. See this class for the +/// specifics of what information is provided. +class LoopAccessAnalysis + : public AnalysisInfoMixin<LoopAccessAnalysis> { + friend AnalysisInfoMixin<LoopAccessAnalysis>; static char PassID; public: typedef LoopAccessInfo Result; Result run(Loop &, AnalysisManager<Loop> &); - static StringRef name() { return "LoopAccessInfoAnalysis"; } + static StringRef name() { return "LoopAccessAnalysis"; } }; /// \brief Printer pass for the \c LoopAccessInfo results. diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp index 9692ab9a7fe..a6a9304e5f3 100644 --- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp +++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp @@ -2024,9 +2024,9 @@ INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass) INITIALIZE_PASS_END(LoopAccessLegacyAnalysis, LAA_NAME, laa_name, false, true) -char LoopAccessInfoAnalysis::PassID; +char LoopAccessAnalysis::PassID; -LoopAccessInfo LoopAccessInfoAnalysis::run(Loop &L, AnalysisManager<Loop> &AM) { +LoopAccessInfo LoopAccessAnalysis::run(Loop &L, AnalysisManager<Loop> &AM) { const AnalysisManager<Function> &FAM = AM.getResult<FunctionAnalysisManagerLoopProxy>(L).getManager(); Function &F = *L.getHeader()->getParent(); @@ -2051,7 +2051,7 @@ LoopAccessInfo LoopAccessInfoAnalysis::run(Loop &L, AnalysisManager<Loop> &AM) { PreservedAnalyses LoopAccessInfoPrinterPass::run(Loop &L, AnalysisManager<Loop> &AM) { Function &F = *L.getHeader()->getParent(); - auto &LAI = AM.getResult<LoopAccessInfoAnalysis>(L); + auto &LAI = AM.getResult<LoopAccessAnalysis>(L); OS << "Loop access info in function '" << F.getName() << "':\n"; OS.indent(2) << L.getHeader()->getName() << ":\n"; LAI.print(OS, 4); diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def index 037f24f8305..9acb0dfed0e 100644 --- a/llvm/lib/Passes/PassRegistry.def +++ b/llvm/lib/Passes/PassRegistry.def @@ -176,7 +176,7 @@ FUNCTION_PASS("verify<regions>", RegionInfoVerifierPass()) #define LOOP_ANALYSIS(NAME, CREATE_PASS) #endif LOOP_ANALYSIS("no-op-loop", NoOpLoopAnalysis()) -LOOP_ANALYSIS("access-info", LoopAccessInfoAnalysis()) +LOOP_ANALYSIS("access-info", LoopAccessAnalysis()) #undef LOOP_ANALYSIS #ifndef LOOP_PASS |

