1*3fef2d26SRiver Riddle //===- TestCallGraph.cpp - Test callgraph construction and iteration ------===//
2*3fef2d26SRiver Riddle //
3*3fef2d26SRiver Riddle // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*3fef2d26SRiver Riddle // See https://llvm.org/LICENSE.txt for license information.
5*3fef2d26SRiver Riddle // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*3fef2d26SRiver Riddle //
7*3fef2d26SRiver Riddle //===----------------------------------------------------------------------===//
8*3fef2d26SRiver Riddle //
9*3fef2d26SRiver Riddle // This file contains test passes for constructing and iterating over a
10*3fef2d26SRiver Riddle // callgraph.
11*3fef2d26SRiver Riddle //
12*3fef2d26SRiver Riddle //===----------------------------------------------------------------------===//
13*3fef2d26SRiver Riddle 
14*3fef2d26SRiver Riddle #include "mlir/Analysis/CallGraph.h"
15*3fef2d26SRiver Riddle #include "mlir/Pass/Pass.h"
16*3fef2d26SRiver Riddle 
17*3fef2d26SRiver Riddle using namespace mlir;
18*3fef2d26SRiver Riddle 
19*3fef2d26SRiver Riddle namespace {
20*3fef2d26SRiver Riddle struct TestCallGraphPass
21*3fef2d26SRiver Riddle     : public PassWrapper<TestCallGraphPass, OperationPass<ModuleOp>> {
22*3fef2d26SRiver Riddle   void runOnOperation() override {
23*3fef2d26SRiver Riddle     llvm::errs() << "Testing : " << getOperation()->getAttr("test.name")
24*3fef2d26SRiver Riddle                  << "\n";
25*3fef2d26SRiver Riddle     getAnalysis<CallGraph>().print(llvm::errs());
26*3fef2d26SRiver Riddle   }
27*3fef2d26SRiver Riddle };
28*3fef2d26SRiver Riddle } // end anonymous namespace
29*3fef2d26SRiver Riddle 
30*3fef2d26SRiver Riddle namespace mlir {
31*3fef2d26SRiver Riddle namespace test {
32*3fef2d26SRiver Riddle void registerTestCallGraphPass() {
33*3fef2d26SRiver Riddle   PassRegistration<TestCallGraphPass> pass(
34*3fef2d26SRiver Riddle       "test-print-callgraph", "Print the contents of a constructed callgraph.");
35*3fef2d26SRiver Riddle }
36*3fef2d26SRiver Riddle } // namespace test
37*3fef2d26SRiver Riddle } // namespace mlir
38