41 #include "config_HAVE_HOST_PROFILING_BUILT.hpp" 42 #include "config_HAVE_ILP_BUILT.hpp" 43 #include "config_HAVE_PRAGMA_BUILT.hpp" 44 #include "config_HAVE_TASTE.hpp" 58 #if HAVE_HOST_PROFILING_BUILT 69 const DesignFlowManagerConstRef _design_flow_manager,
82 switch(relationship_type)
86 relationships.insert(std::make_pair(ADD_ARTIFICIAL_CALL_FLOW_EDGES,
WHOLE_APPLICATION));
89 relationships.insert(std::make_pair(VIRTUAL_AGGREGATE_DATA_FLOW_ANALYSIS,
WHOLE_APPLICATION));
90 relationships.insert(std::make_pair(OP_CONTROL_DEPENDENCE_COMPUTATION,
WHOLE_APPLICATION));
91 relationships.insert(std::make_pair(SCALAR_SSA_DATA_FLOW_ANALYSIS,
WHOLE_APPLICATION));
93 if(!
parameters->getOption<
int>(OPT_gcc_openmp_simd))
95 relationships.insert(std::make_pair(BITVALUE_RANGE,
ALL_FUNCTIONS));
103 relationships.insert(std::make_pair(DEAD_CODE_ELIMINATION_IPA,
WHOLE_APPLICATION));
104 relationships.insert(std::make_pair(DETERMINE_MEMORY_ACCESSES,
WHOLE_APPLICATION));
107 relationships.insert(std::make_pair(FIX_STRUCTS_PASSED_BY_VALUE,
WHOLE_APPLICATION));
113 relationships.insert(std::make_pair(FUNCTION_CALL_TYPE_CLEANUP,
WHOLE_APPLICATION));
114 if(static_cast<HDLWriter_Language>(
parameters->getOption<
unsigned int>(OPT_writer_language)) ==
119 if(
parameters->isOption(OPT_hls_div) &&
parameters->getOption<std::string>(OPT_hls_div) !=
"none")
124 relationships.insert(std::make_pair(IR_LOWERING,
ALL_FUNCTIONS));
126 relationships.insert(std::make_pair(MULTIPLE_ENTRY_IF_REDUCTION,
WHOLE_APPLICATION));
132 relationships.insert(std::make_pair(REBUILD_INITIALIZATION2,
WHOLE_APPLICATION));
150 relationships.insert(std::make_pair(COMMUTATIVE_EXPR_RESTRUCTURING,
WHOLE_APPLICATION));
151 relationships.insert(std::make_pair(COND_EXPR_RESTRUCTURING,
WHOLE_APPLICATION));
156 #if HAVE_PRAGMA_BUILT 158 parameters->getOption<
int>(OPT_gcc_openmp_simd))
163 if(
parameters->getOption<
int>(OPT_parse_pragma))
168 if(
parameters->getOption<
int>(OPT_gcc_openmp_simd))
173 #if HAVE_HOST_PROFILING_BUILT 180 if(
parameters->getOption<
bool>(OPT_generate_taste_architecture))
182 relationships.insert(std::make_pair(CREATE_ADDRESS_TRANSLATION,
WHOLE_APPLICATION));
200 return relationships;
212 AppM->CGetCallGraphManager()->CGetCallGraph()->WriteDot(
"call_graph_final.dot");
BambuFrontendFlow(const application_managerRef AppM, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
Constructor.
File containing functions and utilities to support the printing of debug messagges.
#define DEBUG_LEVEL_PEDANTIC
very verbose debugging print is performed.
#define GET_CLASS(obj)
Macro returning the actual type of an object.
Definition of the class representing a generic C application.
RelationshipType
The relationship type.
Source must be executed to satisfy target.
exceptions managed by PandA
This class contains the base representation for a generic frontend flow step which works on a single ...
Auxiliary methods for manipulating string.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
HostProfiling_Method
Different profiling method.
This class writes different HDL based descriptions (VHDL, Verilog, SystemC) starting from a structura...
Abstract class for passes performing a dynamic profiling of loops, paths or both by means of predepen...
Target must be reexecuted.
redefinition of set to manage ordered/unordered structures
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.
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
None profiling method selected.
DesignFlowStep_Status Exec() override
Execute this step.
const application_managerRef AppM
The application manager.
~BambuFrontendFlow() override
Destructor.
This file collects some hash functors.
This class contains the methods to create a frontend flow step.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
this class is used to manage the command-line or XML options.
int debug_level
The debug level.
The step representing the frontend flow for bambu.
Class specification of the manager of the tree structures extracted from the raw file.