14#ifndef LLVM_TARGET_DIRECTX_DXILSHADERFLAGS_H
15#define LLVM_TARGET_DIRECTX_DXILSHADERFLAGS_H
31#define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \
33#define DXIL_MODULE_FLAG(DxilModuleBit, FlagName, Str) bool FlagName : 1;
34#include "llvm/BinaryFormat/DXContainerConstants.def"
36#define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \
38#define DXIL_MODULE_FLAG(DxilModuleBit, FlagName, Str) FlagName = false;
40#include "llvm/BinaryFormat/DXContainerConstants.def"
44 return Bit != -1 ? 1ull << Bit : 0;
48#define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \
49 FlagValue |= FlagName ? getMask(DxilModuleBit) : 0ull;
50#define DXIL_MODULE_FLAG(DxilModuleBit, FlagName, Str) \
51 FlagValue |= FlagName ? getMask(DxilModuleBit) : 0ull;
52#include "llvm/BinaryFormat/DXContainerConstants.def"
57#define SHADER_FEATURE_FLAG(FeatureBit, DxilModuleBit, FlagName, Str) \
58 FeatureFlags |= FlagName ? getMask(FeatureBit) : 0ull;
59#include "llvm/BinaryFormat/DXContainerConstants.def"
#define LLVM_DUMP_METHOD
Mark debug helper function definitions like dump() that should not be stripped from debug builds.
Machine Check Debug Module
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
Represent the analysis usage information of a pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
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.
A set of analyses that are preserved following a run of a transformation pass.
Printer pass for ShaderFlagsAnalysis results.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
ShaderFlagsAnalysisPrinter(raw_ostream &OS)
Wrapper pass for the legacy pass manager.
bool runOnModule(Module &M) override
runOnModule - Virtual method overriden by subclasses to process the module being operated on.
const ComputedShaderFlags & getShaderFlags()
ShaderFlagsAnalysisWrapper()
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
ComputedShaderFlags run(Module &M, ModuleAnalysisManager &AM)
ShaderFlagsAnalysis()=default
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...
A CRTP mix-in to automatically provide informational APIs needed for passes.
constexpr uint64_t getMask(int Bit) const
uint64_t getFeatureFlags() const
static ComputedShaderFlags computeFlags(Module &M)
LLVM_DUMP_METHOD void dump() const
void print(raw_ostream &OS=dbgs()) const