LLVM 22.0.0git
|
Iterates through instructions in a set of blocks in reverse order from the first non-terminator. More...
#include "llvm/Transforms/Utils/LockstepReverseIterator.h"
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) |
LockstepReverseIterator & | operator-- () |
LockstepReverseIterator & | operator++ () |
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.
|
inline |
Definition at line 52 of file LockstepReverseIterator.h.
References Blocks, and llvm::LockstepReverseIterator< EarlyFailure >::reset().
|
inline |
Definition at line 90 of file LockstepReverseIterator.h.
|
inline |
Definition at line 81 of file LockstepReverseIterator.h.
References Fail.
Referenced by sinkCommonCodeFromPredecessors().
|
inline |
Definition at line 82 of file LockstepReverseIterator.h.
|
inline |
Definition at line 130 of file LockstepReverseIterator.h.
References llvm::SmallVectorBase< Size_T >::empty(), Fail, llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getNextNode(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Definition at line 106 of file LockstepReverseIterator.h.
References llvm::SmallVectorBase< Size_T >::empty(), Fail, llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
Definition at line 56 of file LockstepReverseIterator.h.
References Blocks, llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorBase< Size_T >::empty(), Fail, llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::LockstepReverseIterator< EarlyFailure >::LockstepReverseIterator(), and sinkCommonCodeFromPredecessors().
|
inline |
Definition at line 94 of file LockstepReverseIterator.h.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), Blocks, llvm::SmallVectorTemplateCommon< T, typename >::end(), and llvm::SmallVectorImpl< T >::erase().