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
- public VPlan(llvm::VPBlockBase * Entry = nullptr)
- public void addCBV(llvm::VPValue * CBV)
- public void addExternalDef(llvm::VPValue * VPVal)
- public void addVF(unsigned int VF)
- public void addVPValue(llvm::Value * V)
- public void dump() const
- public void execute(struct VPTransformState * State)
- public llvm::VPBlockBase * getEntry()
- public const llvm::VPBlockBase * getEntry() const
- public const std::string & getName() const
- public llvm::VPValue * getOrAddVPValue(llvm::Value * V)
- public llvm::VPValue * getOrCreateBackedgeTakenCount()
- public llvm::VPLoopInfo & getVPLoopInfo()
- public const llvm::VPLoopInfo & getVPLoopInfo() const
- public llvm::VPValue * getVPValue(llvm::Value * V)
- public bool hasVF(unsigned int VF)
- public llvm::VPBlockBase * setEntry(llvm::VPBlockBase * Block)
- public void setName(const llvm::Twine & newName)
- public ~VPlan()
Methods
¶VPlan(llvm::VPBlockBase* Entry = nullptr)
VPlan(llvm::VPBlockBase* Entry = nullptr)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1383
Parameters
- llvm::VPBlockBase* Entry = nullptr
¶void addCBV(llvm::VPValue* CBV)
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)
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)
void addVF(unsigned int VF)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1414
Parameters
- unsigned int VF
¶void addVPValue(llvm::Value* V)
void addVPValue(llvm::Value* V)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1433
Parameters
- llvm::Value* V
¶void dump() const
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)
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()
llvm::VPBlockBase* getEntry()
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1402
¶const llvm::VPBlockBase* getEntry() const
const llvm::VPBlockBase* getEntry() const
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1403
¶const std::string& getName() const
const std::string& getName() const
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1418
¶llvm::VPValue* getOrAddVPValue(llvm::Value* V)
llvm::VPValue* getOrAddVPValue(llvm::Value* V)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1445
Parameters
- llvm::Value* V
¶llvm::VPValue* getOrCreateBackedgeTakenCount()
llvm::VPValue* getOrCreateBackedgeTakenCount()
Description
The backedge taken count of the original loop.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1408
¶llvm::VPLoopInfo& getVPLoopInfo()
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
const llvm::VPLoopInfo& getVPLoopInfo() const
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1454
¶llvm::VPValue* getVPValue(llvm::Value* V)
llvm::VPValue* getVPValue(llvm::Value* V)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1439
Parameters
- llvm::Value* V
¶bool hasVF(unsigned int VF)
bool hasVF(unsigned int VF)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1416
Parameters
- unsigned int VF
¶llvm::VPBlockBase* setEntry(
llvm::VPBlockBase* Block)
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)
void setName(const llvm::Twine& newName)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1420
Parameters
- const llvm::Twine& newName
¶~VPlan()
~VPlan()
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:1385