44 #ifndef BIT_VALUE_OPT_HPP 45 #define BIT_VALUE_OPT_HPP 83 const std::string callSiteString);
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
RelationshipType
The relationship type.
struct definition of the function_decl tree node.
This class manages the tree structures extracted from the raw file.
void optimize(const function_decl *fd, tree_managerRef TM, tree_manipulationRef IRman)
do bit value based optimization such as:
This class contains the base representation for a generic frontend flow step which works on a single ...
Bit_Value_opt(const ParameterConstRef _Param, const application_managerRef _AppM, unsigned int function_id, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
Data structure describing a basic block at tree level.
Class performing some optimizations on the IR exploiting Bit Value analysis.
REF_FORWARD_DECL(Bit_Value_opt)
~Bit_Value_opt() override
Destructor.
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.
static void constrainSSA(ssa_name *op_ssa, tree_managerRef TM)
Template definition of refcount.
DesignFlowStep_Status InternalExec() override
Optimize IR after the BitValue/BitValueIPA has been executed.
void propagateValue(const ssa_name *ssa, tree_managerRef TM, tree_nodeRef old_val, tree_nodeRef new_val, const std::string callSiteString)
const unsigned int function_id
The index of the function to be analyzed.
This struct specifies the ssa_name node.
bool modified
when true IR has been modified
This class creates a layer to add nodes and to manipulate the tree_nodes manager. ...