Jlm
Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
jlm::llvm::LoadChainSeparation::Context Class Reference

Classes

struct  ModRefChainInformation
 

Public Member Functions

bool hasModRefChainLinkType (const rvsdg::Output &output) const noexcept
 
void add (const rvsdg::Output &output, const ModRefChainLink::Type &type)
 
ModRefChainLink::Type getModRefChainLinkType (const rvsdg::Output &output) const
 
void addModRefChainInformation (const rvsdg::Output &output, ModRefChainInformation modRefChainInformation)
 
std::optional< ModRefChainInformationtryGetModRefChainInformation (const rvsdg::Output &output) const
 
void dropModRefChainInformation (const rvsdg::Region &region)
 

Static Public Member Functions

static std::unique_ptr< Contextcreate ()
 

Private Types

using ModRefChainInformationMap = std::unordered_map< const rvsdg::Output *, ModRefChainInformation >
 

Private Member Functions

ModRefChainInformationMapgetOrInsertModRefChainInformationMap (const rvsdg::Region &region)
 

Private Attributes

std::unordered_map< const rvsdg::Output *, ModRefChainLink::TypeTypes_ {}
 
std::unordered_map< const rvsdg::Region *, ModRefChainInformationMapRegionMap_ {}
 

Detailed Description

Definition at line 28 of file LoadChainSeparation.cpp.

Member Typedef Documentation

◆ ModRefChainInformationMap

Definition at line 99 of file LoadChainSeparation.cpp.

Member Function Documentation

◆ add()

void jlm::llvm::LoadChainSeparation::Context::add ( const rvsdg::Output output,
const ModRefChainLink::Type type 
)
inline

Definition at line 43 of file LoadChainSeparation.cpp.

◆ addModRefChainInformation()

void jlm::llvm::LoadChainSeparation::Context::addModRefChainInformation ( const rvsdg::Output output,
ModRefChainInformation  modRefChainInformation 
)
inline

Definition at line 58 of file LoadChainSeparation.cpp.

◆ create()

static std::unique_ptr<Context> jlm::llvm::LoadChainSeparation::Context::create ( )
inlinestatic

Definition at line 93 of file LoadChainSeparation.cpp.

◆ dropModRefChainInformation()

void jlm::llvm::LoadChainSeparation::Context::dropModRefChainInformation ( const rvsdg::Region region)
inline

Definition at line 87 of file LoadChainSeparation.cpp.

◆ getModRefChainLinkType()

ModRefChainLink::Type jlm::llvm::LoadChainSeparation::Context::getModRefChainLinkType ( const rvsdg::Output output) const
inline

Definition at line 51 of file LoadChainSeparation.cpp.

◆ getOrInsertModRefChainInformationMap()

ModRefChainInformationMap& jlm::llvm::LoadChainSeparation::Context::getOrInsertModRefChainInformationMap ( const rvsdg::Region region)
inlineprivate

Definition at line 103 of file LoadChainSeparation.cpp.

◆ hasModRefChainLinkType()

bool jlm::llvm::LoadChainSeparation::Context::hasModRefChainLinkType ( const rvsdg::Output output) const
inlinenoexcept

Definition at line 37 of file LoadChainSeparation.cpp.

◆ tryGetModRefChainInformation()

std::optional<ModRefChainInformation> jlm::llvm::LoadChainSeparation::Context::tryGetModRefChainInformation ( const rvsdg::Output output) const
inline

Definition at line 68 of file LoadChainSeparation.cpp.

Member Data Documentation

◆ RegionMap_

std::unordered_map<const rvsdg::Region *, ModRefChainInformationMap> jlm::llvm::LoadChainSeparation::Context::RegionMap_ {}
private

Definition at line 114 of file LoadChainSeparation.cpp.

◆ Types_

std::unordered_map<const rvsdg::Output *, ModRefChainLink::Type> jlm::llvm::LoadChainSeparation::Context::Types_ {}
private

Definition at line 113 of file LoadChainSeparation.cpp.


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