ROSE
0.9.6a
|
This class collects all the defs and uses associated with each node in the traversed CFG. More...
#include <defsAndUsesTraversal.h>
Public Member Functions | |
DefsAndUsesTraversal (StaticSingleAssignment *ssa, bool treatPointersAsStructs=true) | |
virtual ChildUses | evaluateSynthesizedAttribute (SgNode *node, SynthesizedAttributesList attrs) |
Called to evaluate the synthesized attribute on every node. More... | |
Public Member Functions inherited from AstBottomUpProcessing< ChildUses > | |
ChildUses | traverse (SgNode *node) |
evaluates attributes on the entire AST More... | |
ChildUses | traverseWithinFile (SgNode *node) |
evaluates attributes only at nodes which represent the same file as where the evaluation was started More... | |
void | traverseInputFiles (SgProject *projectNode) |
evaluates attributes only at nodes which represent files which were specified on the command line (=input files). More... | |
Public Member Functions inherited from SgTreeTraversal< DummyAttribute, ChildUses > | |
ChildUses | traverse (SgNode *basenode, DummyAttributeinheritedValue, t_traverseOrder travOrder=preandpostorder) |
ChildUses | traverseWithinFile (SgNode *basenode, DummyAttributeinheritedValue, t_traverseOrder travOrder=preandpostorder) |
void | traverseInputFiles (SgProject *projectNode, DummyAttributeinheritedValue, t_traverseOrder travOrder=preandpostorder) |
virtual | ~SgTreeTraversal () |
SgTreeTraversal () | |
SgTreeTraversal (const SgTreeTraversal &) | |
const SgTreeTraversal & | operator= (const SgTreeTraversal &) |
Private Member Functions | |
void | addUsesToNode (SgNode *node, std::vector< SgNode * > uses) |
Mark all the uses as occurring at the specified node. More... | |
void | addDefForVarAtNode (SgVarRefExp *currentVar, SgNode *defNode) |
Mark the given variable as being defined at the node. More... | |
Private Attributes | |
StaticSingleAssignment * | ssa |
const bool | treatPointersAsStructs |
If true, modifications to a value pointed to by a pointer will count as defs for the pointer itself. More... | |
Additional Inherited Members | |
Public Types inherited from AstBottomUpProcessing< ChildUses > | |
typedef SgTreeTraversal < DummyAttribute, ChildUses > ::SynthesizedAttributesList | SynthesizedAttributesList |
typedef SynthesizedAttributesList | SubTreeSynthesizedAttributes |
Protected Types inherited from SgTreeTraversal< DummyAttribute, ChildUses > | |
typedef AstSuccessorsSelectors::SuccessorsContainer | SuccessorsContainer |
typedef SuccessorsContainer & | SuccessorsContainerRef |
Protected Member Functions inherited from AstBottomUpProcessing< ChildUses > | |
virtual ChildUses | defaultSynthesizedAttribute () |
Allows to provide a default value for a synthesized attribute of primitive type (e.g. More... | |
virtual void | atTraversalStart () |
Function called at the start of the traversal, before any node is visited; override if necessary, the default implementation is a no-op. More... | |
virtual void | atTraversalEnd () |
This class collects all the defs and uses associated with each node in the traversed CFG.
Note that this does not compute reachability information; it just records each instance of a variable used or defined.
Definition at line 69 of file defsAndUsesTraversal.h.
|
inline |
treatPointersAsStructs | If true, modifications to a value pointed to by a pointer will count as defs for the pointer itself. For example, (delete p) would be considered to modify p. |
Definition at line 81 of file defsAndUsesTraversal.h.
|
virtual |
Called to evaluate the synthesized attribute on every node.
This function will handle passing all variables that are defined and used by a given operation.
node | The node being evaluated. |
attr | The attributes from the child nodes. |
Implements AstBottomUpProcessing< ChildUses >.
|
private |
Mark all the uses as occurring at the specified node.
|
private |
Mark the given variable as being defined at the node.
|
private |
Definition at line 71 of file defsAndUsesTraversal.h.
|
private |
If true, modifications to a value pointed to by a pointer will count as defs for the pointer itself.
For example, (delete p) would be considered to modify p.
Definition at line 75 of file defsAndUsesTraversal.h.