PandA-2024.02
call_graph_builtin_call.hpp
Go to the documentation of this file.
1 /*
2  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
3  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
4  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
5  * _/ _/ _/ _/ _/ _/ _/ _/ _/
6  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
7  *
8  * ***********************************************
9  * PandA Project
10  * URL: http://panda.dei.polimi.it
11  * Politecnico di Milano - DEIB
12  * System Architectures Group
13  * ***********************************************
14  * Copyright (C) 2004-2024 Politecnico di Milano
15  *
16  * This file is part of the PandA framework.
17  *
18  * The PandA framework is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 3 of the License, or
21  * (at your option) any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program. If not, see <http://www.gnu.org/licenses/>.
30  */
31 
36 
37 #ifndef CALL_GRAPH_BUILTIN_CALL_HPP
38 #define CALL_GRAPH_BUILTIN_CALL_HPP
39 
41 
42 #include "custom_set.hpp"
43 
44 #include "refcount.hpp"
45 
47 
50 {
51  private:
52  using TypeDeclarationMap = std::map<std::string, CustomOrderedSet<unsigned int>>;
53  bool modified;
56 
61 
63 
64  void lookForBuiltinCall(const tree_nodeRef TN);
65 
66  void ExtendCallGraph(unsigned int callerIdx, tree_nodeRef funType, unsigned int stmtIdx);
67 
68  // Build the typeToDeclarationMap
70 
71  protected:
77 
78  public:
85  CallGraphBuiltinCall(const application_managerRef AM, unsigned int functionId, const DesignFlowManagerConstRef DFM,
86  const ParameterConstRef P);
87 
88  ~CallGraphBuiltinCall() override;
89  void Initialize() override;
90 
92 };
93 
94 #endif /* CALL_GRAPH_BUILTIN_CALL_H */
TypeDeclarationMap typeToDeclaration
Map function types to matching declarations.
CallGraphBuiltinCall(const application_managerRef AM, unsigned int functionId, const DesignFlowManagerConstRef DFM, const ParameterConstRef P)
Ctor.
const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > ComputeFrontendRelationships(DesignFlowStep::RelationshipType RT) const override
State relationship with other design step.
RelationshipType
The relationship type.
std::map< std::string, CustomOrderedSet< unsigned int > > TypeDeclarationMap
This class contains the base representation for a generic frontend flow step which works on a single ...
Abstract pure class for the tree structure.
Definition: tree_node.hpp:139
const size_t P
Definition: helm.c:5
void lookForBuiltinCall(const tree_nodeRef TN)
redefinition of set to manage ordered/unordered structures
Pass to add function called through pointers to the call graph.
DesignFlowStep_Status
The status of a step.
Template definition of refcount.
~CallGraphBuiltinCall() override
void Initialize() override
Initialize the step (i.e., like a constructor, but executed just before exec.
DesignFlowStep_Status InternalExec() override
Execute the step.
REF_FORWARD_DECL(tree_node)
CustomUnorderedSet< unsigned int > already_visited
Already visited tree node (used to avoid infinite recursion)
void ExtendCallGraph(unsigned int callerIdx, tree_nodeRef funType, unsigned int stmtIdx)

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