LLVM 23.0.0git
DirectX.h
Go to the documentation of this file.
1//===- DirectXTargetMachine.h - DirectX Target Implementation ---*- C++ -*-===//
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//===----------------------------------------------------------------------===//
10
11#ifndef LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
12#define LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
13
14namespace llvm {
15class AttributeMask;
16class FunctionPass;
17class ModulePass;
18class PassRegistry;
19class raw_ostream;
20
21/// Initializer for dxil writer pass
23
24/// Initializer for dxil embedder pass
26
27/// Initializer for DXIL-prepare
29
30/// Pass to convert modules into DXIL-compatable modules
32
33/// Initializer for DXIL Intrinsic Expansion
35
36/// Pass to expand intrinsic operations that lack DXIL opCodes
38
39/// Initializer for DXIL CBuffer Access Pass
41
42/// Pass to translate loads in the cbuffer address space to intrinsics
44
45/// Initializer for DXIL Data Scalarization Pass
47
48/// Pass to scalarize llvm global data into a DXIL legal form
50
51/// Initializer for DXIL Array Flatten Pass
53
54/// Pass to flatten arrays into a one dimensional DXIL legal form
56
57/// Initializer for DXIL Forward Handle Accesses Pass
59
60/// Pass to eliminate redundant stores and loads from handle globals.
62
63/// Initializer DXIL legalizationPass
65
66/// Pass to Legalize DXIL by remove i8 truncations and i64 insert/extract
67/// elements
69
70/// Initializer for DXIL Mem Intrinsics.
72
73/// Pass to transform all llvm memory intrinsics to explicit loads and stores.
75
76/// Initializer for DXILOpLowering
78
79/// Pass to lowering LLVM intrinsic call to DXIL op function call.
81
82/// Initializer for DXILResourceAccess
84
85/// Pass to update resource accesses to use load/store directly.
87
88/// Initializer for DXILResourceImplicitBindingLegacyPass
90
91/// Pass to assign register slots to resources without binding.
93
94/// Initializer for DXILTranslateMetadata.
96
97/// Pass to emit metadata for DXIL.
99
100/// Pass to pretty print DXIL metadata.
102
103/// Initializer for DXILPrettyPrinter.
105
106/// Initializer for DXILPostOptimizationValidation.
108
109/// Pass to lowering LLVM intrinsic call to DXIL op function call.
111
112/// Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
114
115/// Initializer for dxil::RootSignatureAnalysisWrapper pass.
117
118/// Initializer for DXContainerGlobals pass.
120
121/// Pass for generating DXContainer part globals.
123
124/// Initializer for DXILFinalizeLinkage pass.
126
127/// Pass to finalize linkage of functions.
129} // namespace llvm
130
131#endif // LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
This class stores enough information to efficiently remove some attributes from an existing AttrBuild...
FunctionPass class - This class is used to implement most global optimizations.
Definition Pass.h:314
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Definition Pass.h:255
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition raw_ostream.h:53
This is an optimization pass for GlobalISel generic memory operations.
void initializeShaderFlagsAnalysisWrapperPass(PassRegistry &)
Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
FunctionPass * createDXILLegalizeLegacyPass()
Pass to Legalize DXIL by remove i8 truncations and i64 insert/extract elements.
void initializeDXILPrettyPrinterLegacyPass(PassRegistry &)
Initializer for DXILPrettyPrinter.
ModulePass * createDXILDataScalarizationLegacyPass()
Pass to scalarize llvm global data into a DXIL legal form.
ModulePass * createDXILPostOptimizationValidationLegacyPass()
Pass to lowering LLVM intrinsic call to DXIL op function call.
ModulePass * createDXILTranslateMetadataLegacyPass()
Pass to emit metadata for DXIL.
void initializeDXILCBufferAccessLegacyPass(PassRegistry &)
Initializer for DXIL CBuffer Access Pass.
void initializeDXILFlattenArraysLegacyPass(PassRegistry &)
Initializer for DXIL Array Flatten Pass.
void initializeRootSignatureAnalysisWrapperPass(PassRegistry &)
Initializer for dxil::RootSignatureAnalysisWrapper pass.
ModulePass * createDXILPrepareModulePass()
Pass to convert modules into DXIL-compatable modules.
ModulePass * createDXContainerGlobalsPass()
Pass for generating DXContainer part globals.
ModulePass * createDXILCBufferAccessLegacyPass()
Pass to translate loads in the cbuffer address space to intrinsics.
ModulePass * createDXILFlattenArraysLegacyPass()
Pass to flatten arrays into a one dimensional DXIL legal form.
ModulePass * createDXILResourceImplicitBindingLegacyPass()
Pass to assign register slots to resources without binding.
FunctionPass * createDXILResourceAccessLegacyPass()
Pass to update resource accesses to use load/store directly.
void initializeDXILResourceImplicitBindingLegacyPass(PassRegistry &)
Initializer for DXILResourceImplicitBindingLegacyPass.
void initializeDXILPrepareModulePass(PassRegistry &)
Initializer for DXIL-prepare.
void initializeDXILForwardHandleAccessesLegacyPass(PassRegistry &)
Initializer for DXIL Forward Handle Accesses Pass.
void initializeDXILDataScalarizationLegacyPass(PassRegistry &)
Initializer for DXIL Data Scalarization Pass.
ModulePass * createDXILFinalizeLinkageLegacyPass()
Pass to finalize linkage of functions.
void initializeEmbedDXILPassPass(PassRegistry &)
Initializer for dxil embedder pass.
ModulePass * createDXILIntrinsicExpansionLegacyPass()
Pass to expand intrinsic operations that lack DXIL opCodes.
void initializeDXILFinalizeLinkageLegacyPass(PassRegistry &)
Initializer for DXILFinalizeLinkage pass.
void initializeDXILIntrinsicExpansionLegacyPass(PassRegistry &)
Initializer for DXIL Intrinsic Expansion.
void initializeDXILLegalizeLegacyPass(PassRegistry &)
Initializer DXIL legalizationPass.
void initializeDXILMemIntrinsicsLegacyPass(PassRegistry &)
Initializer for DXIL Mem Intrinsics.
ModulePass * createDXILMemIntrinsicsLegacyPass()
Pass to transform all llvm memory intrinsics to explicit loads and stores.
ModulePass * createDXILOpLoweringLegacyPass()
Pass to lowering LLVM intrinsic call to DXIL op function call.
void initializeDXILPostOptimizationValidationLegacyPass(PassRegistry &)
Initializer for DXILPostOptimizationValidation.
void initializeDXILOpLoweringLegacyPass(PassRegistry &)
Initializer for DXILOpLowering.
void initializeWriteDXILPassPass(PassRegistry &)
Initializer for dxil writer pass.
ModulePass * createDXILPrettyPrinterLegacyPass(raw_ostream &OS)
Pass to pretty print DXIL metadata.
void initializeDXContainerGlobalsPass(PassRegistry &)
Initializer for DXContainerGlobals pass.
FunctionPass * createDXILForwardHandleAccessesLegacyPass()
Pass to eliminate redundant stores and loads from handle globals.
void initializeDXILResourceAccessLegacyPass(PassRegistry &)
Initializer for DXILResourceAccess.
void initializeDXILTranslateMetadataLegacyPass(PassRegistry &)
Initializer for DXILTranslateMetadata.