HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VdfSpeculationExecutor< EngineType, DataManagerType > Class Template Reference

Executor used in speculation. More...

#include <speculationExecutor.h>

+ Inheritance diagram for VdfSpeculationExecutor< EngineType, DataManagerType >:

Public Member Functions

 VdfSpeculationExecutor (const VdfSpeculationNode *speculationNode, const VdfExecutorInterface *parentExecutor)
 
 VdfSpeculationExecutor (const VdfExecutorInterface *parentExecutor)
 
virtual ~VdfSpeculationExecutor ()
 
virtual void SetOutputValue (const VdfOutput &output, const VdfVector &value, const VdfMask &mask) overridefinal
 
virtual bool TakeOutputValue (const VdfOutput &output, VdfVector *value, const VdfMask &mask) overridefinal
 
virtual const
VdfExecutorFactoryBase
GetFactory () const overridefinal
 
- Public Member Functions inherited from VdfDataManagerBasedSubExecutor< DataManagerType, VdfSpeculationExecutorBase >
 VdfDataManagerBasedSubExecutor ()
 
 VdfDataManagerBasedSubExecutor (const VdfExecutorInterface *parentExecutor)
 
virtual ~VdfDataManagerBasedSubExecutor ()
 
- Public Member Functions inherited from VdfDataManagerBasedExecutor< DataManagerType, VdfSpeculationExecutorBase >
 VdfDataManagerBasedExecutor ()
 
 VdfDataManagerBasedExecutor (const VdfExecutorInterface *parentExecutor)
 
virtual ~VdfDataManagerBasedExecutor ()
 
virtual void Resize (const VdfNetwork &network) override
 
virtual void DuplicateOutputData (const VdfOutput &sourceOutput, const VdfOutput &destOutput) override
 
virtual bool IsEmpty () const override
 
virtual bool HasInvalidationTimestampMismatch (const VdfOutput &source, const VdfOutput &dest) const override
 
- Public Member Functions inherited from VdfSpeculationExecutorBase
virtual VDF_API ~VdfSpeculationExecutorBase ()
 
bool IsSpeculatingNode (const VdfNode *node) const
 
const VdfExecutorInterfaceGetNonSpeculationParentExecutor () const
 
- Public Member Functions inherited from VdfExecutorInterface
 VdfExecutorInterface (const VdfExecutorInterface &)=delete
 
VdfExecutorInterfaceoperator= (const VdfExecutorInterface &)=delete
 
virtual VDF_API ~VdfExecutorInterface ()
 
VDF_API void Run (const VdfSchedule &schedule, VdfExecutorErrorLogger *errorLogger=NULL)
 
VDF_API void Run (const VdfSchedule &schedule, const VdfRequest &computeRequest, VdfExecutorErrorLogger *errorLogger=NULL)
 
VDF_API void RegisterObserver (const VdfExecutorObserver *observer) const
 
VDF_API void UnregisterObserver (const VdfExecutorObserver *observer) const
 
const VdfVectorGetOutputValue (const VdfOutput &output, const VdfMask &mask) const
 
const VdfExecutorInterfaceGetParentExecutor () const
 
VDF_API void SetParentExecutor (const VdfExecutorInterface *parentExecutor)
 
VDF_API void InvalidateValues (const VdfMaskedOutputVector &invalidationRequest)
 
VDF_API void InvalidateTopologicalState ()
 
VDF_API void ClearData ()
 
VDF_API void ClearDataForOutput (const VdfId outputId, const VdfId nodeId)
 
void IncrementExecutorInvalidationTimestamp ()
 
void InheritExecutorInvalidationTimestamp (const VdfExecutorInterface &executor)
 
VdfInvalidationTimestamp GetExecutorInvalidationTimestamp () const
 
void SetInterruptionFlag (const std::atomic_bool *interruptionFlag)
 
const std::atomic_bool * GetInterruptionFlag () const
 
bool HasBeenInterrupted () const
 
void SetExecutionStats (VdfExecutionStats *stats)
 
VdfExecutionStatsGetExecutionStats () const
 

Additional Inherited Members

- Protected Member Functions inherited from VdfDataManagerBasedSubExecutor< DataManagerType, VdfSpeculationExecutorBase >
virtual const VdfVector_GetInputValue (const VdfConnection &connection, const VdfMask &mask) const override
 
virtual const VdfVector_GetOutputValueForReading (const VdfOutput &output, const VdfMask &mask) const override
 
- Protected Member Functions inherited from VdfDataManagerBasedExecutor< DataManagerType, VdfSpeculationExecutorBase >
virtual VdfVector_GetOutputValueForWriting (const VdfOutput &output) const override
 
void _ClearDataForOutput (const VdfId outputId, const VdfId nodeId) override
 
virtual bool _IsOutputInvalid (const VdfId outputId, const VdfMask &invalidationMask) const override
 
virtual bool _InvalidateOutput (const VdfOutput &output, const VdfMask &invalidationMask) override
 
virtual void _UpdateInvalidationTimestamp () override
 
virtual void _SetReferenceOutputValue (const VdfOutput &destOutput, const VdfOutput &sourceOutput, const VdfMask &sourceMask) const override
 
- Protected Member Functions inherited from VdfSpeculationExecutorBase
VDF_API VdfSpeculationExecutorBase (const VdfExecutorInterface *parentExecutor)
 
void _SetSpeculationNode (const VdfNode *speculationNode)
 
- Protected Member Functions inherited from VdfExecutorInterface
VDF_API VdfExecutorInterface ()
 
VDF_API VdfExecutorInterface (const VdfExecutorInterface *parentExecutor)
 
virtual bool _PreProcessInvalidation (const VdfMaskedOutputVector &invalidationRequest, VdfMaskedOutputVector *processedRequest)
 
virtual VDF_API void _ClearData ()
 
- Protected Attributes inherited from VdfDataManagerBasedExecutor< DataManagerType, VdfSpeculationExecutorBase >
DataManagerType _dataManager
 

Detailed Description

template<template< typename > class EngineType, typename DataManagerType>
class VdfSpeculationExecutor< EngineType, DataManagerType >

Executor used in speculation.

A common base class for all speculation executors.

Definition at line 37 of file speculationExecutor.h.

Constructor & Destructor Documentation

template<template< typename > class EngineType, typename DataManagerType >
VdfSpeculationExecutor< EngineType, DataManagerType >::VdfSpeculationExecutor ( const VdfSpeculationNode speculationNode,
const VdfExecutorInterface parentExecutor 
)

Constructs a speculation executor that was initiated from speculationNode while being computed by parentExecutor.

Definition at line 134 of file speculationExecutor.h.

template<template< typename > class EngineType, typename DataManagerType >
VdfSpeculationExecutor< EngineType, DataManagerType >::VdfSpeculationExecutor ( const VdfExecutorInterface parentExecutor)
inlineexplicit

Construct a speculation executor with the given parentExecutor, without registering a speculation node for cycle detection.

Definition at line 68 of file speculationExecutor.h.

template<template< typename > class EngineType, typename DataManagerType >
virtual VdfSpeculationExecutor< EngineType, DataManagerType >::~VdfSpeculationExecutor ( )
inlinevirtual

Destructor

Definition at line 75 of file speculationExecutor.h.

Member Function Documentation

template<template< typename > class EngineType, typename DataManagerType >
virtual const VdfExecutorFactoryBase& VdfSpeculationExecutor< EngineType, DataManagerType >::GetFactory ( ) const
inlinefinaloverridevirtual

Returns the factory instance for this executor.

Implements VdfExecutorInterface.

Definition at line 93 of file speculationExecutor.h.

template<template< typename > class EngineType, typename DataManagerType >
void VdfSpeculationExecutor< EngineType, DataManagerType >::SetOutputValue ( const VdfOutput output,
const VdfVector value,
const VdfMask mask 
)
finaloverridevirtual

Set the cached value for a given output.

Reimplemented from VdfDataManagerBasedExecutor< DataManagerType, VdfSpeculationExecutorBase >.

Definition at line 161 of file speculationExecutor.h.

template<template< typename > class EngineType, typename DataManagerType >
bool VdfSpeculationExecutor< EngineType, DataManagerType >::TakeOutputValue ( const VdfOutput output,
VdfVector value,
const VdfMask mask 
)
finaloverridevirtual

Transfers ownership of value to the given output.

Reimplemented from VdfDataManagerBasedExecutor< DataManagerType, VdfSpeculationExecutorBase >.

Definition at line 175 of file speculationExecutor.h.


The documentation for this class was generated from the following file: