LLVM 24.0.0git
llvm::dxil::EntrySignature Struct Reference

#include "Target/DirectX/DXILSignatureAnalysis.h"

Public Member Functions

MDTuple * getAsMetadata (LLVMContext &Ctx, VersionTuple ValidatorVersion) const
 Return the DXIL input/output/patch-constant signature triple.
void buildSignatures (mcdxbc::Signature &Input, mcdxbc::Signature &Output, VersionTuple ValidatorVersion) const
 Append ISG1/OSG1 parameters to the supplied builders.
void updatePSV (mcdxbc::PSVRuntimeInfo &PSV, VersionTuple ValidatorVersion) const
 Append PSV signature elements and set vector extents, the dependency map, and stage-specific signature flags.
SmallVector< uint32_t > getDependencyState () const
 Return the serialized dx.viewIdState words for this entry: input scalar count, output scalar count, then the input/output dependency table.
void print (raw_ostream &OS) const

Public Attributes

Triple::EnvironmentType Stage
SmallVector< hlsl::SemanticSignatureElement > Inputs
SmallVector< hlsl::SemanticSignatureElement > Outputs
unsigned InputVectors = 0
unsigned OutputVectors = 0
SmallVector< uint32_t > InputOutputMap
bool UseNative16Bit = false

Detailed Description

Definition at line 28 of file DXILSignatureAnalysis.h.

Member Function Documentation

◆ buildSignatures()

void EntrySignature::buildSignatures ( mcdxbc::Signature & Input,
mcdxbc::Signature & Output,
VersionTuple ValidatorVersion ) const

Append ISG1/OSG1 parameters to the supplied builders.

ValidatorVersion selects legacy component-type and exclusive-mask encoding conventions.

Definition at line 554 of file DXILSignatureAnalysis.cpp.

References buildSignature(), llvm::VersionTuple::empty(), Inputs, llvm::Legacy, Outputs, and UseNative16Bit.

◆ getAsMetadata()

MDTuple * EntrySignature::getAsMetadata ( LLVMContext & Ctx,
VersionTuple ValidatorVersion ) const

Return the DXIL input/output/patch-constant signature triple.

Empty input and output lists become null operands; return null if both lists are empty. ValidatorVersion controls which access-mask properties are emitted.

Definition at line 545 of file DXILSignatureAnalysis.cpp.

References emitSignature(), llvm::MDNode::get(), Inputs, and Outputs.

◆ getDependencyState()

SmallVector< uint32_t > EntrySignature::getDependencyState ( ) const

Return the serialized dx.viewIdState words for this entry: input scalar count, output scalar count, then the input/output dependency table.

Scalar counts include padding and equal four times the respective vector extent. Each input scalar has ceil(output scalar count / 32) consecutive words, where bit (4 * row + column) identifies an output scalar.

Definition at line 588 of file DXILSignatureAnalysis.cpp.

References llvm::append_range(), InputOutputMap, InputVectors, and OutputVectors.

◆ print()

void EntrySignature::print ( raw_ostream & OS) const

Definition at line 594 of file DXILSignatureAnalysis.cpp.

References Inputs, InputVectors, Outputs, and OutputVectors.

◆ updatePSV()

Member Data Documentation

◆ InputOutputMap

SmallVector<uint32_t> llvm::dxil::EntrySignature::InputOutputMap

Definition at line 34 of file DXILSignatureAnalysis.h.

Referenced by buildDependencyMap(), getDependencyState(), and updatePSV().

◆ Inputs

◆ InputVectors

unsigned llvm::dxil::EntrySignature::InputVectors = 0

◆ Outputs

◆ OutputVectors

unsigned llvm::dxil::EntrySignature::OutputVectors = 0

◆ Stage

Triple::EnvironmentType llvm::dxil::EntrySignature::Stage

Definition at line 29 of file DXILSignatureAnalysis.h.

Referenced by analyzeModule(), and updatePSV().

◆ UseNative16Bit

bool llvm::dxil::EntrySignature::UseNative16Bit = false

Definition at line 35 of file DXILSignatureAnalysis.h.

Referenced by analyzeModule(), and buildSignatures().


The documentation for this struct was generated from the following files: