LLVM  8.0.1
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 491 of file LoopInfoImpl.h.

Constructor & Destructor Documentation

◆ PopulateLoopsDFS()

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

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

References llvm::reverse().

Referenced by llvm::PopulateLoopsDFS< BlockT, LoopT >::PopulateLoopsDFS(), and llvm::PopulateLoopsDFS< BlockT, LoopT >::traverse().

◆ traverse()

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

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