//===- DXILResourceAnalysis.cpp - DXIL Resource analysis-------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// /// /// \file This file contains Analysis for information about DXIL resources. /// //===----------------------------------------------------------------------===// #include "DXILResourceAnalysis.h" #include "DirectX.h" #include "llvm/IR/PassManager.h" using namespace llvm; #define DEBUG_TYPE "dxil-resource-analysis" dxil::Resources DXILResourceAnalysis::run(Module &M, ModuleAnalysisManager &AM) { dxil::Resources R; R.collect(M); return R; } AnalysisKey DXILResourceAnalysis::Key; PreservedAnalyses DXILResourcePrinterPass::run(Module &M, ModuleAnalysisManager &AM) { dxil::Resources Res = AM.getResult(M); Res.print(OS); return PreservedAnalyses::all(); } char DXILResourceWrapper::ID = 0; INITIALIZE_PASS_BEGIN(DXILResourceWrapper, DEBUG_TYPE, "DXIL resource Information", true, true) INITIALIZE_PASS_END(DXILResourceWrapper, DEBUG_TYPE, "DXIL resource Information", true, true) bool DXILResourceWrapper::runOnModule(Module &M) { Resources.collect(M); return false; } DXILResourceWrapper::DXILResourceWrapper() : ModulePass(ID) {} void DXILResourceWrapper::print(raw_ostream &OS, const Module *) const { Resources.print(OS); }