LLVM 20.0.0git
Public Member Functions | Protected Member Functions | List of all members
llvm::PopulateLoopsDFS< BlockT, LoopT > Class Template Reference

Populate all loop data in a stable order during a single forward DFS. More...

#include "llvm/Support/GenericLoopInfoImpl.h"

Public Member Functions

 PopulateLoopsDFS (LoopInfoBase< BlockT, LoopT > *li)
 
void traverse (BlockT *EntryBlock)
 Top-level driver for the forward DFS within the loop.
 

Protected Member Functions

void insertIntoLoop (BlockT *Block)
 Add a single Block to its ancestor loops in PostOrder.
 

Detailed Description

template<class BlockT, class LoopT>
class llvm::PopulateLoopsDFS< BlockT, LoopT >

Populate all loop data in a stable order during a single forward DFS.

Definition at line 503 of file GenericLoopInfoImpl.h.

Constructor & Destructor Documentation

◆ PopulateLoopsDFS()

template<class BlockT , class LoopT >
llvm::PopulateLoopsDFS< BlockT, LoopT >::PopulateLoopsDFS ( LoopInfoBase< BlockT, LoopT > *  li)
inline

Definition at line 510 of file GenericLoopInfoImpl.h.

Member Function Documentation

◆ insertIntoLoop()

template<class BlockT , class LoopT >
void llvm::PopulateLoopsDFS< BlockT, LoopT >::insertIntoLoop ( BlockT *  Block)
protected

Add a single Block to its ancestor loops in PostOrder.

If the block is a subloop header, add the subloop to its parent in PostOrder, then reverse the Block and Subloop vectors of the now complete subloop to achieve RPO.

Definition at line 529 of file GenericLoopInfoImpl.h.

References llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::Block, and llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor().

◆ traverse()

template<class BlockT , class LoopT >
void llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse ( BlockT *  EntryBlock)

Top-level driver for the forward DFS within the loop.

Definition at line 520 of file GenericLoopInfoImpl.h.

References llvm::post_order().


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