|
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.