|
| VPIRBasicBlock (BasicBlock *IRBB) |
|
| ~VPIRBasicBlock () override |
|
void | execute (VPTransformState *State) override |
| The method which generates the output IR instructions that correspond to this VPBasicBlock, thereby "executing" the VPlan.
|
|
VPIRBasicBlock * | clone () override |
| Clone the current block and it's recipes, without updating the operands of the cloned recipes.
|
|
BasicBlock * | getIRBasicBlock () const |
|
| VPBasicBlock (const Twine &Name="", VPRecipeBase *Recipe=nullptr) |
|
| ~VPBasicBlock () override |
|
iterator | begin () |
| Recipe iterator methods.
|
|
const_iterator | begin () const |
|
iterator | end () |
|
const_iterator | end () const |
|
reverse_iterator | rbegin () |
|
const_reverse_iterator | rbegin () const |
|
reverse_iterator | rend () |
|
const_reverse_iterator | rend () const |
|
size_t | size () const |
|
bool | empty () const |
|
const VPRecipeBase & | front () const |
|
VPRecipeBase & | front () |
|
const VPRecipeBase & | back () const |
|
VPRecipeBase & | back () |
|
RecipeListTy & | getRecipeList () |
| Returns a reference to the list of recipes.
|
|
void | insert (VPRecipeBase *Recipe, iterator InsertPt) |
|
void | appendRecipe (VPRecipeBase *Recipe) |
| Augment the existing recipes of a VPBasicBlock with an additional Recipe as the last recipe.
|
|
void | execute (VPTransformState *State) override |
| The method which generates the output IR instructions that correspond to this VPBasicBlock, thereby "executing" the VPlan.
|
|
InstructionCost | cost (ElementCount VF, VPCostContext &Ctx) override |
| Return the cost of this VPBasicBlock.
|
|
iterator | getFirstNonPhi () |
| Return the position of the first non-phi node recipe in the block.
|
|
iterator_range< iterator > | phis () |
| Returns an iterator range over the PHI-like recipes in the block.
|
|
void | dropAllReferences (VPValue *NewValue) override |
| Replace all operands of VPUsers in the block with NewValue and also replaces all uses of VPValues defined in the block with NewValue.
|
|
VPBasicBlock * | splitAt (iterator SplitAt) |
| Split current block at SplitAt by inserting a new block between the current block and its successors and moving all recipes starting at SplitAt to the new block.
|
|
VPRegionBlock * | getEnclosingLoopRegion () |
|
void | print (raw_ostream &O, const Twine &Indent, VPSlotTracker &SlotTracker) const override |
| Print this VPBsicBlock to O , prefixing all lines with Indent .
|
|
VPRecipeBase * | getTerminator () |
| If the block has multiple successors, return the branch recipe terminating the block.
|
|
const VPRecipeBase * | getTerminator () const |
|
bool | isExiting () const |
| Returns true if the block is exiting it's parent region.
|
|
VPBasicBlock * | clone () override |
| Clone the current block and it's recipes, without updating the operands of the cloned recipes.
|
|
virtual void | print (raw_ostream &O, const Twine &Indent, VPSlotTracker &SlotTracker) const=0 |
| Print plain-text dump of this VPBlockBase to O , prefixing all lines with Indent .
|
|
void | print (raw_ostream &O) const |
| Print plain-text dump of this VPlan to O .
|
|
virtual | ~VPBlockBase ()=default |
|
const std::string & | getName () const |
|
void | setName (const Twine &newName) |
|
unsigned | getVPBlockID () const |
|
VPRegionBlock * | getParent () |
|
const VPRegionBlock * | getParent () const |
|
VPlan * | getPlan () |
|
const VPlan * | getPlan () const |
|
void | setPlan (VPlan *ParentPlan) |
| Sets the pointer of the plan containing the block.
|
|
void | setParent (VPRegionBlock *P) |
|
const VPBasicBlock * | getEntryBasicBlock () const |
|
VPBasicBlock * | getEntryBasicBlock () |
|
const VPBasicBlock * | getExitingBasicBlock () const |
|
VPBasicBlock * | getExitingBasicBlock () |
|
const VPBlocksTy & | getSuccessors () const |
|
VPBlocksTy & | getSuccessors () |
|
iterator_range< VPBlockBase ** > | successors () |
|
const VPBlocksTy & | getPredecessors () const |
|
VPBlocksTy & | getPredecessors () |
|
VPBlockBase * | getSingleSuccessor () const |
|
VPBlockBase * | getSinglePredecessor () const |
|
size_t | getNumSuccessors () const |
|
size_t | getNumPredecessors () const |
|
VPBlockBase * | getEnclosingBlockWithSuccessors () |
| An Enclosing Block of a block B is any block containing B, including B itself.
|
|
VPBlockBase * | getEnclosingBlockWithPredecessors () |
|
const VPBlocksTy & | getHierarchicalSuccessors () |
|
VPBlockBase * | getSingleHierarchicalSuccessor () |
|
const VPBlocksTy & | getHierarchicalPredecessors () |
|
VPBlockBase * | getSingleHierarchicalPredecessor () |
|
void | setOneSuccessor (VPBlockBase *Successor) |
| Set a given VPBlockBase Successor as the single successor of this VPBlockBase.
|
|
void | setTwoSuccessors (VPBlockBase *IfTrue, VPBlockBase *IfFalse) |
| Set two given VPBlockBases IfTrue and IfFalse to be the two successors of this VPBlockBase.
|
|
void | setPredecessors (ArrayRef< VPBlockBase * > NewPreds) |
| Set each VPBasicBlock in NewPreds as predecessor of this VPBlockBase.
|
|
void | setSuccessors (ArrayRef< VPBlockBase * > NewSuccs) |
| Set each VPBasicBlock in NewSuccss as successor of this VPBlockBase.
|
|
void | clearPredecessors () |
| Remove all the predecessor of this block.
|
|
void | clearSuccessors () |
| Remove all the successors of this block.
|
|
virtual void | execute (VPTransformState *State)=0 |
| The method which generates the output IR that correspond to this VPBlockBase, thereby "executing" the VPlan.
|
|
virtual InstructionCost | cost (ElementCount VF, VPCostContext &Ctx)=0 |
| Return the cost of the block.
|
|
bool | isLegalToHoistInto () |
| Return true if it is legal to hoist instructions into this block.
|
|
virtual void | dropAllReferences (VPValue *NewValue)=0 |
| Replace all operands of VPUsers in the block with NewValue and also replaces all uses of VPValues defined in the block with NewValue.
|
|
void | printAsOperand (raw_ostream &OS, bool PrintType) const |
|
virtual void | print (raw_ostream &O, const Twine &Indent, VPSlotTracker &SlotTracker) const =0 |
| Print plain-text dump of this VPBlockBase to O , prefixing all lines with Indent .
|
|
void | print (raw_ostream &O) const |
| Print plain-text dump of this VPlan to O .
|
|
void | printSuccessors (raw_ostream &O, const Twine &Indent) const |
| Print the successors of this block to O , prefixing all lines with Indent .
|
|
LLVM_DUMP_METHOD void | dump () const |
| Dump this VPBlockBase to dbgs().
|
|
virtual VPBlockBase * | clone ()=0 |
| Clone the current block and it's recipes without updating the operands of the cloned recipes, including all blocks in the single-entry single-exit region for VPRegionBlocks.
|
|
A special type of VPBasicBlock that wraps an existing IR basic block.
Recipes of the block get added before the first non-phi instruction in the wrapped block. Note: At the moment, VPIRBasicBlock can only be used to wrap VPlan's preheader block.
Definition at line 3127 of file VPlan.h.