diff options
author | Florian Hahn <flo@fhahn.com> | 2022-10-04 08:37:11 +0100 |
---|---|---|
committer | Florian Hahn <flo@fhahn.com> | 2022-10-04 08:37:11 +0100 |
commit | db720dc17ca435ffb9a0c6ba63ebb92e130b38e6 (patch) | |
tree | ca204342e147d153032c216f78d374fce992781a /llvm/lib/Analysis/LoopAccessAnalysis.cpp | |
parent | 1303abe658943bc05f609c6c50be847232060947 (diff) | |
download | llvm-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.cpp | 32 |
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; } |