8 #include "staticSingleAssignment.h"
21 std::vector<SgNode*> uses;
32 uses.push_back(useNode);
42 if (useTree.size() > 0)
43 uses.assign(useTree.begin(), useTree.end());
60 void setUses(
const std::vector<SgNode*>& newUses)
62 uses.assign(newUses.begin(), newUses.end());
80 const bool treatPointersAsStructs;
87 treatPointersAsStructs(treatPointersAsStructs)
104 void addUsesToNode(
SgNode* node, std::vector<SgNode*> uses);
This class collects all the defs and uses associated with each node in the traversed CFG.
std::vector< SgNode * > & getUses()
Get the uses for this node and below.
Static single assignment analysis.
This class represents the variable refernece in expressions.
void setUses(const std::vector< SgNode * > &newUses)
Set the uses for this node and below.
Attribute Evaluator for synthesized attributes.
ChildUses()
Create the attribute with no refs.
virtual ChildUses evaluateSynthesizedAttribute(SgNode *node, SynthesizedAttributesList attrs)
Called to evaluate the synthesized attribute on every node.
This class represents the base class for all IR nodes within Sage III.
DefsAndUsesTraversal(StaticSingleAssignment *ssa, bool treatPointersAsStructs=true)
Attribute that describes the variables used by a given expression.
ChildUses(const std::vector< SgNode * > &useTree, SgVarRefExp *var=NULL)
Create the attribute with the def and list of uses.