diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp b/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp index c063c0d3c88a..9ae55b9018da 100644 --- a/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp +++ b/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp @@ -7,19 +7,27 @@ //===----------------------------------------------------------------------===// #include "llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h" +#include "llvm/ADT/PriorityWorklist.h" #include "llvm/Analysis/LoopAccessAnalysis.h" #include "llvm/Analysis/LoopInfo.h" +#include "llvm/Transforms/Utils/LoopUtils.h" + using namespace llvm; #define DEBUG_TYPE "loop-accesses" -PreservedAnalyses -LoopAccessInfoPrinterPass::run(Loop &L, LoopAnalysisManager &AM, - LoopStandardAnalysisResults &AR, LPMUpdater &) { - Function &F = *L.getHeader()->getParent(); - auto &LAI = AM.getResult<LoopAccessAnalysis>(L, AR); +PreservedAnalyses LoopAccessInfoPrinterPass::run(Function &F, + FunctionAnalysisManager &AM) { + auto &LAIs = AM.getResult<LoopAccessAnalysis>(F); + auto &LI = AM.getResult<LoopAnalysis>(F); OS << "Loop access info in function '" << F.getName() << "':\n"; - OS.indent(2) << L.getHeader()->getName() << ":\n"; - LAI.print(OS, 4); + + SmallPriorityWorklist<Loop *, 4> Worklist; + appendLoopsToWorklist(LI, Worklist); + while (!Worklist.empty()) { + Loop *L = Worklist.pop_back_val(); + OS.indent(2) << L->getHeader()->getName() << ":\n"; + LAIs.getInfo(*L).print(OS, 4); + } return PreservedAnalyses::all(); } |
