PandA-2024.02
hls_div_cg_ext.hpp
Go to the documentation of this file.
1 /*
2  *
3  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
4  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
5  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
6  * _/ _/ _/ _/ _/ _/ _/ _/ _/
7  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
8  *
9  * ***********************************************
10  * PandA Project
11  * URL: http://panda.dei.polimi.it
12  * Politecnico di Milano - DEIB
13  * System Architectures Group
14  * ***********************************************
15  * Copyright (C) 2004-2024 Politecnico di Milano
16  *
17  * This file is part of the PandA framework.
18  *
19  * The PandA framework is free software; you can redistribute it and/or modify
20  * it under the terms of the GNU General Public License as published by
21  * the Free Software Foundation; either version 3 of the License, or
22  * (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  *
32  */
40 #ifndef HLS_DIV_CG_EXT_HPP
41 #define HLS_DIV_CG_EXT_HPP
42 
45 
47 #include "custom_set.hpp"
48 #include "refcount.hpp"
49 
59 
64 {
65  private:
68 
70 
73 
77  bool recursive_examinate(const tree_nodeRef& current_tree_node, const tree_nodeRef& current_statement,
78  const tree_manipulationRef tree_man);
79 
85  ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override;
86 
87  public:
95  hls_div_cg_ext(const ParameterConstRef _parameters, const application_managerRef AppM, unsigned int _function_id,
96  const DesignFlowManagerConstRef design_flow_manager);
97 
101  ~hls_div_cg_ext() override;
102 
107 };
108 #endif
bool recursive_examinate(const tree_nodeRef &current_tree_node, const tree_nodeRef &current_statement, const tree_manipulationRef tree_man)
Recursive examine tree node.
hls_div_cg_ext(const ParameterConstRef _parameters, const application_managerRef AppM, unsigned int _function_id, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
RelationshipType
The relationship type.
This class manages the tree structures extracted from the raw file.
This class contains the base representation for a generic frontend flow step which works on a single ...
const tree_managerRef TreeM
Abstract pure class for the tree structure.
Definition: tree_node.hpp:139
REF_FORWARD_DECL(hls_div_cg_ext)
DesignFlowStep_Status InternalExec() override
Fixes the var_decl duplication.
redefinition of set to manage ordered/unordered structures
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
CustomUnorderedSet< unsigned int > already_visited
Already visited tree node (used to avoid infinite recursion)
DesignFlowStep_Status
The status of a step.
~hls_div_cg_ext() override
Destructor.
Template definition of refcount.
const application_managerRef AppM
The application manager.
Add to the call graph the function calls associated with the integer division and modulus operations...
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override
Return the set of analyses in relationship with this design step.
This class creates a layer to add nodes and to manipulate the tree_nodes manager. ...

Generated on Mon Feb 12 2024 13:02:52 for PandA-2024.02 by doxygen 1.8.13