Dataflow Software Stack  032db78
Master Thesis of Mathijs Saey at the VUB
 All Classes Namespaces Files Functions Variables Pages
Functions | Variables
backEnd.DVM.forin Namespace Reference

IGR for in structure changer. More...

Functions

def getArrayCount
 See how many arrays a for...in node generates internally. More...
 
def acceptsArray
 See if the generator accepts an array or creates on. More...
 
def addMerges
 Replace the subgraphHeader of the return subgraph with array instructions that will merge our inputs. More...
 
def adjustGenerator
 
def shiftBodyPorts
 Adjust the ports of the body so that the array elements are at port 0 and the other arguments after it. More...
 
def duplicatePath
 Follow the path through the body, starting from the exit point and add every node we encounter up to the entry. More...
 
def splitBody
 Duplicate the path for every out port that produces an array. More...
 
def addBodySinks
 
def convertForIn
 
def checkNode
 
def convert
 

Variables

dictionary map = {}
 Stores the destination of the context change for every split. More...
 

Detailed Description

IGR for in structure changer.

This module contains functions to modify the IGR graph in order to be able to compile the for...in compound node.

Function Documentation

def backEnd.DVM.forin.getArrayCount (   node)

See how many arrays a for...in node generates internally.

def backEnd.DVM.forin.acceptsArray (   node)

See if the generator accepts an array or creates on.

def backEnd.DVM.forin.addMerges (   node)

Replace the subgraphHeader of the return subgraph with array instructions that will merge our inputs.

We also update the map with the idx -> instruction mapping.

def backEnd.DVM.forin.adjustGenerator (   node)
def backEnd.DVM.forin.shiftBodyPorts (   node)

Adjust the ports of the body so that the array elements are at port 0 and the other arguments after it.

def backEnd.DVM.forin.duplicatePath (   node,
  idx 
)

Follow the path through the body, starting from the exit point and add every node we encounter up to the entry.

def backEnd.DVM.forin.splitBody (   node)

Duplicate the path for every out port that produces an array.

def backEnd.DVM.forin.addBodySinks (   node)
def backEnd.DVM.forin.convertForIn (   node)
def backEnd.DVM.forin.checkNode (   node)
def backEnd.DVM.forin.convert ( )

Variable Documentation

dictionary backEnd.DVM.forin.map = {}

Stores the destination of the context change for every split.