![]() |
PandA-2024.02
|
#include <tree_node_dup.hpp>


Public Member Functions | |
| 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. More... | |
| unsigned int | create_tree_node (const tree_nodeRef &tn, int mode=tree_node_dup_mode::DEFAULT) |
| tree_node visitors More... | |
Public Member Functions inherited from object_visitor | |
| virtual | ~object_visitor () |
| destructor More... | |
| BOOST_PP_SEQ_FOR_EACH (OPERATOR_MACRO, BOOST_PP_EMPTY, VISITED_OBJ_SEQ1) | |
| virtual template object functor More... | |
| BOOST_PP_SEQ_FOR_EACH (OPERATOR_MACRO, BOOST_PP_EMPTY, VISITED_OBJ_SEQ2) | |
Private Member Functions | |
| unsigned int | get_bbi (unsigned int old_bb) |
| unsigned int | get_loop_id (unsigned int old_loop_id) |
Private Attributes | |
| CustomUnorderedMapStable< unsigned int, unsigned int > & | remap |
| remap old indexes in new indexes More... | |
| const bool | use_counting |
| enable use counting on duplicated instances (when possible) More... | |
| unsigned int | remap_bbi |
| basic block indexes remap base More... | |
| CustomUnorderedMapStable< unsigned int, unsigned int > | remap_bb |
| remap old basic block indexes in new indexes More... | |
| unsigned int | remap_loop_id |
| basic block loop ids remap base More... | |
| CustomUnorderedMapStable< unsigned int, unsigned int > | remap_lid |
| remap old basic block loop ids in new ids More... | |
| const application_managerRef | AppM |
| application manager More... | |
| const tree_managerRef | TM |
| tree manager More... | |
| tree_node * | curr_tree_node_ptr |
| current tree node filled according to the source tree_node More... | |
| bloc * | curr_bloc |
| current basic block pointer More... | |
| tree_nodeRef | source_tn |
| current tree_node source More... | |
| blocRef | source_bloc |
| current basic block source More... | |
| int | mode |
| enables full nodes duplication More... | |
Definition at line 71 of file tree_node_dup.hpp.
| tree_node_dup::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.
| _remap | is the struture to map old nodes to new one |
| _AppM | is the application manager instance |
| _remap_bbi | is the base index to renumber duplicated bloc (default = 0, no remapping) |
| _remap_loop_id | is the base index to renumber loop ids in blocs (default = 0, no remapping) |
| _use_counting | set use counting on nodes after duplication (bloc, gimple_phi) (default = false) |
Definition at line 95 of file tree_node_dup.cpp.
References bloc::ENTRY_BLOCK_ID, bloc::EXIT_BLOCK_ID, remap_bb, and remap_bbi.
| unsigned int tree_node_dup::create_tree_node | ( | const tree_nodeRef & | tn, |
| int | mode = tree_node_dup_mode::DEFAULT |
||
| ) |
tree_node visitors
Factory method. It duplicates a tree_node when needed according to the source node tn
| tn | is the source tree node |
| mode | required duplication mode |
Definition at line 116 of file tree_node_dup.cpp.
References CASE_FAKE_NODES, CREATE_TREE_NODE_CASE_BODY, DECLARATION, FUNCTION, GET_CONST_NODE, tree_node::get_kind(), tree_node::get_kind_text(), tree_node::index, mode, remap, RET_NODE_ID_CASE_BODY, template_id_expr(), THROW_UNREACHABLE, TM, typename_type(), U, and using_decl().
Referenced by tree_manipulation::CloneFunction(), Vectorize::DuplicateIncrement(), and soft_float_cg_ext::signature_lowering().


|
private |
Definition at line 715 of file tree_node_dup.cpp.
|
private |
Definition at line 725 of file tree_node_dup.cpp.
References ATTR_MACRO, ATTR_SEQ, object_visitor::BOOST_PP_SEQ_FOR_EACH(), curr_tree_node_ptr, tree_node::get_kind_text(), remap_lid, remap_loop_id, THROW_ASSERT, and THROW_ERROR.

|
private |
application manager
Definition at line 112 of file tree_node_dup.hpp.
|
private |
current basic block pointer
Definition at line 118 of file tree_node_dup.hpp.
|
private |
current tree node filled according to the source tree_node
Definition at line 116 of file tree_node_dup.hpp.
Referenced by get_loop_id().
|
private |
enables full nodes duplication
Definition at line 124 of file tree_node_dup.hpp.
Referenced by create_tree_node().
|
private |
remap old indexes in new indexes
Definition at line 100 of file tree_node_dup.hpp.
Referenced by create_tree_node().
|
private |
remap old basic block indexes in new indexes
Definition at line 106 of file tree_node_dup.hpp.
Referenced by get_bbi(), and tree_node_dup().
|
private |
basic block indexes remap base
Definition at line 104 of file tree_node_dup.hpp.
Referenced by get_bbi(), and tree_node_dup().
|
private |
remap old basic block loop ids in new ids
Definition at line 110 of file tree_node_dup.hpp.
Referenced by get_loop_id().
|
private |
basic block loop ids remap base
Definition at line 108 of file tree_node_dup.hpp.
Referenced by get_loop_id().
|
private |
current basic block source
Definition at line 122 of file tree_node_dup.hpp.
|
private |
current tree_node source
Definition at line 120 of file tree_node_dup.hpp.
|
private |
|
private |
enable use counting on duplicated instances (when possible)
Definition at line 102 of file tree_node_dup.hpp.
1.8.13