LLVM 19.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
 
class  ResourceBase
 
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  ParameterKind : uint8_t {
  Invalid = 0 , Void , Half , Float ,
  Double , I1 , I8 , I16 ,
  I32 , I64 , Overload , CBufferRet ,
  ResourceRet , DXILHandle
}
 
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  MetadataAbbrev : unsigned { LastPlusOne }
 

Functions

void createShaderModelMD (Module &M)
 
void createEntryMD (Module &M, const uint64_t ShaderFlags)
 
void WriteDXILToFile (const Module &M, raw_ostream &Out)
 Write the specified module to the specified raw output stream.
 

Typedef Documentation

◆ PointerTypeMap

Definition at line 25 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 68 of file DXILABI.h.

◆ MetadataAbbrev

Enumerator
LastPlusOne 

Definition at line 59 of file DXILBitcodeWriter.cpp.

◆ ParameterKind

enum class llvm::dxil::ParameterKind : uint8_t
strong
Enumerator
Invalid 
Void 
Half 
Float 
Double 
I1 
I8 
I16 
I32 
I64 
Overload 
CBufferRet 
ResourceRet 
DXILHandle 

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 44 of file DXILABI.h.

Function Documentation

◆ createEntryMD()

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

◆ createShaderModelMD()

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

◆ 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 387 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().