Vuo  0.4.9
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | List of all members
VuoCompilerChain Class Reference

Description

A linear sequence of nodes along which a push may be conducted.

Public Member Functions

 VuoCompilerChain (vector< VuoCompilerNode * > nodes, bool isLastNodeInLoop)
 Creates a linear chain of nodes that would be pushed by the given trigger.
 
void generateAllocationForDispatchGroup (Module *module, string triggerIdentifier)
 Generates the allocation of this chain's dispatch group.
 
void generateInitializationForDispatchGroup (Module *module, BasicBlock *block)
 Generates the initialization of this chain's dispatch group, initializing it to a new dispatch group.
 
void generateFinalizationForDispatchGroup (Module *module, BasicBlock *block)
 Generates the finalization of this chain's dispatch group.
 
Function * generateSubmissionForDispatchGroup (Module *module, BasicBlock *block)
 Generates code that submits a function for asynchronous execution and associates it with this chain's dispatch group.
 
void generateWaitForDispatchGroup (Module *module, BasicBlock *block)
 Generates code that waits on this chain's dispatch group.
 
vector< VuoCompilerNode * > getNodes (void)
 Returns the sequence of nodes in this chain.
 

Constructor & Destructor Documentation

VuoCompilerChain::VuoCompilerChain ( vector< VuoCompilerNode * >  nodes,
bool  isLastNodeInLoop 
)

Creates a linear chain of nodes that would be pushed by the given trigger.

Assumes nodes is not empty.

Member Function Documentation

void VuoCompilerChain::generateAllocationForDispatchGroup ( Module *  module,
string  triggerIdentifier 
)

Generates the allocation of this chain's dispatch group.

void VuoCompilerChain::generateFinalizationForDispatchGroup ( Module *  module,
BasicBlock *  block 
)

Generates the finalization of this chain's dispatch group.

void VuoCompilerChain::generateInitializationForDispatchGroup ( Module *  module,
BasicBlock *  block 
)

Generates the initialization of this chain's dispatch group, initializing it to a new dispatch group.

Function * VuoCompilerChain::generateSubmissionForDispatchGroup ( Module *  module,
BasicBlock *  block 
)

Generates code that submits a function for asynchronous execution and associates it with this chain's dispatch group.

Returns
The submitted function. The caller is responsible for filling in the body of this function.
void VuoCompilerChain::generateWaitForDispatchGroup ( Module *  module,
BasicBlock *  block 
)

Generates code that waits on this chain's dispatch group.

vector< VuoCompilerNode * > VuoCompilerChain::getNodes ( void  )

Returns the sequence of nodes in this chain.


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