PandA-2024.02
|
Module binding based on the analysis of the control data flow chained graph. More...
#include "fu_binding_creator.hpp"
#include "graph.hpp"
#include "hash_helper.hpp"
#include <string>
#include <deque>
#include <utility>
#include <vector>
#include "custom_map.hpp"
#include "custom_set.hpp"
Go to the source code of this file.
Data Structures | |
class | CDFCModuleBindingSpecialization |
struct | cdfc_graph_vertex_selector< Graph > |
Predicate functor object used to select the proper set of vertices. More... | |
struct | cdfc_graph_edge_selector< Graph > |
Predicate functor object used to select the proper set of edges. More... | |
struct | edge_cdfc_selector |
struct | CdfcEdgeInfo |
struct | CdfcGraphInfo |
The info associated with a cdfc graph. More... | |
class | CdfcGraphsCollection |
Cdfc collection of graphs. More... | |
class | CdfcGraph |
Cdfc graph. More... | |
class | cdfc_module_binding |
Class managing the module allocation. More... | |
Typedefs | |
using | boost_cdfc_graph = boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, boost::property< boost::vertex_index_t, std::size_t >, edge_cdfc_selector > |
bulk compatibility graph More... | |
using | boost_cdfc_graphRef = refcount< boost_cdfc_graph > |
using | boost_cdfc_graphConstRef = refcount< const boost_cdfc_graph > |
using | cdfc_graph = boost::filtered_graph< boost_cdfc_graph, cdfc_graph_edge_selector< boost_cdfc_graph >, cdfc_graph_vertex_selector< boost_cdfc_graph > > |
compatibility graph More... | |
using | cdfc_graphRef = refcount< cdfc_graph > |
refcount version of cdfc_graph More... | |
using | cdfc_graphConstRef = refcount< const cdfc_graph > |
using | cdfc_vertex = boost::graph_traits< cdfc_graph >::vertex_descriptor |
vertex definition More... | |
using | cdfc_in_edge_iterator = boost::graph_traits< cdfc_graph >::in_edge_iterator |
in_edge_iterator definition. More... | |
using | cdfc_out_edge_iterator = boost::graph_traits< cdfc_graph >::out_edge_iterator |
out_edge_iterator definition. More... | |
using | cdfc_edge_iterator = boost::graph_traits< cdfc_graph >::edge_iterator |
edge_iterator definition. More... | |
using | cdfc_edge = boost::graph_traits< cdfc_graph >::edge_descriptor |
edge definition. More... | |
using | CdfcEdgeInfoRef = refcount< CdfcEdgeInfo > |
using | CdfcEdgeInfoConstRef = refcount< const CdfcEdgeInfo > |
using | CdfcGraphInfoRef = refcount< CdfcGraphInfo > |
using | CdfcGraphInfoConstRef = refcount< const CdfcGraphInfo > |
using | CdfcGraphsCollectionRef = refcount< CdfcGraphsCollection > |
using | CdfcGraphsCollectionConstRef = refcount< const CdfcGraphsCollection > |
using | CdfcGraphRef = refcount< CdfcGraph > |
using | CdfcGraphConstRef = refcount< const CdfcGraph > |
using | connection_relation = CustomUnorderedMap< vertex, std::vector< CustomOrderedSet< std::pair< conn_code, std::pair< unsigned int, vertex > >> >> |
put into relation an operation vertex with its sources op vertex -> vector of port index -> set of pair < conn code, pair of < tree_var/storage_value, null/vertex> > More... | |
Enumerations | |
enum | conn_code { no_def, no_phi_chained, no_phi_no_chained, phi } |
connection code can be no_def - source is not defined because is a parameter or a constan value in this case only the tree_var of the source is relevant no_phi_chained - the source vertex has a defining operation (def_op) that is chained with op_vertex in addition to the tree_var here we have to store even the def_op vertex no_phi_no_chained - the source vertex has a defining operation that is not chained with op_vertex here we have to store the def_op vertex and the storage value id phi - the source vertex is a phi here we need the storage value id and the def_op vertex More... | |
Module binding based on the analysis of the control data flow chained graph.
Definition in file cdfc_module_binding.hpp.
using boost_cdfc_graph = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<boost::vertex_index_t, std::size_t>, edge_cdfc_selector> |
bulk compatibility graph
Definition at line 200 of file cdfc_module_binding.hpp.
using boost_cdfc_graphConstRef = refcount<const boost_cdfc_graph> |
Definition at line 203 of file cdfc_module_binding.hpp.
using boost_cdfc_graphRef = refcount<boost_cdfc_graph> |
Definition at line 202 of file cdfc_module_binding.hpp.
using cdfc_edge = boost::graph_traits<cdfc_graph>::edge_descriptor |
edge definition.
Definition at line 221 of file cdfc_module_binding.hpp.
using cdfc_edge_iterator = boost::graph_traits<cdfc_graph>::edge_iterator |
edge_iterator definition.
Definition at line 219 of file cdfc_module_binding.hpp.
using cdfc_graph = boost::filtered_graph<boost_cdfc_graph, cdfc_graph_edge_selector<boost_cdfc_graph>, cdfc_graph_vertex_selector<boost_cdfc_graph> > |
compatibility graph
Definition at line 207 of file cdfc_module_binding.hpp.
using cdfc_graphConstRef = refcount<const cdfc_graph> |
Definition at line 211 of file cdfc_module_binding.hpp.
using cdfc_graphRef = refcount<cdfc_graph> |
refcount version of cdfc_graph
Definition at line 210 of file cdfc_module_binding.hpp.
using cdfc_in_edge_iterator = boost::graph_traits<cdfc_graph>::in_edge_iterator |
in_edge_iterator definition.
Definition at line 215 of file cdfc_module_binding.hpp.
using cdfc_out_edge_iterator = boost::graph_traits<cdfc_graph>::out_edge_iterator |
out_edge_iterator definition.
Definition at line 217 of file cdfc_module_binding.hpp.
using cdfc_vertex = boost::graph_traits<cdfc_graph>::vertex_descriptor |
vertex definition
Definition at line 213 of file cdfc_module_binding.hpp.
using CdfcEdgeInfoConstRef = refcount<const CdfcEdgeInfo> |
Definition at line 234 of file cdfc_module_binding.hpp.
using CdfcEdgeInfoRef = refcount<CdfcEdgeInfo> |
Definition at line 233 of file cdfc_module_binding.hpp.
using CdfcGraphConstRef = refcount<const CdfcGraph> |
Definition at line 351 of file cdfc_module_binding.hpp.
using CdfcGraphInfoConstRef = refcount<const CdfcGraphInfo> |
Definition at line 252 of file cdfc_module_binding.hpp.
using CdfcGraphInfoRef = refcount<CdfcGraphInfo> |
Definition at line 251 of file cdfc_module_binding.hpp.
using CdfcGraphRef = refcount<CdfcGraph> |
Definition at line 350 of file cdfc_module_binding.hpp.
using CdfcGraphsCollectionConstRef = refcount<const CdfcGraphsCollection> |
Definition at line 306 of file cdfc_module_binding.hpp.
Definition at line 305 of file cdfc_module_binding.hpp.
using connection_relation = CustomUnorderedMap<vertex, std::vector<CustomOrderedSet<std::pair<conn_code, std::pair<unsigned int, vertex> >> >> |
put into relation an operation vertex with its sources op vertex -> vector of port index -> set of pair < conn code, pair of < tree_var/storage_value, null/vertex> >
Definition at line 373 of file cdfc_module_binding.hpp.
enum conn_code |
connection code can be no_def - source is not defined because is a parameter or a constan value in this case only the tree_var of the source is relevant no_phi_chained - the source vertex has a defining operation (def_op) that is chained with op_vertex in addition to the tree_var here we have to store even the def_op vertex no_phi_no_chained - the source vertex has a defining operation that is not chained with op_vertex here we have to store the def_op vertex and the storage value id phi - the source vertex is a phi here we need the storage value id and the def_op vertex
Enumerator | |
---|---|
no_def | |
no_phi_chained | |
no_phi_no_chained | |
phi |
Definition at line 362 of file cdfc_module_binding.hpp.
CONSTREF_FORWARD_DECL | ( | AllocationInformation | ) |
STD include.
STL includes
CONSTREF_FORWARD_DECL | ( | fu_binding | ) |
CONSTREF_FORWARD_DECL | ( | OpGraph | ) |
CONSTREF_FORWARD_DECL | ( | Parameter | ) |
REF_FORWARD_DECL | ( | fu_binding | ) |
REF_FORWARD_DECL | ( | CdfcGraph | ) |