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);
Attribute Evaluator for synthesized attributes.
This class represents the base class for all IR nodes within Sage III.
This class represents the variable refernece in expressions.
Static single assignment analysis.
Attribute that describes the variables used by a given expression.
ChildUses()
Create the attribute with no refs.
std::vector< SgNode * > & getUses()
Get the uses for this node and below.
ChildUses(const std::vector< SgNode * > &useTree, SgVarRefExp *var=NULL)
Create the attribute with the def and list of uses.
void setUses(const std::vector< SgNode * > &newUses)
Set the uses for this node and below.
This class collects all the defs and uses associated with each node in the traversed CFG.
virtual ChildUses evaluateSynthesizedAttribute(SgNode *node, SynthesizedAttributesList attrs)
Called to evaluate the synthesized attribute on every node.
DefsAndUsesTraversal(StaticSingleAssignment *ssa, bool treatPointersAsStructs=true)