Jlm
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
jlm::llvm::ScalarEvolution::Context Class Referencefinal

Public Member Functions

 ~Context ()=default
 
 Context ()=default
 
 Context (const Context &)=delete
 
 Context (Context &&)=delete
 
Contextoperator= (const Context &)=delete
 
Contextoperator= (Context &&)=delete
 
void AddLoopVar (const rvsdg::Output &var)
 
size_t GetNumTotalLoopVars () const
 
std::unique_ptr< SCEVChainRecurrenceTryGetChrecForOutput (rvsdg::Output &output) const
 
std::unique_ptr< SCEVTryGetSCEVForOutput (rvsdg::Output &output) const
 
void InsertChrec (rvsdg::Output &output, const std::unique_ptr< SCEVChainRecurrence > &chrec)
 
const std::unordered_map< rvsdg::Output *, std::unique_ptr< SCEVChainRecurrence > > & GetChrecMap () const noexcept
 
const std::unordered_map< rvsdg::Output *, std::unique_ptr< SCEV > > & GetSCEVMap () const noexcept
 
int GetNumInductionVariablesWithOrder (const size_t n) const
 
size_t GetNumTotalInductionVariables () const
 
void InsertSCEV (rvsdg::Output &output, const std::unique_ptr< SCEV > &scev)
 
void AddLoopToCount ()
 
size_t GetNumLoops () const
 
void SetTripCount (const rvsdg::ThetaNode &thetaNode, const size_t tripCount)
 
size_t GetTripCount (const rvsdg::ThetaNode &thetaNode) const
 
const std::unordered_map< const rvsdg::ThetaNode *, size_t > & GetTripCountMap () const noexcept
 

Static Public Member Functions

static std::unique_ptr< ContextCreate ()
 

Private Attributes

std::unordered_map< rvsdg::Output *, std::unique_ptr< SCEVChainRecurrence > > ChrecMap_
 
std::unordered_map< rvsdg::Output *, std::unique_ptr< SCEV > > SCEVMap_
 
std::unordered_map< const rvsdg::ThetaNode *, size_t > TripCountMap_
 
std::unordered_set< const rvsdg::Output * > LoopVars_
 
size_t NumLoops_ = 0
 

Detailed Description

Definition at line 25 of file ScalarEvolution.cpp.

Constructor & Destructor Documentation

◆ ~Context()

jlm::llvm::ScalarEvolution::Context::~Context ( )
default

◆ Context() [1/3]

jlm::llvm::ScalarEvolution::Context::Context ( )
default

◆ Context() [2/3]

jlm::llvm::ScalarEvolution::Context::Context ( const Context )
delete

◆ Context() [3/3]

jlm::llvm::ScalarEvolution::Context::Context ( Context &&  )
delete

Member Function Documentation

◆ AddLoopToCount()

void jlm::llvm::ScalarEvolution::Context::AddLoopToCount ( )
inline

Definition at line 139 of file ScalarEvolution.cpp.

◆ AddLoopVar()

void jlm::llvm::ScalarEvolution::Context::AddLoopVar ( const rvsdg::Output var)
inline

Definition at line 43 of file ScalarEvolution.cpp.

◆ Create()

static std::unique_ptr<Context> jlm::llvm::ScalarEvolution::Context::Create ( )
inlinestatic

Definition at line 55 of file ScalarEvolution.cpp.

◆ GetChrecMap()

const std::unordered_map<rvsdg::Output *, std::unique_ptr<SCEVChainRecurrence> >& jlm::llvm::ScalarEvolution::Context::GetChrecMap ( ) const
inlinenoexcept

Definition at line 87 of file ScalarEvolution.cpp.

◆ GetNumInductionVariablesWithOrder()

int jlm::llvm::ScalarEvolution::Context::GetNumInductionVariablesWithOrder ( const size_t  n) const
inline

Definition at line 99 of file ScalarEvolution.cpp.

◆ GetNumLoops()

size_t jlm::llvm::ScalarEvolution::Context::GetNumLoops ( ) const
inline

Definition at line 145 of file ScalarEvolution.cpp.

◆ GetNumTotalInductionVariables()

size_t jlm::llvm::ScalarEvolution::Context::GetNumTotalInductionVariables ( ) const
inline

Definition at line 116 of file ScalarEvolution.cpp.

◆ GetNumTotalLoopVars()

size_t jlm::llvm::ScalarEvolution::Context::GetNumTotalLoopVars ( ) const
inline

Definition at line 49 of file ScalarEvolution.cpp.

◆ GetSCEVMap()

const std::unordered_map<rvsdg::Output *, std::unique_ptr<SCEV> >& jlm::llvm::ScalarEvolution::Context::GetSCEVMap ( ) const
inlinenoexcept

Definition at line 93 of file ScalarEvolution.cpp.

◆ GetTripCount()

size_t jlm::llvm::ScalarEvolution::Context::GetTripCount ( const rvsdg::ThetaNode thetaNode) const
inline

Definition at line 157 of file ScalarEvolution.cpp.

◆ GetTripCountMap()

const std::unordered_map<const rvsdg::ThetaNode *, size_t>& jlm::llvm::ScalarEvolution::Context::GetTripCountMap ( ) const
inlinenoexcept

Definition at line 163 of file ScalarEvolution.cpp.

◆ InsertChrec()

void jlm::llvm::ScalarEvolution::Context::InsertChrec ( rvsdg::Output output,
const std::unique_ptr< SCEVChainRecurrence > &  chrec 
)
inline

Definition at line 81 of file ScalarEvolution.cpp.

◆ InsertSCEV()

void jlm::llvm::ScalarEvolution::Context::InsertSCEV ( rvsdg::Output output,
const std::unique_ptr< SCEV > &  scev 
)
inline

Definition at line 133 of file ScalarEvolution.cpp.

◆ operator=() [1/2]

Context& jlm::llvm::ScalarEvolution::Context::operator= ( const Context )
delete

◆ operator=() [2/2]

Context& jlm::llvm::ScalarEvolution::Context::operator= ( Context &&  )
delete

◆ SetTripCount()

void jlm::llvm::ScalarEvolution::Context::SetTripCount ( const rvsdg::ThetaNode thetaNode,
const size_t  tripCount 
)
inline

Definition at line 151 of file ScalarEvolution.cpp.

◆ TryGetChrecForOutput()

std::unique_ptr<SCEVChainRecurrence> jlm::llvm::ScalarEvolution::Context::TryGetChrecForOutput ( rvsdg::Output output) const
inline

Definition at line 61 of file ScalarEvolution.cpp.

◆ TryGetSCEVForOutput()

std::unique_ptr<SCEV> jlm::llvm::ScalarEvolution::Context::TryGetSCEVForOutput ( rvsdg::Output output) const
inline

Definition at line 71 of file ScalarEvolution.cpp.

Member Data Documentation

◆ ChrecMap_

std::unordered_map<rvsdg::Output *, std::unique_ptr<SCEVChainRecurrence> > jlm::llvm::ScalarEvolution::Context::ChrecMap_
private

Definition at line 169 of file ScalarEvolution.cpp.

◆ LoopVars_

std::unordered_set<const rvsdg::Output *> jlm::llvm::ScalarEvolution::Context::LoopVars_
private

Definition at line 172 of file ScalarEvolution.cpp.

◆ NumLoops_

size_t jlm::llvm::ScalarEvolution::Context::NumLoops_ = 0
private

Definition at line 174 of file ScalarEvolution.cpp.

◆ SCEVMap_

std::unordered_map<rvsdg::Output *, std::unique_ptr<SCEV> > jlm::llvm::ScalarEvolution::Context::SCEVMap_
private

Definition at line 170 of file ScalarEvolution.cpp.

◆ TripCountMap_

std::unordered_map<const rvsdg::ThetaNode *, size_t> jlm::llvm::ScalarEvolution::Context::TripCountMap_
private

Definition at line 171 of file ScalarEvolution.cpp.


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