brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 7253c7f Raw
35 lines · cpp
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-exception6//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 15using namespace llvm;16 17#define DEBUG_TYPE "loop-accesses"18 19PreservedAnalyses 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, AllowPartial).print(OS, 4);32  }33  return PreservedAnalyses::all();34}35