aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/LoopAccessAnalysis.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2022-10-04 08:37:11 +0100
committerFlorian Hahn <flo@fhahn.com>2022-10-04 08:37:11 +0100
commitdb720dc17ca435ffb9a0c6ba63ebb92e130b38e6 (patch)
treeca204342e147d153032c216f78d374fce992781a /llvm/lib/Analysis/LoopAccessAnalysis.cpp
parent1303abe658943bc05f609c6c50be847232060947 (diff)
downloadllvm-db720dc17ca435ffb9a0c6ba63ebb92e130b38e6.zip
llvm-db720dc17ca435ffb9a0c6ba63ebb92e130b38e6.tar.gz
llvm-db720dc17ca435ffb9a0c6ba63ebb92e130b38e6.tar.bz2
[LAA] Use LoopAccessInfoManager in legacy pass.
Simplify LoopAccessLegacyAnalysis by using LoopAccessInfoManager from D134606. As a side-effect this also removes printing support from LoopAccessLegacyAnalysis. Depends on D134606. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D134608
Diffstat (limited to 'llvm/lib/Analysis/LoopAccessAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/LoopAccessAnalysis.cpp32
1 files changed, 6 insertions, 26 deletions
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index dda127e..eb06fb6 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -2683,34 +2683,14 @@ LoopAccessLegacyAnalysis::LoopAccessLegacyAnalysis() : FunctionPass(ID) {
initializeLoopAccessLegacyAnalysisPass(*PassRegistry::getPassRegistry());
}
-const LoopAccessInfo &LoopAccessLegacyAnalysis::getInfo(Loop *L) {
- auto &LAI = LoopAccessInfoMap[L];
-
- if (!LAI)
- LAI = std::make_unique<LoopAccessInfo>(L, SE, TLI, AA, DT, LI);
-
- return *LAI;
-}
-
-void LoopAccessLegacyAnalysis::print(raw_ostream &OS, const Module *M) const {
- LoopAccessLegacyAnalysis &LAA = *const_cast<LoopAccessLegacyAnalysis *>(this);
-
- for (Loop *TopLevelLoop : *LI)
- for (Loop *L : depth_first(TopLevelLoop)) {
- OS.indent(2) << L->getHeader()->getName() << ":\n";
- auto &LAI = LAA.getInfo(L);
- LAI.print(OS, 4);
- }
-}
-
bool LoopAccessLegacyAnalysis::runOnFunction(Function &F) {
- SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
+ auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
auto *TLIP = getAnalysisIfAvailable<TargetLibraryInfoWrapperPass>();
- TLI = TLIP ? &TLIP->getTLI(F) : nullptr;
- AA = &getAnalysis<AAResultsWrapperPass>().getAAResults();
- DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
- LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
-
+ auto *TLI = TLIP ? &TLIP->getTLI(F) : nullptr;
+ auto &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
+ auto &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
+ auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
+ LAIs = std::make_unique<LoopAccessInfoManager>(SE, AA, DT, LI, TLI);
return false;
}