by Luca Patrignani luca0patrignani@gmail.com
The DaCe framework uses the Stateful DataFlow multiGraph (SDFG) data-centric intermediate representation. This graph maps to a variety of high-performance architectues and performance engineers can manipulate this graph for achieving state-of-the-art representations. When dealing with large projects with hundreds of thousands lines of codes the state graph can become extremely unreadable due multiple nested cycles, function’s calls, and conditional branching: it becomes nearly impossible to understand smaller parts of the graph and it also makes relating it to the original source code very hard.
To mitigate this problem the concept of ControlFlowRegion was introduced. A ControlFlowRegion is a region of the SDFG which represents a control flow construct just like a traditional programming language. An example can be the LoopRegion which represents the classic C-like for loop for ( init-clause ; cond-expression ; iteration-expression ).
- Implement all the other control flow constructs like if … elif … else
- Implement regions for function calls and with statements
- Implement user defined regions
- Add support for all these new regions in the DaCe VSCode extension