11#ifndef LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
12#define LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
This header defines various interfaces for pass management in LLVM.
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
This class stores enough information to efficiently remove some attributes from an existing AttrBuild...
Pass to translate loads in the cbuffer address space to cbuffer load intrinsic.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
Pass for generating DXContainer part globals.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
Pass for emitting DirectX PDB files.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
Pass to prepare vector data for DXIL by converting vector storage to scalar arrays and lowering dynam...
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to downgrade debug information to forms supported by DXIL.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to update the linkage of functions to make sure only shader entry points and exported functions ...
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to flatten arrays into a one dimensional DXIL legal form.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to eliminate redundant stores and loads from handle globals.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Pass to expand intrinsic operations that lack DXIL opCodes.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to rewrite LLVM IR constructs unsupported by DXIL into compatible forms.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM)
Pass to transform all llvm memory intrinsics to explicit loads and stores.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to lowering LLVM intrinsic call to DXIL op function call.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
Pass for validating IR after optimizations are applied and before lowering to DXIL.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
Pass to convert modules into DXIL-compatable modules.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
DXILPrettyPrinterPass(raw_ostream &OS)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
Pass to remove unused DXIL resources and associated global variables.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Pass to replace pointers to DXIL resources with load and store operations.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Pass to assign register slots to resources without binding.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &)
FunctionPass class - This class is used to implement most global optimizations.
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
A Module instance is used to store all the information related to an LLVM module.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
A set of analyses that are preserved following a run of a transformation pass.
This class implements an extremely fast bulk output stream that can only output to a stream.
Pass manager infrastructure for declaring and invalidating analyses.
template class LLVM_TEMPLATE_ABI opt< bool >
cl::opt< bool > PdbInPrivate
This is an optimization pass for GlobalISel generic memory operations.
void initializeDXILContainerGlobalsLegacyPass(PassRegistry &)
Initializer for DXILContainerGlobals pass.
void initializeShaderFlagsAnalysisWrapperPass(PassRegistry &)
Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
FunctionPass * createDXILLegalizeLegacyPass()
void initializeDXILPrepareModuleLegacyPass(PassRegistry &)
Initializer for DXIL-prepare.
void initializeDXILPrettyPrinterLegacyPass(PassRegistry &)
Initializer for DXILPrettyPrinter.
ModulePass * createDXILDataScalarizationLegacyPass()
ModulePass * createDXILContainerPDBLegacyPass()
ModulePass * createDXILPostOptimizationValidationLegacyPass()
ModulePass * createDXILTranslateMetadataLegacyPass()
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()
ModulePass * createDXILCBufferAccessLegacyPass()
ModulePass * createDXILFlattenArraysLegacyPass()
ModulePass * createDXILResourceImplicitBindingLegacyPass()
FunctionPass * createDXILResourceAccessLegacyPass()
void initializeDXILResourceImplicitBindingLegacyPass(PassRegistry &)
Initializer for DXILResourceImplicitBindingLegacyPass.
void initializeDXILForwardHandleAccessesLegacyPass(PassRegistry &)
Initializer for DXIL Forward Handle Accesses Pass.
void initializeDXILDataScalarizationLegacyPass(PassRegistry &)
Initializer for DXIL Data Scalarization Pass.
ModulePass * createDXILFinalizeLinkageLegacyPass()
void initializeEmbedDXILPassPass(PassRegistry &)
Initializer for dxil embedder pass.
void initializeSignatureAnalysisWrapperPass(PassRegistry &)
Initializer for dxil::SignatureAnalysisWrapper pass.
ModulePass * createDXILIntrinsicExpansionLegacyPass()
ModulePass * createDXILPrepareModuleLegacyPass()
void initializeDXILFinalizeLinkageLegacyPass(PassRegistry &)
Initializer for DXILFinalizeLinkage pass.
void initializeDXILContainerPDBLegacyPass(PassRegistry &)
Initializer for DXILContainerPDB pass.
void initializeDXILIntrinsicExpansionLegacyPass(PassRegistry &)
Initializer for DXIL Intrinsic Expansion.
void initializeDXILLegalizeLegacyPass(PassRegistry &)
Initializer DXIL legalizationPass.
FunctionPass * createDXILRemoveUnusedResourcesLegacyPass()
void initializeDXILDebugInfoLegacyPass(PassRegistry &)
Initializer for DXIL debug info lowering.
void initializeDXILMemIntrinsicsLegacyPass(PassRegistry &)
Initializer for DXIL Mem Intrinsics.
ModulePass * createDXILMemIntrinsicsLegacyPass()
ModulePass * createDXILOpLoweringLegacyPass()
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)
void initializeDXILRemoveUnusedResourcesLegacyPass(PassRegistry &)
Initializer for DXILRemoveUnusedResources.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
FunctionPass * createDXILForwardHandleAccessesLegacyPass()
ModulePass * createDXILContainerGlobalsLegacyPass()
void initializeDXILResourceAccessLegacyPass(PassRegistry &)
Initializer for DXILResourceAccess.
void initializeDXILTranslateMetadataLegacyPass(PassRegistry &)
Initializer for DXILTranslateMetadata.
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
A CRTP mix-in for passes that can be skipped.
A CRTP mix-in for passes that should not be skipped.