class GenericCycleInfo
Declaration
template <typename ContextT>
class GenericCycleInfo { /* full declaration omitted */ };
Description
Cycle information for a function.
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:224
Templates
- ContextT
Member Variables
- private ContextT Context
- private DenseMap<llvm::GenericCycleInfo::BlockT*, llvm::GenericCycleInfo::CycleT*> BlockMap
- Map basic blocks to their inner-most containing cycle.
- private DenseMap<llvm::GenericCycleInfo::BlockT*, llvm::GenericCycleInfo::CycleT*> BlockMapTopLevel
- Map basic blocks to their top level containing cycle.
- private std::vector<std::unique_ptr<CycleT>> TopLevelCycles
- Note: The implementation treats the nullptr as the parent of every top-level cycle. See \ref contains for an example.
Method Overview
- public GenericCycleInfo<ContextT>()
- public GenericCycleInfo<ContextT>(GenericCycleInfo<ContextT> &&)
- public void clear()
- public void compute(llvm::GenericCycleInfo::FunctionT & F)
- public void dump() const
- public llvm::GenericCycleInfo::CycleT * getCycle(const llvm::GenericCycleInfo::BlockT * Block) const
- public unsigned int getCycleDepth(const llvm::GenericCycleInfo::BlockT * Block) const
- public llvm::GenericCycleInfo::FunctionT * getFunction() const
- public const ContextT & getSSAContext() const
- public llvm::GenericCycleInfo::CycleT * getTopLevelParentCycle(llvm::GenericCycleInfo::BlockT * Block)
- private void moveTopLevelCycleToNewParent(llvm::GenericCycleInfo::CycleT * NewParent, llvm::GenericCycleInfo::CycleT * Child)
- public void print(llvm::raw_ostream & Out) const
- public llvm::GenericCycleInfo::const_toplevel_iterator toplevel_begin() const
- public iterator_range<llvm::GenericCycleInfo::const_toplevel_iterator> toplevel_cycles() const
- public llvm::GenericCycleInfo::const_toplevel_iterator toplevel_end() const
- public bool validateTree() const
Methods
¶GenericCycleInfo<ContextT>()
GenericCycleInfo<ContextT>()
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:254
¶GenericCycleInfo<ContextT>(
GenericCycleInfo<ContextT>&&)
GenericCycleInfo<ContextT>(
GenericCycleInfo<ContextT>&&)
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:255
Parameters
- GenericCycleInfo<ContextT>&&
¶void clear()
void clear()
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:258
¶void compute(llvm::GenericCycleInfo::FunctionT& F)
void compute(llvm::GenericCycleInfo::FunctionT& F)
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:259
Parameters
- llvm::GenericCycleInfo::FunctionT& F
¶void dump() const
void dump() const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:274
¶llvm::GenericCycleInfo::CycleT* getCycle(
const llvm::GenericCycleInfo::BlockT* Block)
const
llvm::GenericCycleInfo::CycleT* getCycle(
const llvm::GenericCycleInfo::BlockT* Block)
const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:264
Parameters
- const llvm::GenericCycleInfo::BlockT* Block
¶unsigned int getCycleDepth(
const llvm::GenericCycleInfo::BlockT* Block)
const
unsigned int getCycleDepth(
const llvm::GenericCycleInfo::BlockT* Block)
const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:265
Parameters
- const llvm::GenericCycleInfo::BlockT* Block
¶llvm::GenericCycleInfo::FunctionT* getFunction()
const
llvm::GenericCycleInfo::FunctionT* getFunction()
const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:261
¶const ContextT& getSSAContext() const
const ContextT& getSSAContext() const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:262
¶llvm::GenericCycleInfo::CycleT*
getTopLevelParentCycle(
llvm::GenericCycleInfo::BlockT* Block)
llvm::GenericCycleInfo::CycleT*
getTopLevelParentCycle(
llvm::GenericCycleInfo::BlockT* Block)
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:266
Parameters
- llvm::GenericCycleInfo::BlockT* Block
¶void moveTopLevelCycleToNewParent(
llvm::GenericCycleInfo::CycleT* NewParent,
llvm::GenericCycleInfo::CycleT* Child)
void moveTopLevelCycleToNewParent(
llvm::GenericCycleInfo::CycleT* NewParent,
llvm::GenericCycleInfo::CycleT* Child)
Description
Move \p Child to \p NewParent by manipulating Children vectors. Note: This is an incomplete operation that does not update the depth of the subtree.
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:251
Parameters
- llvm::GenericCycleInfo::CycleT* NewParent
- llvm::GenericCycleInfo::CycleT* Child
¶void print(llvm::raw_ostream& Out) const
void print(llvm::raw_ostream& Out) const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:273
Parameters
- llvm::raw_ostream& Out
¶llvm::GenericCycleInfo::const_toplevel_iterator
toplevel_begin() const
llvm::GenericCycleInfo::const_toplevel_iterator
toplevel_begin() const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:295
¶iterator_range<llvm::GenericCycleInfo::
const_toplevel_iterator>
toplevel_cycles() const
iterator_range<llvm::GenericCycleInfo::
const_toplevel_iterator>
toplevel_cycles() const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:302
¶llvm::GenericCycleInfo::const_toplevel_iterator
toplevel_end() const
llvm::GenericCycleInfo::const_toplevel_iterator
toplevel_end() const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:298
¶bool validateTree() const
bool validateTree() const
Declared at: llvm/include/llvm/ADT/GenericCycleInfo.h:271