#ifndef LLVM_ADT_GENERICCYCLEIMPL_H
#define LLVM_ADT_GENERICCYCLEIMPL_H
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/GenericCycleInfo.h"
#include "llvm/ADT/StringExtras.h"
#define DEBUG_TYPE …
namespace llvm {
template <typename ContextT>
bool GenericCycle<ContextT>::contains(const GenericCycle *C) const { … }
template <typename ContextT>
void GenericCycle<ContextT>::getExitBlocks(
SmallVectorImpl<BlockT *> &TmpStorage) const { … }
template <typename ContextT>
void GenericCycle<ContextT>::getExitingBlocks(
SmallVectorImpl<BlockT *> &TmpStorage) const { … }
template <typename ContextT>
auto GenericCycle<ContextT>::getCyclePreheader() const -> BlockT * { … }
template <typename ContextT>
auto GenericCycle<ContextT>::getCyclePredecessor() const -> BlockT * { … }
template <typename ContextT> void GenericCycle<ContextT>::verifyCycle() const { … }
template <typename ContextT>
void GenericCycle<ContextT>::verifyCycleNest() const { … }
template <typename ContextT> class GenericCycleInfoCompute { … };
template <typename ContextT>
auto GenericCycleInfo<ContextT>::getTopLevelParentCycle(BlockT *Block)
-> CycleT * { … }
template <typename ContextT>
void GenericCycleInfo<ContextT>::moveTopLevelCycleToNewParent(CycleT *NewParent,
CycleT *Child) { … }
template <typename ContextT>
void GenericCycleInfo<ContextT>::addBlockToCycle(BlockT *Block, CycleT *Cycle) { … }
template <typename ContextT>
void GenericCycleInfoCompute<ContextT>::run(BlockT *EntryBlock) { … }
template <typename ContextT>
void GenericCycleInfoCompute<ContextT>::updateDepth(CycleT *SubTree) { … }
template <typename ContextT>
void GenericCycleInfoCompute<ContextT>::dfs(BlockT *EntryBlock) { … }
template <typename ContextT> void GenericCycleInfo<ContextT>::clear() { … }
template <typename ContextT>
void GenericCycleInfo<ContextT>::compute(FunctionT &F) { … }
template <typename ContextT>
void GenericCycleInfo<ContextT>::splitCriticalEdge(BlockT *Pred, BlockT *Succ,
BlockT *NewBlock) { … }
template <typename ContextT>
auto GenericCycleInfo<ContextT>::getCycle(const BlockT *Block) const
-> CycleT * { … }
template <typename ContextT>
auto GenericCycleInfo<ContextT>::getSmallestCommonCycle(CycleT *A,
CycleT *B) const
-> CycleT * { … }
template <typename ContextT>
unsigned GenericCycleInfo<ContextT>::getCycleDepth(const BlockT *Block) const { … }
template <typename ContextT>
void GenericCycleInfo<ContextT>::verifyCycleNest(bool VerifyFull) const { … }
template <typename ContextT> void GenericCycleInfo<ContextT>::verify() const { … }
template <typename ContextT>
void GenericCycleInfo<ContextT>::print(raw_ostream &Out) const { … }
}
#undef DEBUG_TYPE
#endif