|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectat.dms.kjc.rstream.FusionState
at.dms.kjc.rstream.SplitterFusionState
public class SplitterFusionState
This class represent the state and conversion necessary to convert a splitter FlatNode into imperative SIR code so it can be added to the application's SIR code. For duplicate splitters, we just create a loop that will copy items from the incoming buffer to each outgoing buffer. For round-robin splitters we create an outer loop that contains assignments from the incoming buffer to the outgoing buffer in order and frequency given by the round-robin weights
Field Summary | |
---|---|
static String |
DUPLICATECOUNTER
|
static String |
RRCOUNTER
|
static String |
RRINNERVAR
|
Fields inherited from class at.dms.kjc.rstream.FusionState |
---|
BACKUPCOUNTER, BUFFERNAME, bufferVar, fusionState, myUniqueID, necessary, node, remaining |
Constructor Summary | |
---|---|
protected |
SplitterFusionState(FlatNode node)
|
Method Summary | |
---|---|
int |
getBufferSize(FlatNode prev,
boolean init)
return the outgoing buffersize |
JVariableDefinition |
getBufferVar(FlatNode prev,
boolean init)
return the outgoing buffer var for this splitter |
int |
getRemaining(FlatNode prev,
boolean isInit)
return the items remaining on the incoming buffer after the init stage |
JStatement[] |
getWork(JBlock enclosingBlock,
boolean isInit)
Return the block containing imperative SIR code that will perform the splitting of the incoming buffer. |
void |
initTasks(Vector<JFieldDeclaration> fields,
Vector<JMethodDeclaration> functions,
JBlock initFunctionCalls,
JBlock main)
perform any initialization tasks, including setting the downstream buffers to be this splitter's incoming buffer if this splitter is unnecessary (thereby bypassing it) and declaring the incoming buffer |
Methods inherited from class at.dms.kjc.rstream.FusionState |
---|
getFusionState, getNode, intAssignStm, isNecesary, makeBuffer, remainingBackupLoop |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static String DUPLICATECOUNTER
public static String RRCOUNTER
public static String RRINNERVAR
Constructor Detail |
---|
protected SplitterFusionState(FlatNode node)
Method Detail |
---|
public void initTasks(Vector<JFieldDeclaration> fields, Vector<JMethodDeclaration> functions, JBlock initFunctionCalls, JBlock main)
initTasks
in class FusionState
public JStatement[] getWork(JBlock enclosingBlock, boolean isInit)
getWork
in class FusionState
public int getBufferSize(FlatNode prev, boolean init)
getBufferSize
in class FusionState
public JVariableDefinition getBufferVar(FlatNode prev, boolean init)
getBufferVar
in class FusionState
public int getRemaining(FlatNode prev, boolean isInit)
getRemaining
in class FusionState
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |