Talvos  0.1
SPIR-V interpreter and dynamic analysis framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Attributes | List of all members
talvos::PipelineStage Class Reference

This class encapsulates information about a pipeline stage. More...

#include <talvos/PipelineStage.h>

Public Member Functions

 PipelineStage (Device &D, std::shared_ptr< const Module > M, const EntryPoint *EP, const SpecConstantMap &SM={})
 Create a new PipelineStage. More...
 
const EntryPointgetEntryPoint () const
 Return the entry point this pipeline stage will invoke. More...
 
Dim3 getGroupSize () const
 Return the workgroup size. More...
 
std::shared_ptr< const ModulegetModule () const
 Return the module this pipeline stage is using. More...
 
const std::vector< Object > & getObjects () const
 Returns a list of all result objects in this pipeline stage. More...
 
 PipelineStage (const PipelineStage &)=delete
 
PipelineStageoperator= (const PipelineStage &)=delete
 

Private Attributes

std::shared_ptr< const ModuleMod
 The module containing the entry point to invoke. More...
 
const EntryPointEP
 The entry point to invoke. More...
 
Dim3 GroupSize
 The size of each workgroup. More...
 
std::vector< ObjectObjects
 The result objects in this pipeline stage, after specialization. More...
 

Detailed Description

This class encapsulates information about a pipeline stage.

Definition at line 30 of file PipelineStage.h.

Constructor & Destructor Documentation

talvos::PipelineStage::PipelineStage ( Device D,
std::shared_ptr< const Module M,
const EntryPoint EP,
const SpecConstantMap SM = {} 
)

Create a new PipelineStage.

The function F must belong to module M.

Parameters
DThe device on which to create the pipeline stage.
MThe module containing the entry point to invoke.
EPThe entry point to invoke.
SMA map of specialization constant values.

Definition at line 18 of file PipelineStage.cpp.

talvos::PipelineStage::PipelineStage ( const PipelineStage )
delete

Member Function Documentation

const EntryPoint* talvos::PipelineStage::getEntryPoint ( ) const
inline

Return the entry point this pipeline stage will invoke.

Definition at line 51 of file PipelineStage.h.

Dim3 talvos::PipelineStage::getGroupSize ( ) const
inline

Return the workgroup size.

Definition at line 54 of file PipelineStage.h.

std::shared_ptr<const Module> talvos::PipelineStage::getModule ( ) const
inline

Return the module this pipeline stage is using.

Definition at line 57 of file PipelineStage.h.

const std::vector<Object>& talvos::PipelineStage::getObjects ( ) const
inline

Returns a list of all result objects in this pipeline stage.

Definition at line 60 of file PipelineStage.h.

PipelineStage& talvos::PipelineStage::operator= ( const PipelineStage )
delete

Member Data Documentation

const EntryPoint* talvos::PipelineStage::EP
private

The entry point to invoke.

Definition at line 66 of file PipelineStage.h.

Dim3 talvos::PipelineStage::GroupSize
private

The size of each workgroup.

Definition at line 67 of file PipelineStage.h.

std::shared_ptr<const Module> talvos::PipelineStage::Mod
private

The module containing the entry point to invoke.

Definition at line 60 of file PipelineStage.h.

std::vector<Object> talvos::PipelineStage::Objects
private

The result objects in this pipeline stage, after specialization.

Definition at line 70 of file PipelineStage.h.