8 #include <boost/shared_ptr.hpp>
12 #include "dataflowCfgFilter.h"
31 typedef boost::shared_ptr<ReachingDef> ReachingDefPtr;
33 typedef FilteredCFGEdge<ssa_private::DataflowCfgFilter> FilteredCfgEdge;
41 std::map<ReachingDefPtr, std::set<FilteredCfgEdge> > parentDefs;
60 bool isPhiFunction()
const;
64 const std::map<ReachingDefPtr, std::set<FilteredCfgEdge> >& getJoinedDefs()
const;
68 SgNode* getDefinitionNode()
const;
71 std::set<SgNode*> getActualDefinitions()
const;
75 int getRenamingNumber()
const;
81 return defType == ORIGINAL_DEF;
89 void setDefinitionNode(
SgNode* defNode);
92 void addJoinedDef(ReachingDefPtr newDef, FilteredCfgEdge edge);
95 void setRenamingNumber(
int n);
Definition for the actual variable in question, not a parent or child.
This class represents the base class for all IR nodes within Sage III.
'Fake' definition that joins two different reaching definitions.
bool isOriginalDef() const
Returns true if this is an original definition (i.e.