Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp
35266 views
1
//===- LoopAccessAnalysisPrinter.cpp - Loop Access Analysis Printer --------==//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#include "llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h"
10
#include "llvm/ADT/PriorityWorklist.h"
11
#include "llvm/Analysis/LoopAccessAnalysis.h"
12
#include "llvm/Analysis/LoopInfo.h"
13
#include "llvm/Transforms/Utils/LoopUtils.h"
14
15
using namespace llvm;
16
17
#define DEBUG_TYPE "loop-accesses"
18
19
PreservedAnalyses LoopAccessInfoPrinterPass::run(Function &F,
20
FunctionAnalysisManager &AM) {
21
auto &LAIs = AM.getResult<LoopAccessAnalysis>(F);
22
auto &LI = AM.getResult<LoopAnalysis>(F);
23
OS << "Printing analysis 'Loop Access Analysis' for function '" << F.getName()
24
<< "':\n";
25
26
SmallPriorityWorklist<Loop *, 4> Worklist;
27
appendLoopsToWorklist(LI, Worklist);
28
while (!Worklist.empty()) {
29
Loop *L = Worklist.pop_back_val();
30
OS.indent(2) << L->getHeader()->getName() << ":\n";
31
LAIs.getInfo(*L).print(OS, 4);
32
}
33
return PreservedAnalyses::all();
34
}
35
36