Jlm
Public Member Functions | List of all members
jlm::llvm::aa::ModRefSummary Class Referenceabstract

Mod/Ref Summary. More...

#include <ModRefSummary.hpp>

Inheritance diagram for jlm::llvm::aa::ModRefSummary:
Inheritance graph
[legend]

Public Member Functions

virtual ~ModRefSummary () noexcept=default
 
virtual const PointsToGraphGetPointsToGraph () const noexcept=0
 
virtual const util::HashSet< PointsToGraph::NodeIndex > & GetSimpleNodeModRef (const rvsdg::SimpleNode &node) const =0
 
virtual const util::HashSet< PointsToGraph::NodeIndex > & GetGammaEntryModRef (const rvsdg::GammaNode &gamma) const =0
 
virtual const util::HashSet< PointsToGraph::NodeIndex > & GetGammaExitModRef (const rvsdg::GammaNode &gamma) const =0
 
virtual const util::HashSet< PointsToGraph::NodeIndex > & GetThetaModRef (const rvsdg::ThetaNode &theta) const =0
 
virtual const util::HashSet< PointsToGraph::NodeIndex > & GetLambdaEntryModRef (const rvsdg::LambdaNode &lambda) const =0
 
virtual const util::HashSet< PointsToGraph::NodeIndex > & GetLambdaExitModRef (const rvsdg::LambdaNode &lambda) const =0
 

Detailed Description

Mod/Ref Summary.

Contains the memory nodes that are required to be routed into nodes and function bodies.

Definition at line 22 of file ModRefSummary.hpp.

Constructor & Destructor Documentation

◆ ~ModRefSummary()

virtual jlm::llvm::aa::ModRefSummary::~ModRefSummary ( )
virtualdefaultnoexcept

Member Function Documentation

◆ GetGammaEntryModRef()

virtual const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::ModRefSummary::GetGammaEntryModRef ( const rvsdg::GammaNode gamma) const
pure virtual

Provides the set of memory nodes that should be routed into a given gamma node

Parameters
gammathe gamma node
Returns
the entry Mod/Ref set for the gamma

Implemented in jlm::llvm::aa::RegionAwareModRefSummary.

◆ GetGammaExitModRef()

virtual const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::ModRefSummary::GetGammaExitModRef ( const rvsdg::GammaNode gamma) const
pure virtual

Provides the set of memory nodes that should be routed out of a given gamma node

Parameters
gammathe gamma node
Returns
the exit Mod/Ref set for the gamma

Implemented in jlm::llvm::aa::RegionAwareModRefSummary.

◆ GetLambdaEntryModRef()

virtual const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::ModRefSummary::GetLambdaEntryModRef ( const rvsdg::LambdaNode lambda) const
pure virtual

Provides the set of memory nodes that are routed in to the given lambda's subregion

Parameters
lambdathe lambda node
Returns
the entry Mod/Ref set for the lambda

Implemented in jlm::llvm::aa::RegionAwareModRefSummary.

◆ GetLambdaExitModRef()

virtual const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::ModRefSummary::GetLambdaExitModRef ( const rvsdg::LambdaNode lambda) const
pure virtual

Provides the set of memory nodes that are routed out of the given lambda's subregion

Parameters
lambdathe lambda node
Returns
the exit Mod/Ref set for the lambda

Implemented in jlm::llvm::aa::RegionAwareModRefSummary.

◆ GetPointsToGraph()

virtual const PointsToGraph& jlm::llvm::aa::ModRefSummary::GetPointsToGraph ( ) const
pure virtualnoexcept

◆ GetSimpleNodeModRef()

virtual const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::ModRefSummary::GetSimpleNodeModRef ( const rvsdg::SimpleNode node) const
pure virtual

Provides the set of memory nodes that represent memory locations that may be modified or referenced by the given simple node.

The simple node can be any operation that reads from memory, or produces value of memory, e.g.:

Parameters
nodethe node operating on memory
Returns
the Mod/Ref set of the node.

Implemented in jlm::llvm::aa::RegionAwareModRefSummary, and jlm::llvm::aa::AgnosticModRefSummary.

◆ GetThetaModRef()

virtual const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::ModRefSummary::GetThetaModRef ( const rvsdg::ThetaNode theta) const
pure virtual

Provides the set of memory nodes that should be routed in and out of a theta node

Parameters
thetathe theta node
Returns
the Mod/Ref set for the theta

Implemented in jlm::llvm::aa::RegionAwareModRefSummary.


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