Dataflow Software Stack
032db78
Master Thesis of Mathijs Saey at the VUB
|
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... | |
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.
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 | ( | ) |
dictionary backEnd.DVM.forin.map = {} |
Stores the destination of the context change for every split.