LLVM  15.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/Analysis/LoopInfoImpl.h"

Public Member Functions

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

Protected Member Functions

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

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 482 of file LoopInfoImpl.h.

Constructor & Destructor Documentation

◆ PopulateLoopsDFS()

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

Definition at line 489 of file LoopInfoImpl.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 508 of file LoopInfoImpl.h.

References llvm::reverse().

◆ 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 499 of file LoopInfoImpl.h.

References BB, and llvm::post_order().

Referenced by llvm::LoopInfoBase< BasicBlock, Loop >::analyze().


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