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

Methods

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)

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)

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)

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2410

Parameters

BlockPtrTy Block

static BlockPtrTy getBlockWithSuccs(
    BlockPtrTy Current)

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:2379

Parameters

BlockPtrTy Current