class VPAllSuccessorsIterator
Declaration
template <typename BlockPtrTy>
class VPAllSuccessorsIterator { /* full declaration omitted */ };
Description
Iterator to traverse all successors of a VPBlockBase node. This includes the entry node of VPRegionBlocks. Exit blocks of a region implicitly have their parent region's successors. This ensures all blocks in a region are visited before any blocks in a successor region when doing a reverse post-order
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2369
Templates
- BlockPtrTy
Member Variables
- private BlockPtrTy Block
- private size_t SuccessorIdx
- Index of the current successor. For VPBasicBlock nodes, this simply is the index for the successor array. For VPRegionBlock, SuccessorIdx == 0 is used for the region's entry block, and SuccessorIdx - 1 are the indices for the successor array.
Method Overview
- public VPAllSuccessorsIterator<BlockPtrTy>(BlockPtrTy Block, size_t Idx = 0)
- public VPAllSuccessorsIterator<BlockPtrTy>(const VPAllSuccessorsIterator<BlockPtrTy> & Other)
- private template <typename T1>static T1 deref(T1 Block, unsigned int SuccIdx)
- public static VPAllSuccessorsIterator<BlockPtrTy> end(BlockPtrTy Block)
- private static BlockPtrTy getBlockWithSuccs(BlockPtrTy Current)
Methods
¶VPAllSuccessorsIterator<BlockPtrTy>(
BlockPtrTy Block,
size_t Idx = 0)
VPAllSuccessorsIterator<BlockPtrTy>(
BlockPtrTy Block,
size_t Idx = 0)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2399
Parameters
- BlockPtrTy Block
- size_t Idx = 0
¶VPAllSuccessorsIterator<BlockPtrTy>(
const VPAllSuccessorsIterator<BlockPtrTy>&
Other)
VPAllSuccessorsIterator<BlockPtrTy>(
const VPAllSuccessorsIterator<BlockPtrTy>&
Other)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2401
Parameters
- const VPAllSuccessorsIterator<BlockPtrTy>& Other
¶template <typename T1>
static T1 deref(T1 Block, unsigned int SuccIdx)
template <typename T1>
static T1 deref(T1 Block, unsigned int SuccIdx)
Description
Templated helper to dereference successor \p SuccIdx of \p Block. Used by both the const and non-const operator* implementations.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2387
Templates
- T1
Parameters
- T1 Block
- unsigned int SuccIdx
¶static VPAllSuccessorsIterator<BlockPtrTy> end(
BlockPtrTy Block)
static VPAllSuccessorsIterator<BlockPtrTy> end(
BlockPtrTy Block)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2410
Parameters
- BlockPtrTy Block
¶static BlockPtrTy getBlockWithSuccs(
BlockPtrTy Current)
static BlockPtrTy getBlockWithSuccs(
BlockPtrTy Current)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2379
Parameters
- BlockPtrTy Current