class VPlan

Declaration

class VPlan { /* full declaration omitted */ };

Description

VPlan models a candidate for vectorization, encoding various decisions take to produce efficient output IR, including which branches, basic-blocks and output IR instructions to generate, and their cost. VPlan holds a Hierarchical-CFG of VPBasicBlocks and VPRegionBlocks rooted at an Entry VPBlock.

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

Method Overview

Methods

VPlan(llvm::VPBlockBase* Entry = nullptr)

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

Parameters

llvm::VPBlockBase* Entry = nullptr

void addCBV(llvm::VPValue* CBV)

Description

Add \p CBV to the vector of condition bit values.

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

Parameters

llvm::VPValue* CBV

void addExternalDef(llvm::VPValue* VPVal)

Description

Add \p VPVal to the pool of external definitions if it's not already in the pool.

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

Parameters

llvm::VPValue* VPVal

void addVF(unsigned int VF)

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

Parameters

unsigned int VF

void addVPValue(llvm::Value* V)

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

Parameters

llvm::Value* V

void dump() const

Description

Dump the plan to stderr (for debugging).

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

void execute(struct VPTransformState* State)

Description

Generate the IR code for this VPlan.

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

Parameters

struct VPTransformState* State

llvm::VPBlockBase* getEntry()

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

const llvm::VPBlockBase* getEntry() const

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

const std::string& getName() const

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

llvm::VPValue* getOrAddVPValue(llvm::Value* V)

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

Parameters

llvm::Value* V

llvm::VPValue* getOrCreateBackedgeTakenCount()

Description

The backedge taken count of the original loop.

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

llvm::VPLoopInfo& getVPLoopInfo()

Description

Return the VPLoopInfo analysis for this VPlan.

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

const llvm::VPLoopInfo& getVPLoopInfo() const

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

llvm::VPValue* getVPValue(llvm::Value* V)

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

Parameters

llvm::Value* V

bool hasVF(unsigned int VF)

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

Parameters

unsigned int VF

llvm::VPBlockBase* setEntry(
    llvm::VPBlockBase* Block)

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

Parameters

llvm::VPBlockBase* Block

void setName(const llvm::Twine& newName)

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

Parameters

const llvm::Twine& newName

~VPlan()

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