PandA-2024.02
create_tree_manager.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  */
43 #ifndef _CREATE_TREE_MANAGER_HPP_
44 #define _CREATE_TREE_MANAGER_HPP_
45 
48 
50 #include "refcount.hpp"
53 
58 {
59  private:
62 
66  std::string CostTable;
67 
73  ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override;
74 
80  void ComputeRelationships(DesignFlowStepSet& relationship,
81  const DesignFlowStep::RelationshipType relationship_type) override;
82 
86  const std::string getCostTable() const
87  {
88  return CostTable;
89  }
90 
94  void createCostTable();
95 
96  public:
104  const DesignFlowManagerConstRef design_flow_manager);
105 
109  ~create_tree_manager() override;
110 
115  DesignFlowStep_Status Exec() override;
116 
121  bool HasToBeExecuted() const override;
122 };
123 #endif
RelationshipType
The relationship type.
REF_FORWARD_DECL(application_manager)
Superclass include.
Class that creates the tree_manager starting from the source code files.
DesignFlowStep_Status Exec() override
Creates the tree_manager data structure by invoking the GCC/CLANG wrapper.
std::string CostTable
CostTable: string storing the operations&#39; latency in an encoded map.
void ComputeRelationships(DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override
Compute the relationships of a step with other steps.
~create_tree_manager() override
Destructor.
create_tree_manager(const ParameterConstRef _parameters, const application_managerRef AppM, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
void createCostTable()
createCostTable: Fill the CostTable starting from the technology files
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
DesignFlowStep_Status
The status of a step.
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.
Template definition of refcount.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
const application_managerRef AppM
The application manager.
const CompilerWrapperRef compiler_wrapper
The gcc wrapper.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
const std::string getCostTable() const
return the latency table used by THR to balance the computation
Main class for wrapping the frontend compiler.
This class contains the base representation for a generic frontend flow step which works on the whole...

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