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

Hash map for mapping points-to graph memory nodes to RVSDG memory states. More...

Classes

class  MemoryNodeStatePair
 

Public Member Functions

 StateMap ()=default
 
 StateMap (const StateMap &)=delete
 
 StateMap (StateMap &&)=delete
 
StateMapoperator= (const StateMap &)=delete
 
StateMapoperator= (StateMap &&)=delete
 
MemoryNodeStatePairTryGetState (PointsToGraph::NodeIndex memoryNode) noexcept
 
const MemoryNodeStatePairTryGetState (PointsToGraph::NodeIndex memoryNode) const noexcept
 
bool HasState (PointsToGraph::NodeIndex memoryNode) const noexcept
 
MemoryNodeStatePairGetState (PointsToGraph::NodeIndex memoryNode)
 
std::vector< MemoryNodeStatePair * > GetStates (const util::HashSet< PointsToGraph::NodeIndex > &memoryNodes)
 
std::vector< MemoryNodeStatePair * > GetExistingStates (const util::HashSet< PointsToGraph::NodeIndex > &memoryNodes)
 
MemoryNodeStatePairInsertState (PointsToGraph::NodeIndex memoryNode, rvsdg::Output &state)
 

Static Public Member Functions

static std::unique_ptr< StateMapCreate ()
 

Private Attributes

std::unordered_map< PointsToGraph::NodeIndex, MemoryNodeStatePairstates_
 

Detailed Description

Hash map for mapping points-to graph memory nodes to RVSDG memory states.

Definition at line 241 of file MemoryStateEncoder.cpp.

Constructor & Destructor Documentation

◆ StateMap() [1/3]

jlm::llvm::aa::StateMap::StateMap ( )
default

◆ StateMap() [2/3]

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

◆ StateMap() [3/3]

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

Member Function Documentation

◆ Create()

static std::unique_ptr<StateMap> jlm::llvm::aa::StateMap::Create ( )
inlinestatic

Definition at line 409 of file MemoryStateEncoder.cpp.

◆ GetExistingStates()

std::vector<MemoryNodeStatePair *> jlm::llvm::aa::StateMap::GetExistingStates ( const util::HashSet< PointsToGraph::NodeIndex > &  memoryNodes)
inline

Gets MemoryNodeStatePairs for each of the given memory nodes, unless there is no memory state in the region representing the memory node.

Parameters
memoryNodesthe set of memory nodes to retrieve states for.
Returns
The MemoryNodeStatePairs for each given memory nodes, if one exists.
See also
RegionalizedStateMap::GetExistingStates()

Definition at line 380 of file MemoryStateEncoder.cpp.

◆ GetState()

MemoryNodeStatePair* jlm::llvm::aa::StateMap::GetState ( PointsToGraph::NodeIndex  memoryNode)
inline

Definition at line 353 of file MemoryStateEncoder.cpp.

◆ GetStates()

std::vector<MemoryNodeStatePair *> jlm::llvm::aa::StateMap::GetStates ( const util::HashSet< PointsToGraph::NodeIndex > &  memoryNodes)
inline

Definition at line 361 of file MemoryStateEncoder.cpp.

◆ HasState()

bool jlm::llvm::aa::StateMap::HasState ( PointsToGraph::NodeIndex  memoryNode) const
inlinenoexcept

Definition at line 347 of file MemoryStateEncoder.cpp.

◆ InsertState()

MemoryNodeStatePair* jlm::llvm::aa::StateMap::InsertState ( PointsToGraph::NodeIndex  memoryNode,
rvsdg::Output state 
)
inline

Creates a new memory node / memory state pair in the region. The memory node must not have an already associated state.

Parameters
memoryNodethe memory node
statethe output that produces the memory state associated with the memory node
Returns
pointer to the new pair

Definition at line 400 of file MemoryStateEncoder.cpp.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ TryGetState() [1/2]

const MemoryNodeStatePair* jlm::llvm::aa::StateMap::TryGetState ( PointsToGraph::NodeIndex  memoryNode) const
inlinenoexcept

Definition at line 341 of file MemoryStateEncoder.cpp.

◆ TryGetState() [2/2]

MemoryNodeStatePair* jlm::llvm::aa::StateMap::TryGetState ( PointsToGraph::NodeIndex  memoryNode)
inlinenoexcept

Definition at line 332 of file MemoryStateEncoder.cpp.

Member Data Documentation

◆ states_

std::unordered_map<PointsToGraph::NodeIndex, MemoryNodeStatePair> jlm::llvm::aa::StateMap::states_
private

Definition at line 417 of file MemoryStateEncoder.cpp.


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