CGRA-ME
Public Member Functions | Static Public Attributes | Private Attributes | List of all members
PropagatePorts Class Reference
Inheritance diagram for PropagatePorts:

Public Member Functions

 PropagatePorts ()
 
bool runOnInstanceGraphNode (CoreIR::InstanceGraphNode &node) override
 
void print () override
 

Static Public Attributes

static std::string ID = "propagatePorts"
 

Private Attributes

std::unordered_map< CoreIR::Module *, std::vector< std::string > > modulesToPropagateFrom
 

Detailed Description

Definition at line 22 of file CGRA.cpp.

Constructor & Destructor Documentation

◆ PropagatePorts()

PropagatePorts::PropagatePorts ( )
inline

Definition at line 34 of file CGRA.cpp.

Member Function Documentation

◆ print()

void PropagatePorts::print ( )
inlineoverride

Definition at line 37 of file CGRA.cpp.

◆ 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.

Member Data Documentation

◆ ID

std::string PropagatePorts::ID = "propagatePorts"
static

Definition at line 33 of file CGRA.cpp.

◆ modulesToPropagateFrom

std::unordered_map<CoreIR::Module *, std::vector<std::string> > PropagatePorts::modulesToPropagateFrom
private

Definition at line 43 of file CGRA.cpp.


The documentation for this class was generated from the following file: