|
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 reset().
Referenced by operator++(), and operator--().
|
inline |
Definition at line 90 of file LockstepReverseIterator.h.
|
inline |
Definition at line 81 of file LockstepReverseIterator.h.
Referenced by sinkCommonCodeFromPredecessors().
|
inline |
Definition at line 82 of file LockstepReverseIterator.h.
|
inline |
Definition at line 130 of file LockstepReverseIterator.h.
References llvm::SmallVectorTemplateCommon< T, typename >::empty(), LockstepReverseIterator(), llvm::Next, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
|
inline |
|
inline |
Definition at line 56 of file LockstepReverseIterator.h.
References llvm::ilist_node_with_parent< NodeTy, ParentTy, Options >::getPrevNode().
Referenced by LockstepReverseIterator(), and sinkCommonCodeFromPredecessors().
|
inline |
Definition at line 94 of file LockstepReverseIterator.h.