PandA-2024.02
|
Class managing the connection binding of datapath. More...
#include <mux_connection_binding.hpp>
Public Member Functions | |
mux_connection_binding (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager) | |
Main constructor. More... | |
~mux_connection_binding () override | |
Destructor. More... | |
DesignFlowStep_Status | InternalExec () override |
Execute the step. More... | |
void | Initialize () override |
Initialize the step (i.e., like a constructor, but executed just before exec. More... | |
void | create_connections () |
Creates the connections inside the architecture. More... | |
Public Member Functions inherited from conn_binding_creator | |
conn_binding_creator (const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type) | |
Constructor. More... | |
~conn_binding_creator () override | |
Destructor. More... | |
Public Member Functions inherited from HLSFunctionStep | |
HLSFunctionStep (const ParameterConstRef Param, const HLS_managerRef HLSMgr, unsigned int funId, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef()) | |
Constructor. More... | |
~HLSFunctionStep () override | |
Destructor. More... | |
bool | HasToBeExecuted () const override |
Check if this step has actually to be executed. More... | |
void | Initialize () override |
Initialize the step (i.e., like a constructor, but executed just before exec. More... | |
std::string | GetSignature () const final |
Return a unified identifier of this design step. More... | |
std::string | GetName () const final |
Return the name of this design step. More... | |
DesignFlowStep_Status | Exec () final |
Execute the step. More... | |
Public Member Functions inherited from HLS_step | |
HLS_step (const ParameterConstRef _parameters, const HLS_managerRef HLSMgr, const DesignFlowManagerConstRef design_flow_manager, const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization=HLSFlowStepSpecializationConstRef()) | |
Constructor. More... | |
~HLS_step () override | |
Destructor. More... | |
std::string | GetSignature () const override |
Return a unified identifier of this design step. More... | |
std::string | GetName () const override |
Return the name of this design step. More... | |
virtual std::string | GetKindText () const |
Return the name of the type of this frontend flow step. More... | |
DesignFlowStepFactoryConstRef | CGetDesignFlowStepFactory () const final |
Return the factory to create this type of steps. More... | |
void | ComputeRelationships (DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override |
Compute the relationships of a step with other steps. More... | |
Public Member Functions inherited from DesignFlowStep | |
DesignFlowStep (const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters) | |
Constructor. More... | |
virtual | ~DesignFlowStep () |
Destructor. More... | |
DesignFlowStep_Status | GetStatus () const |
Return the status of this design step. More... | |
virtual void | WriteDot (std::ostream &out) const |
Write the label for a dot graph. More... | |
bool | IsComposed () const |
Returns if this step is composed. More... | |
int | CGetDebugLevel () const |
Return the debug level of the step. More... | |
virtual void | PrintInitialIR () const |
Dump the initial intermediate representation. More... | |
virtual void | PrintFinalIR () const |
Dump the final intermediate representation. More... | |
Private Types | |
enum | cacheType { i_assign = 0, uu_conv, ui_conv, iu_conv, ii_conv } |
cache connection type More... | |
using | resource_id_type = std::pair< unsigned int, unsigned int > |
type representing a resource identifier More... | |
Private Member Functions | |
unsigned int | mux_interconnection () |
Performs specialization of interconnections using mux architecture. More... | |
unsigned int | input_logic (const conn_binding::ConnectionSources &src, const generic_objRef tgt, unsigned int op, unsigned int port_index, unsigned int iteration) |
Computes logic for inputs. More... | |
void | determine_connection (const vertex &op, const HLS_manager::io_binding_type &var, generic_objRef fu_obj, unsigned int port_num, unsigned int port_index, const OpGraphConstRef data, unsigned int precision, unsigned int alignment=0) |
Determine the actual interconnection. More... | |
unsigned long long | object_bitsize (const tree_managerRef TreeM, const HLS_manager::io_binding_type &obj) const |
Compute the bitsize given a io_binding type. More... | |
void | create_single_conn (const OpGraphConstRef data, const vertex &op, generic_objRef fu_obj_src, generic_objRef fu_obj, unsigned int port_num, unsigned int port_index, unsigned int tree_var, unsigned int precision, const bool is_not_a_phi) |
create the connection object and update the unique table More... | |
void | connect_to_registers (vertex op, const OpGraphConstRef data, generic_objRef fu_obj, unsigned int port_num, unsigned int port_index, unsigned int tree_var, unsigned long long precision, const bool is_not_a_phi) |
connect the fu_obj with the associated registers. More... | |
unsigned int | extract_parm_decl (unsigned int tree_var, const tree_managerRef TreeM) |
void | add_conversion (unsigned int num, vertex op, unsigned int form_par_type, unsigned long long form_par_bitsize, unsigned int port_index, const generic_objRef fu_obj, const OpGraphConstRef data, const tree_managerRef TreeM, unsigned int tree_var) |
unsigned int | address_precision (unsigned int precision, const vertex &op, const OpGraphConstRef data, const tree_managerRef TreeM) |
bool | isConstantObj (unsigned int tree_index, const tree_managerRef TreeM) |
Private Attributes | |
std::map< resource_id_type, std::map< unsigned int, CustomOrderedSet< unsigned int > > > | regs_in |
store the registers for each resource and for each port More... | |
std::map< resource_id_type, std::map< unsigned int, CustomOrderedSet< unsigned int > > > | chained_in |
store the chained storage values for each resource and for each port More... | |
std::map< resource_id_type, std::map< unsigned int, CustomOrderedSet< resource_id_type > > > | module_in |
store the resource in IN for each resource and for each port More... | |
CustomOrderedSet< vertex > | swap_computed_table |
store the operations for which a port swapping is beneficial More... | |
CustomOrderedSet< vertex > | noswap_computed_table |
store the operations for which a port swapping is not beneficial More... | |
unsigned int | id |
variable used to assign a unique id to sparse logic More... | |
unsigned int | cur_phi_tree_var |
store the current phi use. Used during the analysis of phi nodes More... | |
bool | is_PC |
std::map< std::tuple< unsigned int, cacheType, const HLS_manager::io_binding_type >, generic_objRef > | connCache |
connection cache More... | |
Additional Inherited Members | |
Public Types inherited from DesignFlowStep | |
enum | RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP } |
The relationship type. More... | |
Static Public Member Functions inherited from HLSFunctionStep | |
static std::string | ComputeSignature (const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization, const unsigned int function_id) |
Compute the signature of a hls flow step. More... | |
Static Public Member Functions inherited from HLS_step | |
static std::string | EnumToName (const HLSFlowStep_Type hls_flow_step_type) |
Given a HLS flow step type, return the name of the type. More... | |
static const std::string | ComputeSignature (const HLSFlowStep_Type hls_flow_step_type, const HLSFlowStepSpecializationConstRef hls_flow_step_specialization) |
Compute the signature of a hls flow step. More... | |
Protected Member Functions inherited from conn_binding_creator | |
void | add_parameter_ports () |
Add ports representing parameter values. More... | |
const CustomUnorderedSet< std::tuple< HLSFlowStep_Type, HLSFlowStepSpecializationConstRef, HLSFlowStep_Relationship > > | ComputeHLSRelationships (const DesignFlowStep::RelationshipType relationship_type) const override |
Compute the relationship of this step. More... | |
Protected Member Functions inherited from HLSFunctionStep | |
void | ComputeRelationships (DesignFlowStepSet &design_flow_step_set, const DesignFlowStep::RelationshipType relationship_type) override |
Compute the relationships of a step with other steps. More... | |
Protected Attributes inherited from conn_binding_creator | |
std::map< unsigned int, generic_objRef > | input_ports |
map between input port variable and generic object More... | |
std::map< unsigned int, generic_objRef > | output_ports |
map between output port variable and generic object More... | |
Protected Attributes inherited from HLSFunctionStep | |
std::map< unsigned int, unsigned int > | last_bb_ver |
last bb version of the called functions More... | |
std::map< unsigned int, unsigned int > | last_bitvalue_ver |
The version of bit value IR representation on which this step was applied. More... | |
const unsigned int | funId |
identifier of the function to be processed (0 means that it is a global step) More... | |
hlsRef | HLS |
HLS data structure of the function to be analyzed. More... | |
unsigned int | bb_version |
The version of bb intermediate representation on which this step was applied. More... | |
unsigned int | bitvalue_version |
The version of bitvalue on which this step was applied. More... | |
unsigned int | memory_version |
The version of memory representation on which this step was applied. More... | |
Protected Attributes inherited from HLS_step | |
const HLS_managerRef | HLSMgr |
information about all the HLS synthesis More... | |
const HLSFlowStep_Type | hls_flow_step_type |
The type of this step. More... | |
const HLSFlowStepSpecializationConstRef | hls_flow_step_specialization |
The information about specialization. More... | |
Protected Attributes inherited from DesignFlowStep | |
bool | composed |
True if this step represents a composition of design flow steps (e.g., a flow); must be set by specialized constructors. More... | |
const Wrefcount< const DesignFlowManager > | design_flow_manager |
The design flow manager. More... | |
const ParameterConstRef | parameters |
Set of input parameters. More... | |
int | debug_level |
The debug level. More... | |
const int | output_level |
The output level. More... | |
Static Protected Attributes inherited from HLS_step | |
static CustomUnorderedMap< std::string, HLSFlowStep_Type > | command_line_name_to_enum |
Map hls step name to enum. More... | |
Class managing the connection binding of datapath.
It extends the standard mux_connection_binding class.
This class provides methods to compute interconnections among datapath elements (functional units, registers, ports). Different architectural style have been implemented: mux-based or bus-based. They are implemented as specialization of generic interconnections.
Definition at line 72 of file mux_connection_binding.hpp.
|
private |
type representing a resource identifier
Definition at line 76 of file mux_connection_binding.hpp.
|
private |
cache connection type
Enumerator | |
---|---|
i_assign | |
uu_conv | |
ui_conv | |
iu_conv | |
ii_conv |
Definition at line 100 of file mux_connection_binding.hpp.
mux_connection_binding::mux_connection_binding | ( | const ParameterConstRef | _parameters, |
const HLS_managerRef | HLSMgr, | ||
unsigned int | funId, | ||
const DesignFlowManagerConstRef | design_flow_manager | ||
) |
Main constructor.
design_flow_manager | is the design flow manager |
Definition at line 120 of file mux_connection_binding.cpp.
References DesignFlowStep::debug_level, GET_CLASS, MUX_INTERCONNECTION_BINDING, and ~mux_connection_binding().
|
overridedefault |
|
private |
Definition at line 1196 of file mux_connection_binding.cpp.
References conn_binding::add_sparse_logic(), tree_manager::CGetTreeReindex(), HLS_manager::check_bitwidth(), connCache, create_single_conn(), determine_connection(), AllocationInformation::extract_bambu_provided_name(), GET_TYPE, HLSFunctionStep::HLS, HLS_step::HLSMgr, ii_conv, tree_helper::IsBooleanType(), isConstantObj(), tree_helper::IsPointerType(), tree_helper::IsSignedIntegerType(), tree_helper::IsUnsignedIntegerType(), iu_conv, key, DesignFlowStep::parameters, hls::Rconn, tree_helper::Size(), STR, THROW_ASSERT, THROW_ERROR, TYPE_PHI, ui_conv, and uu_conv.
Referenced by create_connections().
|
private |
Definition at line 288 of file mux_connection_binding.cpp.
References hls::allocation_information, OpGraph::CGetOpNodeInfo(), tree_manager::CGetTreeNode(), tree_manager::CGetTreeReindex(), hls::functionId, fu_binding::get_assign(), GET_CONST_NODE, AllocationInformation::get_memory_var(), AllocationInformation::get_proxy_memory_var(), GET_TYPE, HLSFunctionStep::HLS, HLS_step::HLSMgr, AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_memory_unit(), hls::Rfu, tree_helper::Size(), TYPE_LOAD, and TYPE_STORE.
Referenced by determine_connection().
|
private |
connect the fu_obj with the associated registers.
Definition at line 691 of file mux_connection_binding.cpp.
References conn_binding::add_data_transfer(), OpGraph::CGetOpNodeInfo(), cur_phi_tree_var, DesignFlowStep::debug_level, DEBUG_LEVEL_PEDANTIC, extract_parm_decl(), hls::functionId, HLSFunctionStep::funId, reg_binding::get(), fu_binding::get(), StateTransitionGraphManager::get_entry_state(), liveness::get_live_in(), liveness::get_live_out(), GET_NAME, liveness::get_name(), liveness::get_op_where_defined(), reg_binding::get_register(), liveness::get_state_in(), liveness::get_state_where_end(), liveness::get_state_where_run(), StorageValueInformation::get_storage_value_index(), generic_obj::get_string(), tree_manager::get_tree_node_const(), GET_TYPE, StateTransitionGraphManager::GetStg(), liveness::has_state_in(), HLSFunctionStep::HLS, HLS_step::HLSMgr, conn_binding_creator::input_ports, StorageValueInformation::is_a_storage_value(), tree_helper::is_parameter(), is_PC, NULL_VERTEX, PRINT_DBG_MEX, hls::Rconn, hls::Rfu, hls::Rliv, hls::Rreg, hls::STG, hls::storage_value_information, STR, lenet_tvm::target, THROW_ASSERT, THROW_ERROR, THROW_UNREACHABLE, top(), and TYPE_PHI.
Referenced by determine_connection().
void mux_connection_binding::create_connections | ( | ) |
Creates the connections inside the architecture.
add the ports representing the parameters
check for required and produced values
virtual phis are skipped
phis are skipped
adding activation's state of selector related to operation op
MEMORY REFERENCES
connect predicate port
connect address port
connect size port
phi must be differently managed
if the variable does not belong to the live-out set, it means that it is used inside the state (chaining) and this situation is managed above
Definition at line 1297 of file mux_connection_binding.cpp.
References add_conversion(), conn_binding::add_data_transfer(), conn_binding_creator::add_parameter_ports(), conn_binding::add_sparse_logic(), hls::allocation_information, conn_binding::bind_command_port(), conn_binding::bind_selector_port(), StateTransitionGraphManager::CGetAstg(), tree_helper::CGetType(), HLS_manager::check_bitwidth(), connCache, conn_binding::create_conn_binding(), create_single_conn(), cur_phi_tree_var, DesignFlowStep::debug_level, DEBUG_LEVEL_PEDANTIC, DEBUG_LEVEL_VERY_PEDANTIC, determine_connection(), FunctionBehavior::FDFG, hls::functionId, HLSFunctionStep::funId, reg_binding::get(), fu_binding::get(), fu_binding::get_allocation_list(), fu_binding::get_assign(), GET_CONST_NODE, AllocationInformation::get_fu(), AllocationInformation::get_fu_name(), fu_binding::get_index(), GET_INDEX_NODE, tree_node::get_kind(), tree_node::get_kind_text(), StateTransitionGraphManager::get_mu_ctrls(), GET_NAME, liveness::get_name(), GET_NODE, fu_binding::get_number(), AllocationInformation::get_number_channels(), liveness::get_op_where_defined(), fu_binding::get_ports_are_swapped(), reg_binding::get_register(), liveness::get_state_out(), liveness::get_state_where_end(), liveness::get_state_where_run(), StorageValueInformation::get_storage_value_index(), generic_obj::get_string(), AllocationInformation::get_string_name(), GET_TYPE, reg_binding::get_used_regs(), tree_helper::GetConstValue(), tree_helper::GetFormalIth(), StateTransitionGraphManager::GetStg(), liveness::has_state_out(), HLSFunctionStep::HLS, HLS_step::HLSMgr, INDENT_DBG_MEX, index, tree_helper::is_a_pointer(), StorageValueInformation::is_a_storage_value(), tree_helper::is_bool(), AllocationInformation::is_direct_access_memory_unit(), AllocationInformation::is_dual_port_memory(), AllocationInformation::is_indirect_access_memory_unit(), tree_helper::is_int(), is_PC, tree_helper::is_real(), tree_helper::is_unsigned(), tree_helper::IsBooleanType(), isConstantObj(), tree_helper::IsRealType(), tree_helper::IsSameType(), tree_helper::IsSignedIntegerType(), tree_helper::IsUnsignedIntegerType(), iu_conv, key, MULTI_READ_COND, NULL_VERTEX, object_bitsize(), DesignFlowStep::parameters, pi(), PRINT_DBG_MEX, hls::Rconn, hls::Rfu, hls::Rliv, hls::Rreg, tree_helper::Size(), hls::STG, hls::storage_value_information, STR, THROW_ASSERT, THROW_ERROR, ToString(), test_panda::type, TYPE_IF, TYPE_LOAD, TYPE_MULTIIF, TYPE_PHI, TYPE_STORE, TYPE_SWITCH, TYPE_VPHI, U, and uu_conv.
Referenced by InternalExec().
|
private |
create the connection object and update the unique table
instead of tree_var we use cur_phi_tree_var when we look into the state in data structure since tree_var can be modified in the mean time
Definition at line 199 of file mux_connection_binding.cpp.
References conn_binding::add_data_transfer(), OpGraph::CGetOpNodeInfo(), cur_phi_tree_var, DesignFlowStep::debug_level, DEBUG_LEVEL_PEDANTIC, HLSFunctionStep::funId, liveness::get_name(), liveness::get_state_in(), liveness::get_state_where_run(), generic_obj::get_string(), tree_manager::get_tree_node_const(), StateTransitionGraphManager::GetStg(), liveness::has_state_in(), HLSFunctionStep::HLS, HLS_step::HLSMgr, is_PC, NULL_VERTEX, PRINT_DBG_MEX, hls::Rconn, hls::Rliv, hls::STG, STR, and THROW_ASSERT.
Referenced by add_conversion(), create_connections(), and determine_connection().
|
private |
Determine the actual interconnection.
create connection with the constant
Definition at line 338 of file mux_connection_binding.cpp.
References conn_binding::add_sparse_logic(), address_precision(), align_to_trimmed_bits(), CASE_CPP_NODES, CASE_FAKE_NODES, CASE_GIMPLE_NODES, CASE_PRAGMA_NODES, CASE_TYPE_NODES, FunctionBehavior::CGetBehavioralHelper(), OpGraph::CGetOpNodeInfo(), tree_manager::CGetTreeNode(), tree_helper::CGetType(), connect_to_registers(), convert_to_binary(), create_single_conn(), DesignFlowStep::debug_level, DEBUG_LEVEL_PEDANTIC, hls::functionId, HLSFunctionStep::funId, GET_CONST_NODE, conn_binding::get_constant_obj(), GET_INDEX_CONST_NODE, GET_INDEX_NODE, tree_node::get_kind(), tree_node::get_kind_text(), GET_TYPE, tree_helper::GetBaseVariable(), tree_helper::GetConstValue(), tree_manager::GetTreeNode(), HLSFunctionStep::HLS, HLS_step::HLSMgr, FunctionBehavior::is_variable_mem(), max, min, offset, PRINT_DBG_MEX, hls::Rconn, tree_helper::Size(), STR, THROW_ASSERT, THROW_ERROR, test_panda::type, and TYPE_PHI.
Referenced by add_conversion(), and create_connections().
|
private |
Definition at line 675 of file mux_connection_binding.cpp.
References GET_INDEX_NODE, and tree_manager::get_tree_node_const().
Referenced by connect_to_registers().
|
overridevirtual |
Initialize the step (i.e., like a constructor, but executed just before exec.
Reimplemented from DesignFlowStep.
Definition at line 134 of file mux_connection_binding.cpp.
References chained_in, cur_phi_tree_var, HLSFunctionStep::HLS, HLSFunctionStep::Initialize(), module_in, noswap_computed_table, hls::Rconn, regs_in, and swap_computed_table.
|
private |
Computes logic for inputs.
The connection can become directed or by multiplexer. If multiplexers are allocated, then decoding logic is created.
src | is the set of references to generic_obj, sources of connections |
tgt | is the reference to connection target |
op | is i-th operand of target element, where source is attached |
port_index | is the i-th port index of the given target port. |
if it's a one-to-one connection, a directed link can be used
map between the source object and the resulting tree of multiplexers to the current target object
map between a data_transfer and object associated at the moment
map between a generic_obj and list of data_transfer associated with this object
map between a data_transfer and original source object
all the inputs are connected with 2:1 multiplexers. Two inputs are taken at each time.
stuff for the first input
stuff for the second input
specialize connections between sources and target
Definition at line 2200 of file mux_connection_binding.cpp.
References conn_binding::AddConnectionCB(), conn_binding::bind_selector_port(), DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, F_COND, HLSFunctionStep::funId, liveness::get_name(), generic_obj::get_string(), HLSFunctionStep::HLS, HLS_step::HLSMgr, INFINITE_UINT, level, PRINT_DBG_MEX, hls::Rconn, generic_obj::REGISTER, hls::Rliv, STR, T_COND, THROW_ASSERT, and THROW_ERROR.
Referenced by mux_interconnection().
|
overridevirtual |
Execute the step.
This function is the public one to execute connection binding.
First it computes virtual connection to be implemented and then it allocates them based on chosen architecture
Implements HLSFunctionStep.
Definition at line 149 of file mux_connection_binding.cpp.
References conn_binding::cleanInternals(), connCache, create_connections(), conn_binding::determine_bit_level_mux(), HLSFunctionStep::funId, HLSFunctionStep::HLS, HLS_step::HLSMgr, INDENT_OUT_MEX, mux_interconnection(), DesignFlowStep::output_level, OUTPUT_LEVEL_MINIMUM, OUTPUT_LEVEL_PEDANTIC, conn_binding::print(), print_cpu_time(), hls::Rconn, START_TIME, STOP_TIME, STR, and SUCCESS.
|
private |
Definition at line 321 of file mux_connection_binding.cpp.
References tree_manager::get_tree_node_const().
Referenced by add_conversion(), and create_connections().
|
private |
Performs specialization of interconnections using mux architecture.
Definition at line 2178 of file mux_connection_binding.cpp.
References DesignFlowStep::debug_level, DEBUG_LEVEL_PEDANTIC, DEBUG_LEVEL_VERBOSE, conn_binding::get_data_transfers(), generic_obj::get_string(), HLSFunctionStep::HLS, input_logic(), PRINT_DBG_MEX, and hls::Rconn.
Referenced by InternalExec().
|
private |
Compute the bitsize given a io_binding type.
Definition at line 2391 of file mux_connection_binding.cpp.
References tree_manager::CGetTreeReindex(), tree_helper::CGetType(), HLS_step::HLSMgr, tree_helper::IsArrayType(), tree_helper::IsStructType(), tree_helper::IsUnionType(), tree_helper::Size(), and test_panda::type.
Referenced by create_connections().
|
private |
store the chained storage values for each resource and for each port
Definition at line 81 of file mux_connection_binding.hpp.
Referenced by Initialize().
|
private |
connection cache
Definition at line 109 of file mux_connection_binding.hpp.
Referenced by add_conversion(), create_connections(), and InternalExec().
|
private |
store the current phi use. Used during the analysis of phi nodes
Definition at line 95 of file mux_connection_binding.hpp.
Referenced by connect_to_registers(), create_connections(), create_single_conn(), and Initialize().
|
private |
variable used to assign a unique id to sparse logic
Definition at line 92 of file mux_connection_binding.hpp.
|
private |
Definition at line 97 of file mux_connection_binding.hpp.
Referenced by connect_to_registers(), create_connections(), and create_single_conn().
|
private |
store the resource in IN for each resource and for each port
Definition at line 83 of file mux_connection_binding.hpp.
Referenced by Initialize().
|
private |
store the operations for which a port swapping is not beneficial
Definition at line 89 of file mux_connection_binding.hpp.
Referenced by Initialize().
|
private |
store the registers for each resource and for each port
Definition at line 79 of file mux_connection_binding.hpp.
Referenced by Initialize().
|
private |
store the operations for which a port swapping is beneficial
Definition at line 86 of file mux_connection_binding.hpp.
Referenced by Initialize().