![]() |
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.
1.8.8