ROSE 0.11.145.192
|
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 74 of file defsAndUsesTraversal.h.
#include <midend/programAnalysis/staticSingleAssignment/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. | |
Public Member Functions inherited from AstBottomUpProcessing< ChildUses > | |
ChildUses | traverse (SgNode *node) |
evaluates attributes on the entire AST | |
ChildUses | traverseWithinFile (SgNode *node) |
evaluates attributes only at nodes which represent the same file as where the evaluation was started | |
void | traverseInputFiles (SgProject *projectNode) |
evaluates attributes only at nodes which represent files which were specified on the command line (=input files). | |
Public Member Functions inherited from SgTreeTraversal< InheritedAttributeType, SynthesizedAttributeType > | |
SynthesizedAttributeType | traverse (SgNode *basenode, InheritedAttributeType inheritedValue, t_traverseOrder travOrder=preandpostorder) |
SynthesizedAttributeType | traverseWithinFile (SgNode *basenode, InheritedAttributeType inheritedValue, t_traverseOrder travOrder=preandpostorder) |
void | traverseInputFiles (SgProject *projectNode, InheritedAttributeType inheritedValue, t_traverseOrder travOrder=preandpostorder) |
SgTreeTraversal (const SgTreeTraversal &) | |
const SgTreeTraversal & | operator= (const SgTreeTraversal &) |
Additional Inherited Members | |
Public Types inherited from AstBottomUpProcessing< ChildUses > | |
typedef SgTreeTraversal< DummyAttribute, ChildUses >::SynthesizedAttributesList | SynthesizedAttributesList |
typedef SynthesizedAttributesList | SubTreeSynthesizedAttributes |
Public Types inherited from SgTreeTraversal< InheritedAttributeType, SynthesizedAttributeType > | |
typedef StackFrameVector< SynthesizedAttributeType > | SynthesizedAttributesList |
Protected Types inherited from SgTreeTraversal< InheritedAttributeType, SynthesizedAttributeType > | |
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. | |
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. | |
virtual void | atTraversalEnd () |
Protected Member Functions inherited from SgTreeTraversal< InheritedAttributeType, SynthesizedAttributeType > | |
virtual InheritedAttributeType | evaluateInheritedAttribute (SgNode *astNode, InheritedAttributeType inheritedValue)=0 |
virtual SynthesizedAttributeType | evaluateSynthesizedAttribute (SgNode *n, InheritedAttributeType in, SynthesizedAttributesList l)=0 |
virtual void | setNodeSuccessors (SgNode *node, SuccessorsContainer &succContainer) |
virtual SynthesizedAttributeType | defaultSynthesizedAttribute (InheritedAttributeType inh) |
void | set_useDefaultIndexBasedTraversal (bool) |
|
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 86 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 >.