PandA-2024.02
Data Structures | Macros | Functions
typed_node_info.hpp File Reference

Base class description of data information associated with each node of a graph. More...

#include "node_info.hpp"
#include "graph.hpp"
#include <ostream>
#include "refcount.hpp"
Include dependency graph for typed_node_info.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  TypedNodeInfo
 

Macros

#define ENTRY   "ENTRY"
 Superclass include. More...
 
#define EXIT   "EXIT"
 constant string identifying an operation node of type exit. More...
 
#define TYPE_ENTRY   2
 constant identifying the node type of an entry node. More...
 
#define TYPE_EXIT   4
 constant identifying the node type of an exit node. More...
 
#define TYPE_GENERIC   8
 constant identifying the node type of a GENERIC operation. More...
 
#define GET_OPERATION(data, vertex_index)   Cget_node_info<TypedNodeInfo>(vertex_index, *(data))->node_operation
 Helper macro returning the operation associated with a node. More...
 
#define GET_NAME(data, vertex_index)   Cget_node_info<TypedNodeInfo>(vertex_index, *(data))->vertex_name
 Helper macro returning the name associated with a node. More...
 
#define GET_TYPE(data, vertex_index)   Cget_node_info<TypedNodeInfo>(vertex_index, *(data))->node_type
 Helper macro returning the type associated with a node. More...
 

Functions

template<class Graph >
bool is_entry_node (const Graph *g, typename boost::graph_traits< Graph >::vertex_descriptor node)
 Base class storing user data information. More...
 
template<class Graph >
bool is_exit_node (const Graph *g, typename boost::graph_traits< Graph >::vertex_descriptor node)
 Helper function checking if a node is an exit node. More...
 

Detailed Description

Base class description of data information associated with each node of a graph.

Author
Fabrizio Ferrandi fabri.nosp@m.zio..nosp@m.ferra.nosp@m.ndi@.nosp@m.polim.nosp@m.i.it
Marco Lattuada lattu.nosp@m.ada@.nosp@m.elet..nosp@m.poli.nosp@m.mi.it $Revision$ $Date$ Last modified by $Author$

Definition in file typed_node_info.hpp.

Macro Definition Documentation

◆ ENTRY

#define ENTRY   "ENTRY"

Superclass include.

Graph include STD include Utility include constant string identifying an operation node of type entry. Used during the behavioral_manager building starting from the tree(GCC) data structure.

Definition at line 63 of file typed_node_info.hpp.

Referenced by operations_graph_constructor::AddOperation(), structural_manager::build_graph(), operations_cfg_computation::connect_start_nodes(), OpNodeInfo::GetNodeId(), OpNodeInfo::GetOperation(), OpOrderComputation::InternalExec(), operations_cfg_computation::InternalExec(), and allocation::InternalExec().

◆ EXIT

#define EXIT   "EXIT"

constant string identifying an operation node of type exit.

Used during the behavioral_manager building starting from the tree(GCC) data structure.

Definition at line 69 of file typed_node_info.hpp.

◆ GET_NAME

#define GET_NAME (   data,
  vertex_index 
)    Cget_node_info<TypedNodeInfo>(vertex_index, *(data))->vertex_name

Helper macro returning the name associated with a node.

This function should be carefully used. For example it can only be used by cdfg based graphs and not by basic_block based graphs.

Parameters
datais the graph.
vertex_indexis the index of the node.

Definition at line 178 of file typed_node_info.hpp.

Referenced by conn_binding::add_command_ports(), ASLAP::add_constraints_to_ALAP(), ASLAP::add_constraints_to_ASAP(), operations_graph_constructor::add_edge_info(), fu_binding::add_gate(), parametric_list_based::add_to_priority_queues(), SDCScheduling::AddDelayConstraints(), SDCScheduling::AddDependenceConstraint(), SDCScheduling::AddStageConstraints(), topological_based_sorting_visitor< OutputIterator >::back_edge(), conn_binding::bind_command_port(), conn_binding::bind_selector_port(), FunctionBehavior::CheckReachability(), parametric_list_based::CheckSchedulabilityConditions(), ASLAP::compute_ALAP_fast(), ASLAP::compute_ASAP(), parametric_list_based::compute_exec_stage_time(), parametric_list_based::compute_starting_ending_time_asap(), DataDependenceComputation::Computedependencies(), mux_connection_binding::connect_to_registers(), mux_connection_binding::create_connections(), fsm_controller::create_state_machine(), DataDependenceComputation::do_dependence_reduction(), HWCallPathCalculator::examine_edge(), parametric_list_based::exec(), memory_allocation::finalize_memory_allocation(), AllocationInformation::get_attribute_of_fu_per_op(), StorageValueInformation::get_compatibility_weight(), Schedule::get_cstep(), fsm_controller::get_guard_value(), StateTransitionGraphManager::get_states(), ASLAP::GetCycleLatency(), AllocationInformation::GetNodeTypePrec(), StorageValueInformation::Initialize(), SDCScheduling::Initialize(), cdfc_module_binding::initialize_connection_relation(), pipeline_controller::InternalExec(), BB_based_stg::InternalExec(), unique_binding::InternalExec(), FSM_NI_SSA_liveness::InternalExec(), sched_based_chaining_computation::InternalExec(), OpCdgComputation::InternalExec(), easy_module_binding::InternalExec(), OpOrderComputation::InternalExec(), AddOpPhiFlowEdges::InternalExec(), mem_dominator_allocation::InternalExec(), AddOpLoopFlowEdges::InternalExec(), port_swapping::InternalExec(), SDCScheduling::InternalExec(), allocation::InternalExec(), parametric_list_based::InternalExec(), cdfc_module_binding::InternalExec(), PrioritySorter::operator()(), cs_ordering_functor::operator()(), OpWriter::operator()(), compare_vertex_by_name::operator()(), cg_label_writer::operator()(), edge_integer_order_by_map::operator()(), OpVertexSorter::operator()(), OpEdgeSorter::operator()(), op_vertex_order_by_map::operator()(), StateInfo::print(), TransitionInfo::print(), Schedule::print(), VcdSignalSelection::SelectInternalSignals(), fu_binding::specialise_fu(), cdfc_module_binding::update_slack_starting_time(), cdfc_module_binding::weight_computation(), EdgeCWriter::writeRoutineInstructions_rec(), CWriter::writeRoutineInstructions_rec(), hls::xload(), and hls::xwrite().

◆ GET_OPERATION

#define GET_OPERATION (   data,
  vertex_index 
)    Cget_node_info<TypedNodeInfo>(vertex_index, *(data))->node_operation

Helper macro returning the operation associated with a node.

This function should be carefully used. For example it can only be used by cdfg based graphs and not by basic_block based graphs.

Parameters
datais the graph.
vertex_indexis the index of the node.

Definition at line 170 of file typed_node_info.hpp.

Referenced by cg_label_writer::operator()().

◆ GET_TYPE

#define GET_TYPE (   data,
  vertex_index 
)    Cget_node_info<TypedNodeInfo>(vertex_index, *(data))->node_type

Helper macro returning the type associated with a node.

This function should be carefully used. For example it can only be used by cdfg based graphs and not by basic_block based graphs.

Parameters
datais the graph.
vertex_indexis the index of the node.

Definition at line 186 of file typed_node_info.hpp.

Referenced by conn_binding::add_command_ports(), mux_connection_binding::add_conversion(), ParallelMemoryFuBinding::add_to_SM(), SDCScheduling::AddDelayConstraints(), mux_connection_binding::address_precision(), ASLAP::ASLAP(), cdfc_module_binding::can_be_clustered(), parametric_list_based::check_direct_operation_chaining(), parametric_list_based::check_LOAD_chaining(), parametric_list_based::check_non_direct_operation_chaining(), parametric_list_based::CheckSchedulabilityConditions(), CWriter::compute_phi_nodes(), parametric_list_based::compute_starting_ending_time_asap(), mux_connection_binding::connect_to_registers(), mux_connection_binding::create_connections(), mux_connection_binding::determine_connection(), parametric_list_based::exec(), memory_allocation::finalize_memory_allocation(), StorageValueInformation::get_compatibility_weight(), fsm_controller::get_guard_value(), AddOpPhiFlowEdges::Initialize(), AddOpExitFlowEdges::Initialize(), StorageValueInformation::Initialize(), cdfc_module_binding::initialize_connection_relation(), pipeline_controller::InternalExec(), BB_based_stg::InternalExec(), FSM_NI_SSA_liveness::InternalExec(), AddOpPhiFlowEdges::InternalExec(), mem_dominator_allocation::InternalExec(), AddOpExitFlowEdges::InternalExec(), VarComputation::InternalExec(), port_swapping::InternalExec(), SDCScheduling::InternalExec(), allocation::InternalExec(), cdfc_module_binding::InternalExec(), is_entry_node(), is_exit_node(), BB_based_stg::is_instantaneous_operation(), OpWriter::operator()(), cg_label_writer::operator()(), BB_based_stg::optimize_cycles(), StateInfo::print(), fu_binding::specialise_fu(), parametric_list_based::store_in_chaining_with_load_in(), parametric_list_based::store_in_chaining_with_load_out(), EdgeCWriter::writeRoutineInstructions(), CWriter::writeRoutineInstructions(), EdgeCWriter::writeRoutineInstructions_rec(), and CWriter::writeRoutineInstructions_rec().

◆ TYPE_ENTRY

#define TYPE_ENTRY   2

◆ TYPE_EXIT

#define TYPE_EXIT   4

◆ TYPE_GENERIC

#define TYPE_GENERIC   8

constant identifying the node type of a GENERIC operation.

Definition at line 84 of file typed_node_info.hpp.

Referenced by operations_graph_constructor::add_type(), and operations_cfg_computation::build_operation_recursive().

Function Documentation

◆ is_entry_node()

template<class Graph >
bool is_entry_node ( const Graph g,
typename boost::graph_traits< Graph >::vertex_descriptor  node 
)

Base class storing user data information.

This class is associated with the graph data structure.FIXME: change in function of graph Helper function checking if a node is an entry node.

Parameters
gis the graph.
nodeis the examined node.
Returns
true when node is an entry node.

Definition at line 99 of file typed_node_info.hpp.

References GET_TYPE, and TYPE_ENTRY.

◆ is_exit_node()

template<class Graph >
bool is_exit_node ( const Graph g,
typename boost::graph_traits< Graph >::vertex_descriptor  node 
)

Helper function checking if a node is an exit node.

Parameters
gis the graph.
nodeis the examined node.
Returns
true when node is an exit node.

Definition at line 111 of file typed_node_info.hpp.

References GET_TYPE, and TYPE_EXIT.


Generated on Mon Feb 12 2024 13:03:22 for PandA-2024.02 by doxygen 1.8.13