CGRA-ME
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Friends | List of all members
MRRGNode Class Reference

#include <MRRG.h>

Public Types

using SupportedOpTags = std::set< std::string >
 

Public Member Functions

template<typename SupportedOps = std::vector<OpGraphOpCode>>
 MRRGNode (Module *parent, int cycle, std::string name, MRRGNode_Type type, int latency, int bitwidth, SupportedOps &&supported_ops, HWEntityType et, SupportedOpTags supported_operand_tags, int max_cap=1)
 
 MRRGNode (MRRGNode &&)=default
 
MRRGNodeoperator= (MRRGNode &&)=default
 
bool canMapOp (OpGraphOp const *op) const
 
std::string getFullName () const
 
const std::string & getHierarchyQualifiedName () const
 
auto getContextNum () const
 
auto getLatency () const
 

Static Public Member Functions

template<typename STR >
static MRRGNode make_routing (Module *parent, int bitwidth, int cycle, STR &&name, int latency=0, int max_cap=1)
 
template<typename STR >
static MRRGNode make_operand_pin (Module *parent, int bitwidth, int cycle, STR &&name, SupportedOpTags operand_tags, int latency=0, int max_cap=1)
 
template<typename STR , typename SupportedOps = std::vector<OpGraphOpCode>>
static MRRGNode make_routing_function (Module *parent, int bitwidth, int cycle, STR &&name, int latency, SupportedOpTags operand_tags, SupportedOps supported_ops, int max_cap=1)
 
template<typename STR , typename SupportedOps = std::vector<OpGraphOpCode>>
static MRRGNode make_function (Module *parent, int bitwidth, int cycle, STR &&name, int latency, SupportedOps supported_ops, int max_cap=1, bool is_const_unit=false)
 

Public Attributes

std::string name
 
MRRGNode_Type type
 
HWEntityType et = HW_UNSPECIFIED
 
std::vector< OpGraphOpCodesupported_ops
 
std::vector< MRRGNode * > fanout
 
std::vector< MRRGNode * > fanin
 
SupportedOpTags supported_operand_tags
 
Moduleparent
 
unsigned int cycle
 
unsigned int delay = 0
 
unsigned int bitwidth = 32
 
int latency
 
int capacity = 1
 

Private Member Functions

 MRRGNode (const MRRGNode &)=default
 
MRRGNodeoperator= (const MRRGNode &)=default
 
void applyReferenceRename (const std::unordered_map< const MRRGNode *, MRRGNode * > &rename_map)
 

Friends

class MRRG
 
std::ostream & operator<< (std::ostream &out, const MRRGNode &node)
 
std::ostream & operator<< (std::ostream &out, const MRRGNode &node)
 

Detailed Description

Definition at line 60 of file MRRG.h.

Member Typedef Documentation

◆ SupportedOpTags

using MRRGNode::SupportedOpTags = std::set<std::string>

Definition at line 63 of file MRRG.h.

Constructor & Destructor Documentation

◆ MRRGNode() [1/3]

template<typename SupportedOps = std::vector<OpGraphOpCode>>
MRRGNode::MRRGNode ( Module parent,
int  cycle,
std::string  name,
MRRGNode_Type  type,
int  latency,
int  bitwidth,
SupportedOps &&  supported_ops,
HWEntityType  et,
SupportedOpTags  supported_operand_tags,
int  max_cap = 1 
)
inline

Definition at line 65 of file MRRG.h.

◆ MRRGNode() [2/3]

MRRGNode::MRRGNode ( const MRRGNode )
privatedefault

◆ MRRGNode() [3/3]

MRRGNode::MRRGNode ( MRRGNode &&  )
default

Member Function Documentation

◆ applyReferenceRename()

void MRRGNode::applyReferenceRename ( const std::unordered_map< const MRRGNode *, MRRGNode * > &  rename_map)
private

Renames references in this class according to rename_map. If a reference cannot be found in the map, then it will not be changed

Definition at line 59 of file MRRG.cpp.

◆ canMapOp()

bool MRRGNode::canMapOp ( OpGraphOp const *  op) const

Definition at line 581 of file MRRG.cpp.

◆ getContextNum()

auto MRRGNode::getContextNum ( ) const
inline

Definition at line 124 of file MRRG.h.

◆ getFullName()

std::string MRRGNode::getFullName ( ) const

Definition at line 569 of file MRRG.cpp.

◆ getHierarchyQualifiedName()

const std::string& MRRGNode::getHierarchyQualifiedName ( ) const
inline

Definition at line 122 of file MRRG.h.

◆ getLatency()

auto MRRGNode::getLatency ( ) const
inline

Definition at line 125 of file MRRG.h.

◆ make_function()

template<typename STR , typename SupportedOps = std::vector<OpGraphOpCode>>
static MRRGNode MRRGNode::make_function ( Module parent,
int  bitwidth,
int  cycle,
STR &&  name,
int  latency,
SupportedOps  supported_ops,
int  max_cap = 1,
bool  is_const_unit = false 
)
inlinestatic

Definition at line 191 of file MRRG.h.

◆ make_operand_pin()

template<typename STR >
static MRRGNode MRRGNode::make_operand_pin ( Module parent,
int  bitwidth,
int  cycle,
STR &&  name,
SupportedOpTags  operand_tags,
int  latency = 0,
int  max_cap = 1 
)
inlinestatic

Definition at line 164 of file MRRG.h.

◆ make_routing()

template<typename STR >
static MRRGNode MRRGNode::make_routing ( Module parent,
int  bitwidth,
int  cycle,
STR &&  name,
int  latency = 0,
int  max_cap = 1 
)
inlinestatic

Definition at line 151 of file MRRG.h.

◆ make_routing_function()

template<typename STR , typename SupportedOps = std::vector<OpGraphOpCode>>
static MRRGNode MRRGNode::make_routing_function ( Module parent,
int  bitwidth,
int  cycle,
STR &&  name,
int  latency,
SupportedOpTags  operand_tags,
SupportedOps  supported_ops,
int  max_cap = 1 
)
inlinestatic

Definition at line 177 of file MRRG.h.

◆ operator=() [1/2]

MRRGNode& MRRGNode::operator= ( const MRRGNode )
privatedefault

◆ operator=() [2/2]

MRRGNode& MRRGNode::operator= ( MRRGNode &&  )
default

Friends And Related Function Documentation

◆ MRRG

friend class MRRG
friend

Definition at line 208 of file MRRG.h.

◆ operator<< [1/2]

std::ostream& operator<< ( std::ostream &  out,
const MRRGNode node 
)
friend

Definition at line 593 of file MRRG.cpp.

◆ operator<< [2/2]

std::ostream& operator<< ( std::ostream &  out,
const MRRGNode node 
)
friend

Definition at line 593 of file MRRG.cpp.

Member Data Documentation

◆ bitwidth

unsigned int MRRGNode::bitwidth = 32

Definition at line 129 of file MRRG.h.

◆ capacity

int MRRGNode::capacity = 1

Definition at line 136 of file MRRG.h.

◆ cycle

unsigned int MRRGNode::cycle

Definition at line 127 of file MRRG.h.

◆ delay

unsigned int MRRGNode::delay = 0

Definition at line 128 of file MRRG.h.

◆ et

HWEntityType MRRGNode::et = HW_UNSPECIFIED

Definition at line 108 of file MRRG.h.

◆ fanin

std::vector<MRRGNode*> MRRGNode::fanin

Definition at line 114 of file MRRG.h.

◆ fanout

std::vector<MRRGNode*> MRRGNode::fanout

Definition at line 113 of file MRRG.h.

◆ latency

int MRRGNode::latency

Definition at line 132 of file MRRG.h.

◆ name

std::string MRRGNode::name

Definition at line 106 of file MRRG.h.

◆ parent

Module* MRRGNode::parent

Definition at line 119 of file MRRG.h.

◆ supported_operand_tags

SupportedOpTags MRRGNode::supported_operand_tags

Definition at line 117 of file MRRG.h.

◆ supported_ops

std::vector<OpGraphOpCode> MRRGNode::supported_ops

Definition at line 111 of file MRRG.h.

◆ type

MRRGNode_Type MRRGNode::type

Definition at line 107 of file MRRG.h.


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