|
static std::string | ID = "propagatePorts" |
|
Definition at line 22 of file CGRA.cpp.
◆ PropagatePorts()
PropagatePorts::PropagatePorts |
( |
| ) |
|
|
inline |
◆ print()
void PropagatePorts::print |
( |
| ) |
|
|
inlineoverride |
◆ runOnInstanceGraphNode()
bool PropagatePorts::runOnInstanceGraphNode |
( |
CoreIR::InstanceGraphNode & |
node | ) |
|
|
override |
PropagatePorts is a CoreIR InstanceGraph Pass. An instance graph pass allows iterates from the bottom level modules to the top level module. runOnInstanceGraphNode operates on each type of module only once, which means you cannot try to use a slighlty altered instance of a module to propagate ports specifically. The pass starts from the lowest level modules and checks if they have ports to propagate. If they do, then it keeps note of this module and the ports in a unordered_map. At the higher level modules it checks if its children contains one of the modules with ports to propagate. If true, then it adds those ports to itself, connects them to the children port and once again marks itself.
Definition at line 433 of file CGRA.cpp.
◆ ID
std::string PropagatePorts::ID = "propagatePorts" |
|
static |
◆ modulesToPropagateFrom
std::unordered_map<CoreIR::Module *, std::vector<std::string> > PropagatePorts::modulesToPropagateFrom |
|
private |
The documentation for this class was generated from the following file:
- /media/maple_tb_disk/wicklun2/cgra-me-website/cgra-me/src/core/CGRA.cpp