Jlm
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
jlm::llvm::aa::AgnosticModRefSummary Class Referencefinal

Mod/Ref summary of agnostic mod/ref summarizer. More...

Inheritance diagram for jlm::llvm::aa::AgnosticModRefSummary:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::aa::AgnosticModRefSummary:
Collaboration graph
[legend]

Public Types

using SimpleNodeModRefMap = std::unordered_map< const rvsdg::SimpleNode *, util::HashSet< PointsToGraph::NodeIndex > >
 

Public Member Functions

 ~AgnosticModRefSummary () noexcept override=default
 
 AgnosticModRefSummary (const AgnosticModRefSummary &)=delete
 
 AgnosticModRefSummary (AgnosticModRefSummary &&)=delete
 
AgnosticModRefSummaryoperator= (const AgnosticModRefSummary &)=delete
 
AgnosticModRefSummaryoperator= (AgnosticModRefSummary &&)=delete
 
const PointsToGraphGetPointsToGraph () const noexcept override
 
void SetSimpleNodeModRef (const rvsdg::SimpleNode &node, util::HashSet< PointsToGraph::NodeIndex > modRefSet)
 
const util::HashSet< PointsToGraph::NodeIndex > & GetSimpleNodeModRef (const rvsdg::SimpleNode &node) const override
 
const util::HashSet< PointsToGraph::NodeIndex > & GetGammaEntryModRef ([[maybe_unused]] const rvsdg::GammaNode &gamma) const override
 
const util::HashSet< PointsToGraph::NodeIndex > & GetGammaExitModRef ([[maybe_unused]] const rvsdg::GammaNode &gamma) const override
 
const util::HashSet< PointsToGraph::NodeIndex > & GetThetaModRef ([[maybe_unused]] const rvsdg::ThetaNode &theta) const override
 
const util::HashSet< PointsToGraph::NodeIndex > & GetLambdaEntryModRef ([[maybe_unused]] const rvsdg::LambdaNode &lambda) const override
 
const util::HashSet< PointsToGraph::NodeIndex > & GetLambdaExitModRef ([[maybe_unused]] const rvsdg::LambdaNode &lambda) const override
 
- Public Member Functions inherited from jlm::llvm::aa::ModRefSummary
virtual ~ModRefSummary () noexcept=default
 
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
 

Static Public Member Functions

static std::unique_ptr< AgnosticModRefSummaryCreate (const PointsToGraph &pointsToGraph, util::HashSet< PointsToGraph::NodeIndex > memoryNodes)
 

Private Member Functions

 AgnosticModRefSummary (const PointsToGraph &pointsToGraph, util::HashSet< PointsToGraph::NodeIndex > allMemoryNodes)
 

Private Attributes

const PointsToGraphPointsToGraph_
 
SimpleNodeModRefMap SimpleNodeModRefs_
 
util::HashSet< PointsToGraph::NodeIndexAllMemoryNodes_
 

Detailed Description

Mod/Ref summary of agnostic mod/ref summarizer.

Definition at line 17 of file AgnosticModRefSummarizer.cpp.

Member Typedef Documentation

◆ SimpleNodeModRefMap

Definition at line 20 of file AgnosticModRefSummarizer.cpp.

Constructor & Destructor Documentation

◆ ~AgnosticModRefSummary()

jlm::llvm::aa::AgnosticModRefSummary::~AgnosticModRefSummary ( )
overridedefaultnoexcept

◆ AgnosticModRefSummary() [1/3]

jlm::llvm::aa::AgnosticModRefSummary::AgnosticModRefSummary ( const PointsToGraph pointsToGraph,
util::HashSet< PointsToGraph::NodeIndex allMemoryNodes 
)
inlineprivate

Definition at line 26 of file AgnosticModRefSummarizer.cpp.

◆ AgnosticModRefSummary() [2/3]

jlm::llvm::aa::AgnosticModRefSummary::AgnosticModRefSummary ( const AgnosticModRefSummary )
delete

◆ AgnosticModRefSummary() [3/3]

jlm::llvm::aa::AgnosticModRefSummary::AgnosticModRefSummary ( AgnosticModRefSummary &&  )
delete

Member Function Documentation

◆ Create()

static std::unique_ptr<AgnosticModRefSummary> jlm::llvm::aa::AgnosticModRefSummary::Create ( const PointsToGraph pointsToGraph,
util::HashSet< PointsToGraph::NodeIndex memoryNodes 
)
inlinestatic

Definition at line 104 of file AgnosticModRefSummarizer.cpp.

◆ GetGammaEntryModRef()

const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::AgnosticModRefSummary::GetGammaEntryModRef ( [[maybe_unused] ] const rvsdg::GammaNode gamma) const
inlineoverride

Definition at line 74 of file AgnosticModRefSummarizer.cpp.

◆ GetGammaExitModRef()

const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::AgnosticModRefSummary::GetGammaExitModRef ( [[maybe_unused] ] const rvsdg::GammaNode gamma) const
inlineoverride

Definition at line 80 of file AgnosticModRefSummarizer.cpp.

◆ GetLambdaEntryModRef()

const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::AgnosticModRefSummary::GetLambdaEntryModRef ( [[maybe_unused] ] const rvsdg::LambdaNode lambda) const
inlineoverride

Definition at line 92 of file AgnosticModRefSummarizer.cpp.

◆ GetLambdaExitModRef()

const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::AgnosticModRefSummary::GetLambdaExitModRef ( [[maybe_unused] ] const rvsdg::LambdaNode lambda) const
inlineoverride

Definition at line 98 of file AgnosticModRefSummarizer.cpp.

◆ GetPointsToGraph()

const PointsToGraph& jlm::llvm::aa::AgnosticModRefSummary::GetPointsToGraph ( ) const
inlineoverridevirtualnoexcept

Implements jlm::llvm::aa::ModRefSummary.

Definition at line 45 of file AgnosticModRefSummarizer.cpp.

◆ GetSimpleNodeModRef()

const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::AgnosticModRefSummary::GetSimpleNodeModRef ( const rvsdg::SimpleNode node) const
inlineoverridevirtual

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.

Implements jlm::llvm::aa::ModRefSummary.

Definition at line 60 of file AgnosticModRefSummarizer.cpp.

◆ GetThetaModRef()

const util::HashSet<PointsToGraph::NodeIndex>& jlm::llvm::aa::AgnosticModRefSummary::GetThetaModRef ( [[maybe_unused] ] const rvsdg::ThetaNode theta) const
inlineoverride

Definition at line 86 of file AgnosticModRefSummarizer.cpp.

◆ operator=() [1/2]

AgnosticModRefSummary& jlm::llvm::aa::AgnosticModRefSummary::operator= ( AgnosticModRefSummary &&  )
delete

◆ operator=() [2/2]

AgnosticModRefSummary& jlm::llvm::aa::AgnosticModRefSummary::operator= ( const AgnosticModRefSummary )
delete

◆ SetSimpleNodeModRef()

void jlm::llvm::aa::AgnosticModRefSummary::SetSimpleNodeModRef ( const rvsdg::SimpleNode node,
util::HashSet< PointsToGraph::NodeIndex modRefSet 
)
inline

Definition at line 51 of file AgnosticModRefSummarizer.cpp.

Member Data Documentation

◆ AllMemoryNodes_

util::HashSet<PointsToGraph::NodeIndex> jlm::llvm::aa::AgnosticModRefSummary::AllMemoryNodes_
private

Definition at line 113 of file AgnosticModRefSummarizer.cpp.

◆ PointsToGraph_

const PointsToGraph& jlm::llvm::aa::AgnosticModRefSummary::PointsToGraph_
private

Definition at line 111 of file AgnosticModRefSummarizer.cpp.

◆ SimpleNodeModRefs_

SimpleNodeModRefMap jlm::llvm::aa::AgnosticModRefSummary::SimpleNodeModRefs_
private

Definition at line 112 of file AgnosticModRefSummarizer.cpp.


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