44 #ifndef TREE_NODE_DUP_HPP 45 #define TREE_NODE_DUP_HPP 51 #include <boost/preprocessor/facilities/empty.hpp> 52 #include <boost/preprocessor/seq/for_each.hpp> 83 unsigned int _remap_bbi = 0,
unsigned int _remap_loop_id = 0,
bool _use_counting =
false);
126 unsigned int get_bbi(
unsigned int old_bb);
128 unsigned int get_loop_id(
unsigned int old_loop_id);
tree_node_dup(CustomUnorderedMapStable< unsigned int, unsigned int > &_remap, const application_managerRef _AppM, unsigned int _remap_bbi=0, unsigned int _remap_loop_id=0, bool _use_counting=false)
Construct a new tree node dup object.
This struct specifies the field bloc (basic block).
unsigned int remap_bbi
basic block indexes remap base
REF_FORWARD_DECL(tree_node)
#define OBJ_NOT_SPECIALIZED_SEQ
#define OBJ_SPECIALIZED_SEQ
sequence of obj that have to be specialized
const bool use_counting
enable use counting on duplicated instances (when possible)
tree_nodeRef source_tn
current tree_node source
redefinition of map to manage ordered/unordered structures
const application_managerRef AppM
application manager
int mode
enables full nodes duplication
Abstract pure class for the tree structure.
#define OPERATOR_MACRO(r, data, elem)
CustomUnorderedMapStable< unsigned int, unsigned int > remap_bb
remap old basic block indexes in new indexes
unsigned int remap_loop_id
basic block loop ids remap base
unsigned int create_tree_node(const tree_nodeRef &tn, int mode=tree_node_dup_mode::DEFAULT)
tree_node visitors
#define OPERATOR_MACRO_DECL(r, data, elem)
CustomUnorderedMapStable< unsigned int, unsigned int > remap_lid
remap old basic block loop ids in new ids
Classes specification of the tree_node data structures.
BOOST_PP_SEQ_FOR_EACH(OPERATOR_MACRO, BOOST_PP_EMPTY, VISITED_OBJ_SEQ1)
virtual template object functor
Template definition of refcount.
CustomUnorderedMapStable< unsigned int, unsigned int > & remap
remap old indexes in new indexes
bloc * curr_bloc
current basic block pointer
unsigned int get_bbi(unsigned int old_bb)
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
unsigned int get_loop_id(unsigned int old_loop_id)
blocRef source_bloc
current basic block source
tree_node * curr_tree_node_ptr
current tree node filled according to the source tree_node
const tree_managerRef TM
tree manager
absl::node_hash_map< T, U, Hash, Eq, Alloc > CustomUnorderedMapStable
class factorizing the mask initialization which is common to all visitor classes. ...