LLVM 20.0.0git
Namespaces | Classes | Typedefs | Enumerations | Functions
llvm::dxil Namespace Reference

Namespaces

namespace  PointerTypeAnalysis
 An analysis to compute the PointerTypes for pointers in a Module.
 

Classes

class  BitcodeWriter
 
class  CBufferDataLayout
 
struct  ComputedShaderFlags
 
class  ConstantBuffer
 
class  DXILBitcodeWriter
 
class  DXILOpBuilder
 
class  LegacyCBufferLayout
 
struct  ModuleMetadataInfo
 
class  ResourceBase
 
class  ResourceInfo
 
class  Resources
 
class  ResourceTable
 
class  ShaderFlagsAnalysis
 
class  ShaderFlagsAnalysisPrinter
 Printer pass for ShaderFlagsAnalysis results. More...
 
class  ShaderFlagsAnalysisWrapper
 Wrapper pass for the legacy pass manager. More...
 
class  UAVResource
 
class  ValidatorVersionMD
 
class  ValueEnumerator
 

Typedefs

using PointerTypeMap = DenseMap< const Value *, Type * >
 

Enumerations

enum class  ResourceClass : uint8_t { SRV = 0 , UAV , CBuffer , Sampler }
 
enum class  ResourceKind : uint32_t {
  Invalid = 0 , Texture1D , Texture2D , Texture2DMS ,
  Texture3D , TextureCube , Texture1DArray , Texture2DArray ,
  Texture2DMSArray , TextureCubeArray , TypedBuffer , RawBuffer ,
  StructuredBuffer , CBuffer , Sampler , TBuffer ,
  RTAccelerationStructure , FeedbackTexture2D , FeedbackTexture2DArray , NumEntries
}
 The kind of resource for an SRV or UAV resource. More...
 
enum class  ElementType : uint32_t {
  Invalid = 0 , I1 , I16 , U16 ,
  I32 , U32 , I64 , U64 ,
  F16 , F32 , F64 , SNormF16 ,
  UNormF16 , SNormF32 , UNormF32 , SNormF64 ,
  UNormF64 , PackedS8x32 , PackedU8x32
}
 The element type of an SRV or UAV resource. More...
 
enum class  ExtPropTags : uint32_t { ElementType = 0 , StructuredBufferStride = 1 , SamplerFeedbackKind = 2 , Atomic64Use = 3 }
 Metadata tags for extra resource properties. More...
 
enum class  SamplerType : uint32_t { Default = 0 , Comparison = 1 , Mono = 2 }
 
enum class  SamplerFeedbackType : uint32_t { MinMip = 0 , MipRegionUsed = 1 }
 
enum class  OpCode : unsigned { DXIL_OPCODE }
 
enum class  OpCodeClass : unsigned { DXIL_OPCLASS }
 
enum class  OpParamType : unsigned { DXIL_OP_PARAM_TYPE }
 
enum  MetadataAbbrev : unsigned { LastPlusOne }
 

Functions

void createShaderModelMD (Module &M)
 
void createDXILVersionMD (Module &M)
 
void createEntryMD (Module &M, const uint64_t ShaderFlags)
 
static Error makeOpError (dxil::OpCode OpCode, Twine Msg)
 
void WriteDXILToFile (const Module &M, raw_ostream &Out)
 Write the specified module to the specified raw output stream.
 

Typedef Documentation

◆ PointerTypeMap

Definition at line 26 of file PointerTypeAnalysis.h.

Enumeration Type Documentation

◆ ElementType

enum class llvm::dxil::ElementType : uint32_t
strong

The element type of an SRV or UAV resource.

Enumerator
Invalid 
I1 
I16 
U16 
I32 
U32 
I64 
U64 
F16 
F32 
F64 
SNormF16 
UNormF16 
SNormF32 
UNormF32 
SNormF64 
UNormF64 
PackedS8x32 
PackedU8x32 

Definition at line 58 of file DXILABI.h.

◆ ExtPropTags

enum class llvm::dxil::ExtPropTags : uint32_t
strong

Metadata tags for extra resource properties.

Enumerator
ElementType 
StructuredBufferStride 
SamplerFeedbackKind 
Atomic64Use 

Definition at line 81 of file DXILABI.h.

◆ MetadataAbbrev

Enumerator
LastPlusOne 

Definition at line 59 of file DXILBitcodeWriter.cpp.

◆ OpCode

enum class llvm::dxil::OpCode : unsigned
strong
Enumerator
DXIL_OPCODE 

Definition at line 18 of file DXILConstants.h.

◆ OpCodeClass

enum class llvm::dxil::OpCodeClass : unsigned
strong
Enumerator
DXIL_OPCLASS 

Definition at line 23 of file DXILConstants.h.

◆ OpParamType

enum class llvm::dxil::OpParamType : unsigned
strong
Enumerator
DXIL_OP_PARAM_TYPE 

Definition at line 28 of file DXILConstants.h.

◆ ResourceClass

enum class llvm::dxil::ResourceClass : uint8_t
strong
Enumerator
SRV 
UAV 
CBuffer 
Sampler 

Definition at line 25 of file DXILABI.h.

◆ ResourceKind

enum class llvm::dxil::ResourceKind : uint32_t
strong

The kind of resource for an SRV or UAV resource.

Sometimes referred to as "Shape" in the DXIL docs.

Enumerator
Invalid 
Texture1D 
Texture2D 
Texture2DMS 
Texture3D 
TextureCube 
Texture1DArray 
Texture2DArray 
Texture2DMSArray 
TextureCubeArray 
TypedBuffer 
RawBuffer 
StructuredBuffer 
CBuffer 
Sampler 
TBuffer 
RTAccelerationStructure 
FeedbackTexture2D 
FeedbackTexture2DArray 
NumEntries 

Definition at line 34 of file DXILABI.h.

◆ SamplerFeedbackType

Enumerator
MinMip 
MipRegionUsed 

Definition at line 94 of file DXILABI.h.

◆ SamplerType

enum class llvm::dxil::SamplerType : uint32_t
strong
Enumerator
Default 
Comparison 
Mono 

Definition at line 88 of file DXILABI.h.

Function Documentation

◆ createDXILVersionMD()

void llvm::dxil::createDXILVersionMD ( Module M)

◆ createEntryMD()

void llvm::dxil::createEntryMD ( Module M,
const uint64_t  ShaderFlags 
)

◆ createShaderModelMD()

void llvm::dxil::createShaderModelMD ( Module M)

◆ makeOpError()

static Error llvm::dxil::makeOpError ( dxil::OpCode  OpCode,
Twine  Msg 
)
static

Definition at line 350 of file DXILOpBuilder.cpp.

References llvm::inconvertibleErrorCode().

Referenced by llvm::dxil::DXILOpBuilder::tryCreateOp().

◆ WriteDXILToFile()

void llvm::dxil::WriteDXILToFile ( const Module M,
raw_ostream Out 
)

Write the specified module to the specified raw output stream.

Write the specified module to the specified output stream.

For streams where it matters, the given stream should be in "binary" mode.

Definition at line 386 of file DXILBitcodeWriter.cpp.

References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::BWH_HeaderSize, llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallVectorTemplateCommon< T, typename >::front(), llvm::SmallVectorImpl< T >::insert(), llvm::SmallVectorImpl< T >::reserve(), llvm::SmallVectorBase< Size_T >::size(), llvm::raw_ostream::write(), and llvm::dxil::BitcodeWriter::writeModule().