LLVM 22.0.0git
GenericLoopInfoImpl.h File Reference

Go to the source code of this file.

Classes

class  llvm::PopulateLoopsDFS< BlockT, LoopT >
 Populate all loop data in a stable order during a single forward DFS. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::detail
 These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of, llvm::none_of, etc.

Typedefs

template<class BlockT>
using llvm::detail::has_hoist_check = decltype(&BlockT::isLegalToHoistInto)
template<class BlockT>
using llvm::detail::detect_has_hoist_check = llvm::is_detected<has_hoist_check, BlockT>

Functions

template<class BlockT, class LoopT>
std::pair< BlockT *, boolllvm::getExitBlockHelper (const LoopBase< BlockT, LoopT > *L, bool Unique)
 getExitBlock - If getExitBlocks would return exactly one block, return that block.
template<class BlockT, class LoopT, typename PredicateT>
void llvm::getUniqueExitBlocksHelper (const LoopT *L, SmallVectorImpl< BlockT * > &ExitBlocks, PredicateT Pred)
template<class BlockT>
bool llvm::detail::isLegalToHoistInto (BlockT *Block)
 SFINAE functions that dispatch to the isLegalToHoistInto member function or return false, if it doesn't exist.
template<class BlockT, class LoopT>
static void llvm::discoverAndMapSubloop (LoopT *L, ArrayRef< BlockT * > Backedges, LoopInfoBase< BlockT, LoopT > *LI, const DomTreeBase< BlockT > &DomTree)
 Stable LoopInfo Analysis - Build a loop tree using stable iterators so the result does / not depend on use list (block predecessor) order.
template<typename T>
bool llvm::compareVectors (std::vector< T > &BB1, std::vector< T > &BB2)
template<class BlockT, class LoopT>
void llvm::addInnerLoopsToHeadersMap (DenseMap< BlockT *, const LoopT * > &LoopHeaders, const LoopInfoBase< BlockT, LoopT > &LI, const LoopT &L)
template<class BlockT, class LoopT>
static void llvm::compareLoops (const LoopT *L, const LoopT *OtherL, DenseMap< BlockT *, const LoopT * > &OtherLoopHeaders)