LLVM 22.0.0git
llvm::LockstepReverseIterator< EarlyFailure > Class Template Reference

Iterates through instructions in a set of blocks in reverse order from the first non-terminator. More...

#include "llvm/Transforms/Utils/LockstepReverseIterator.h"

Inheritance diagram for llvm::LockstepReverseIterator< EarlyFailure >:
[legend]

Public Member Functions

 LockstepReverseIterator (ArrayRef< BasicBlock * > Blocks)
void reset ()
bool isValid () const
ArrayRef< Instruction * > operator* () const
SmallSetVector< BasicBlock *, 4 > & getActiveBlocks ()
void restrictToBlocks (SmallSetVector< BasicBlock *, 4 > &Blocks)
LockstepReverseIteratoroperator-- ()
LockstepReverseIteratoroperator++ ()

Detailed Description

template<bool EarlyFailure = true>
class llvm::LockstepReverseIterator< EarlyFailure >

Iterates through instructions in a set of blocks in reverse order from the first non-terminator.

For example (assume all blocks have size n): LockstepReverseIterator I([B1, B2, B3]); *I– = [B1[n], B2[n], B3[n]]; *I– = [B1[n-1], B2[n-1], B3[n-1]]; *I– = [B1[n-2], B2[n-2], B3[n-2]]; ...

The iterator continues processing until all blocks have been exhausted if EarlyFailure is explicitly set to false. Use getActiveBlocks() to determine which blocks are still going and the order they appear in the list returned by operator*.

Definition at line 41 of file LockstepReverseIterator.h.

Constructor & Destructor Documentation

◆ LockstepReverseIterator()

template<bool EarlyFailure = true>
llvm::LockstepReverseIterator< EarlyFailure >::LockstepReverseIterator ( ArrayRef< BasicBlock * > Blocks)
inline

Definition at line 52 of file LockstepReverseIterator.h.

References reset().

Referenced by operator++(), and operator--().

Member Function Documentation

◆ getActiveBlocks()

template<bool EarlyFailure = true>
SmallSetVector< BasicBlock *, 4 > & llvm::LockstepReverseIterator< EarlyFailure >::getActiveBlocks ( )
inline

Definition at line 90 of file LockstepReverseIterator.h.

◆ isValid()

template<bool EarlyFailure = true>
bool llvm::LockstepReverseIterator< EarlyFailure >::isValid ( ) const
inline

Definition at line 81 of file LockstepReverseIterator.h.

Referenced by sinkCommonCodeFromPredecessors().

◆ operator*()

template<bool EarlyFailure = true>
ArrayRef< Instruction * > llvm::LockstepReverseIterator< EarlyFailure >::operator* ( ) const
inline

Definition at line 82 of file LockstepReverseIterator.h.

◆ operator++()

◆ operator--()

◆ reset()

template<bool EarlyFailure = true>
void llvm::LockstepReverseIterator< EarlyFailure >::reset ( )
inline

◆ restrictToBlocks()

template<bool EarlyFailure = true>
void llvm::LockstepReverseIterator< EarlyFailure >::restrictToBlocks ( SmallSetVector< BasicBlock *, 4 > & Blocks)
inline

Definition at line 94 of file LockstepReverseIterator.h.


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