PandA-2024.02
Data Structures | Typedefs | Enumerations | Functions
cdfc_module_binding.hpp File Reference

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"
Include dependency graph for cdfc_module_binding.hpp:
This graph shows which files directly or indirectly include this file:

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

Functions

 CONSTREF_FORWARD_DECL (AllocationInformation)
 STD include. More...
 
 CONSTREF_FORWARD_DECL (fu_binding)
 
 REF_FORWARD_DECL (fu_binding)
 
 REF_FORWARD_DECL (CdfcGraph)
 
 CONSTREF_FORWARD_DECL (OpGraph)
 
 CONSTREF_FORWARD_DECL (Parameter)
 

Detailed Description

Module binding based on the analysis of the control data flow chained graph.

Author
Fabrizio Ferrandi fabri.nosp@m.zio..nosp@m.ferra.nosp@m.ndi@.nosp@m.polim.nosp@m.i.it
Version
$Revision$
Date
$Date$

Definition in file cdfc_module_binding.hpp.

Typedef Documentation

◆ boost_cdfc_graph

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.

◆ boost_cdfc_graphConstRef

Definition at line 203 of file cdfc_module_binding.hpp.

◆ boost_cdfc_graphRef

Definition at line 202 of file cdfc_module_binding.hpp.

◆ cdfc_edge

using cdfc_edge = boost::graph_traits<cdfc_graph>::edge_descriptor

edge definition.

Definition at line 221 of file cdfc_module_binding.hpp.

◆ cdfc_edge_iterator

using cdfc_edge_iterator = boost::graph_traits<cdfc_graph>::edge_iterator

edge_iterator definition.

Definition at line 219 of file cdfc_module_binding.hpp.

◆ cdfc_graph

compatibility graph

Definition at line 207 of file cdfc_module_binding.hpp.

◆ cdfc_graphConstRef

Definition at line 211 of file cdfc_module_binding.hpp.

◆ cdfc_graphRef

refcount version of cdfc_graph

Definition at line 210 of file cdfc_module_binding.hpp.

◆ cdfc_in_edge_iterator

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.

◆ cdfc_out_edge_iterator

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.

◆ cdfc_vertex

using cdfc_vertex = boost::graph_traits<cdfc_graph>::vertex_descriptor

vertex definition

Definition at line 213 of file cdfc_module_binding.hpp.

◆ CdfcEdgeInfoConstRef

Definition at line 234 of file cdfc_module_binding.hpp.

◆ CdfcEdgeInfoRef

Definition at line 233 of file cdfc_module_binding.hpp.

◆ CdfcGraphConstRef

Definition at line 351 of file cdfc_module_binding.hpp.

◆ CdfcGraphInfoConstRef

Definition at line 252 of file cdfc_module_binding.hpp.

◆ CdfcGraphInfoRef

Definition at line 251 of file cdfc_module_binding.hpp.

◆ CdfcGraphRef

Definition at line 350 of file cdfc_module_binding.hpp.

◆ CdfcGraphsCollectionConstRef

Definition at line 306 of file cdfc_module_binding.hpp.

◆ CdfcGraphsCollectionRef

Definition at line 305 of file cdfc_module_binding.hpp.

◆ connection_relation

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.

Enumeration Type Documentation

◆ conn_code

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.

Function Documentation

◆ CONSTREF_FORWARD_DECL() [1/4]

CONSTREF_FORWARD_DECL ( AllocationInformation  )

STD include.

STL includes

◆ CONSTREF_FORWARD_DECL() [2/4]

CONSTREF_FORWARD_DECL ( fu_binding  )

◆ CONSTREF_FORWARD_DECL() [3/4]

CONSTREF_FORWARD_DECL ( OpGraph  )

◆ CONSTREF_FORWARD_DECL() [4/4]

CONSTREF_FORWARD_DECL ( Parameter  )

◆ REF_FORWARD_DECL() [1/2]

REF_FORWARD_DECL ( fu_binding  )

◆ REF_FORWARD_DECL() [2/2]

REF_FORWARD_DECL ( CdfcGraph  )

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