ROSE 0.11.145.147
Public Member Functions | List of all members
ssa_private::DefsAndUsesTraversal Class Reference

Description

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>

Inheritance diagram for ssa_private::DefsAndUsesTraversal:
Inheritance graph
[legend]
Collaboration diagram for ssa_private::DefsAndUsesTraversal:
Collaboration graph
[legend]

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 SgTreeTraversaloperator= (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)
 

Constructor & Destructor Documentation

◆ DefsAndUsesTraversal()

ssa_private::DefsAndUsesTraversal::DefsAndUsesTraversal ( StaticSingleAssignment ssa,
bool  treatPointersAsStructs = true 
)
inline
Parameters
treatPointersAsStructsIf 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.

Member Function Documentation

◆ evaluateSynthesizedAttribute()

virtual ChildUses ssa_private::DefsAndUsesTraversal::evaluateSynthesizedAttribute ( SgNode node,
SynthesizedAttributesList  attrs 
)
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.

Parameters
nodeThe node being evaluated.
attrThe attributes from the child nodes.
Returns
The attribute at this node.

Implements AstBottomUpProcessing< ChildUses >.


The documentation for this class was generated from the following file: