40 #ifndef INTERFACE_INFER_HPP 41 #define INTERFACE_INFER_HPP 80 std::list<tree_nodeRef>& writeStmt, std::list<tree_nodeRef>& readStmt,
97 FunctionArchitectureRef func_arch,
bool IO_port)
const;
100 FunctionArchitectureRef func_arch,
bool IO_port)
const;
102 void create_resource_array(
const std::set<std::string>& operationsR,
const std::set<std::string>& operationsW,
103 const interface_info& info, FunctionArchitectureRef func_arch)
const;
105 void create_resource_m_axi(
const std::set<std::string>& operationsR,
const std::set<std::string>& operationsW,
106 const interface_info& info, FunctionArchitectureRef func_arch)
const;
108 void create_resource(
const std::set<std::string>& operationsR,
const std::set<std::string>& operationsW,
109 const interface_info& info, FunctionArchitectureRef func_arch)
const;
void ChasePointerInterface(tree_nodeRef ptr_var, std::list< tree_nodeRef > &writeStmt, std::list< tree_nodeRef > &readStmt, interface_info &info)
This struct specifies the statement_list node.
RelationshipType
The relationship type.
struct definition of the function_decl tree node.
This class manages the tree structures extracted from the raw file.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
void create_resource_Read_simple(const std::set< std::string > &operations, const interface_info &info, FunctionArchitectureRef func_arch, bool IO_port) const
REF_FORWARD_DECL(tree_node)
~InterfaceInfer() override
Destructor.
Abstract pure class for the tree structure.
void ChasePointerInterfaceRecurse(CustomOrderedSet< unsigned > &Visited, tree_nodeRef ptr_var, std::list< tree_nodeRef > &writeStmt, std::list< tree_nodeRef > &readStmt, interface_info &info)
This struct specifies the gimple_assign node (GCC 4.3 tree node).
void create_resource_m_axi(const std::set< std::string > &operationsR, const std::set< std::string > &operationsW, const interface_info &info, FunctionArchitectureRef func_arch) const
InterfaceInfer(const application_managerRef AppM, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
Constructor.
redefinition of set to manage ordered/unordered structures
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
void create_resource_array(const std::set< std::string > &operationsR, const std::set< std::string > &operationsW, const interface_info &info, FunctionArchitectureRef func_arch) const
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
Template definition of refcount.
void setReadInterface(tree_nodeRef stmt, const std::string &arg_name, std::set< std::string > &operationsR, bool commonRWSignature, tree_nodeConstRef interface_datatype, const tree_manipulationRef tree_man, const tree_managerRef TM)
const application_managerRef AppM
The application manager.
DesignFlowStep_Status Exec() override
Execute this step.
struct definition of the common part of a gimple with virtual operands
void create_resource_Write_simple(const std::set< std::string > &operations, const interface_info &info, FunctionArchitectureRef func_arch, bool IO_port) const
void create_resource(const std::set< std::string > &operationsR, const std::set< std::string > &operationsW, const interface_info &info, FunctionArchitectureRef func_arch) const
void forwardInterface(const tree_nodeRef &fnode, const tree_nodeRef &parm_node, const interface_info &info)
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.
void setWriteInterface(tree_nodeRef stmt, const std::string &arg_name, std::set< std::string > &operationsW, bool commonRWSignature, tree_nodeConstRef interface_datatype, const tree_manipulationRef tree_man, const tree_managerRef TM)
CONSTREF_FORWARD_DECL(tree_node)
This class contains the base representation for a generic frontend flow step which works on the whole...
This class creates a layer to add nodes and to manipulate the tree_nodes manager. ...
void ComputeRelationships(DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override
Compute the relationships of a step with other steps.