at.dms.kjc.cell
Class CellBackend

java.lang.Object
  extended by at.dms.kjc.cell.CellBackend

public class CellBackend
extends Object


Field Summary
static HashMap<InputSliceNode,Integer> artificialJoinerChannels
          InputSliceNode -> ID of the artificial channel connecting it to the FilterSliceNode
static HashMap<OutputSliceNode,Integer> artificialRRSplitterChannels
          OutputSliceNode -> ID of the artificial channel connecting the FilterSliceNode to it
static CellBackendFactory backEndBits
          holds pointer to BackEndFactory instance during back end portion of this compiler.
static HashMap<InterSliceEdge,Integer> channelIdMap
           
static ArrayList<InterSliceEdge> channels
           
static HashMap<OutputSliceNode,Integer> duplicateSplitters
           
static HashMap<SliceNode,Integer> filterIdMap
           
static ArrayList<SliceNode> filters
          List of all the filters in the graph (including RR splitters and joiners as separate filters)
static HashMap<InputSliceNode,LinkedList<Integer>> inputChannelMap
          InputSliceNode -> List of input channel IDs
static int ITERS_PER_BATCH
           
static int MAX_TAPES
           
static int numchannels
           
static int numfilters
           
static int numspus
           
static HashMap<OutputSliceNode,LinkedList<Integer>> outputChannelMap
          OutputSliceNode -> List of output channel IDs
static HashSet<Integer> readyInputs
          Set of IDs of channels that already have input data ready
static LinkedList<LinkedList<Integer>> scheduleLayout
          Encapsulates the schedule and layout of the program.
static HashMap<Integer,SliceNode> SPUassignment
           
 
Constructor Summary
CellBackend()
           
 
Method Summary
static void addReadyInputsForCompleted(LinkedList<Integer> completedIds)
           
static InterSliceEdge getEdgeBetween(OutputSliceNode src, InputSliceNode dest)
           
static LinkedList<Integer> getLastScheduleGroup()
           
static void run(SIRStream str, JInterfaceDeclaration[] interfaces, SIRInterfaceTable[] interfaceTables, SIRStructure[] structs, SIRHelper[] helpers, SIRGlobal global)
          Top level method for Cell backend, called via reflection from StreaMITMain.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

backEndBits

public static CellBackendFactory backEndBits
holds pointer to BackEndFactory instance during back end portion of this compiler.


numfilters

public static int numfilters

numchannels

public static int numchannels

numspus

public static final int numspus

MAX_TAPES

public static final int MAX_TAPES
See Also:
Constant Field Values

ITERS_PER_BATCH

public static final int ITERS_PER_BATCH
See Also:
Constant Field Values

inputChannelMap

public static final HashMap<InputSliceNode,LinkedList<Integer>> inputChannelMap
InputSliceNode -> List of input channel IDs


outputChannelMap

public static final HashMap<OutputSliceNode,LinkedList<Integer>> outputChannelMap
OutputSliceNode -> List of output channel IDs


SPUassignment

public static final HashMap<Integer,SliceNode> SPUassignment

scheduleLayout

public static final LinkedList<LinkedList<Integer>> scheduleLayout
Encapsulates the schedule and layout of the program. The first dimension specifies the order of firings. The second dimension specifies the group of filters that are fired in parallel. The integer specifies the ID of the filter to be fired.


channelIdMap

public static final HashMap<InterSliceEdge,Integer> channelIdMap

channels

public static final ArrayList<InterSliceEdge> channels

filters

public static final ArrayList<SliceNode> filters
List of all the filters in the graph (including RR splitters and joiners as separate filters)


filterIdMap

public static final HashMap<SliceNode,Integer> filterIdMap

duplicateSplitters

public static final HashMap<OutputSliceNode,Integer> duplicateSplitters

artificialJoinerChannels

public static final HashMap<InputSliceNode,Integer> artificialJoinerChannels
InputSliceNode -> ID of the artificial channel connecting it to the FilterSliceNode


artificialRRSplitterChannels

public static final HashMap<OutputSliceNode,Integer> artificialRRSplitterChannels
OutputSliceNode -> ID of the artificial channel connecting the FilterSliceNode to it


readyInputs

public static final HashSet<Integer> readyInputs
Set of IDs of channels that already have input data ready

Constructor Detail

CellBackend

public CellBackend()
Method Detail

run

public static void run(SIRStream str,
                       JInterfaceDeclaration[] interfaces,
                       SIRInterfaceTable[] interfaceTables,
                       SIRStructure[] structs,
                       SIRHelper[] helpers,
                       SIRGlobal global)
Top level method for Cell backend, called via reflection from StreaMITMain.

Parameters:
str - SIRStream from Kopi2SIR
interfaces - JInterfaceDeclaration[] from Kopi2SIR
interfaceTables - SIRInterfaceTable[] from Kopi2SIR
structs - SIRStructure[] from Kopi2SIR
helpers - SIRHelper[] from Kopi2SIR
global - SIRGlobal from Kopi2SIR

getLastScheduleGroup

public static LinkedList<Integer> getLastScheduleGroup()

addReadyInputsForCompleted

public static void addReadyInputsForCompleted(LinkedList<Integer> completedIds)

getEdgeBetween

public static InterSliceEdge getEdgeBetween(OutputSliceNode src,
                                            InputSliceNode dest)