LLVM 24.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
15
16namespace llvm {
17namespace dxil {
19} // namespace dxil
20
21class AttributeMask;
22class FunctionPass;
23class ModulePass;
24class PassRegistry;
25class raw_ostream;
26
27/// Initializer for dxil writer pass
29
30/// Initializer for dxil embedder pass
32
33/// Initializer for DXIL-prepare
35
36/// Pass to convert modules into DXIL-compatable modules
38
39/// Initializer for DXIL debug info lowering.
41
42/// Pass to downgrade debug information to forms supported by DXIL.
44
45/// Initializer for DXIL Intrinsic Expansion
47
48/// Pass to expand intrinsic operations that lack DXIL opCodes
50
51/// Initializer for DXIL CBuffer Access Pass
53
54/// Pass to translate loads in the cbuffer address space to intrinsics
56
57/// Initializer for DXIL Data Scalarization Pass
59
60/// Pass to scalarize llvm global data into a DXIL legal form
62
63/// Initializer for DXIL Array Flatten Pass
65
66/// Pass to flatten arrays into a one dimensional DXIL legal form
68
69/// Initializer for DXIL Forward Handle Accesses Pass
71
72/// Pass to eliminate redundant stores and loads from handle globals.
74
75/// Initializer DXIL legalizationPass
77
78/// Pass to Legalize DXIL by remove i8 truncations and i64 insert/extract
79/// elements
81
82/// Initializer for DXIL Mem Intrinsics.
84
85/// Pass to transform all llvm memory intrinsics to explicit loads and stores.
87
88/// Initializer for DXILOpLowering
90
91/// Pass to lowering LLVM intrinsic call to DXIL op function call.
93
94/// Initializer for DXILRemoveUnusedResources
96
97/// Pass to update remove unsused resources.
99
100/// Initializer for DXILResourceAccess
102
103/// Pass to update resource accesses to use load/store directly.
105
106/// Initializer for DXILResourceImplicitBindingLegacyPass
108
109/// Pass to assign register slots to resources without binding.
111
112/// Initializer for DXILTranslateMetadata.
114
115/// Pass to emit metadata for DXIL.
117
118/// Pass to pretty print DXIL metadata.
120
121/// Initializer for DXILPrettyPrinter.
123
124/// Initializer for DXILPostOptimizationValidation.
126
127/// Pass to lowering LLVM intrinsic call to DXIL op function call.
129
130/// Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
132
133/// Initializer for dxil::RootSignatureAnalysisWrapper pass.
135
136/// Initializer for DXContainerGlobals pass.
138
139/// Pass for generating DXContainer part globals.
141
142/// Initializer for DXContainerPDB pass.
144
145/// Pass for emitting DirectX PDB files.
147
148/// Initializer for DXILFinalizeLinkage pass.
150
151/// Pass to finalize linkage of functions.
153} // namespace llvm
154
155#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
template class LLVM_TEMPLATE_ABI opt< bool >
cl::opt< bool > PdbInPrivate
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 * createDXILDebugInfoLegacyPass()
Pass to downgrade debug information to forms supported by DXIL.
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.
void initializeDXContainerPDBPass(PassRegistry &)
Initializer for DXContainerPDB pass.
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.
FunctionPass * createDXILRemoveUnusedResourcesLegacyPass()
Pass to update remove unsused resources.
void initializeDXILDebugInfoLegacyPass(PassRegistry &)
Initializer for DXIL debug info lowering.
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 initializeDXILRemoveUnusedResourcesLegacyPass(PassRegistry &)
Initializer for DXILRemoveUnusedResources.
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.
ModulePass * createDXContainerPDBPass()
Pass for emitting DirectX PDB files.