xref: /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/DXILIntrinsicExpansion.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1 //===- DXILIntrinsicExpansion.h - Prepare LLVM Module for DXIL encoding----===//
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 #ifndef LLVM_TARGET_DIRECTX_DXILINTRINSICEXPANSION_H
9 #define LLVM_TARGET_DIRECTX_DXILINTRINSICEXPANSION_H
10 
11 #include "DXILResource.h"
12 #include "llvm/IR/PassManager.h"
13 #include "llvm/Pass.h"
14 
15 namespace llvm {
16 
17 /// A pass that transforms DXIL Intrinsics that don't have DXIL opCodes
18 class DXILIntrinsicExpansion : public PassInfoMixin<DXILIntrinsicExpansion> {
19 public:
20   PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
21 };
22 
23 class DXILIntrinsicExpansionLegacy : public ModulePass {
24 
25 public:
26   bool runOnModule(Module &M) override;
DXILIntrinsicExpansionLegacy()27   DXILIntrinsicExpansionLegacy() : ModulePass(ID) {}
28 
29   static char ID; // Pass identification.
30 };
31 } // namespace llvm
32 
33 #endif // LLVM_TARGET_DIRECTX_DXILINTRINSICEXPANSION_H
34