|
LLVM
8.0.1
|
Class that provides utilities for VPBlockBases in VPlan. More...
#include "Transforms/Vectorize/VPlan.h"
Public Member Functions | |
| VPBlockUtils ()=delete | |
Static Public Member Functions | |
| static void | insertBlockAfter (VPBlockBase *NewBlock, VPBlockBase *BlockPtr) |
Insert disconnected VPBlockBase NewBlock after BlockPtr. More... | |
| static void | insertTwoBlocksAfter (VPBlockBase *IfTrue, VPBlockBase *IfFalse, VPValue *Condition, VPBlockBase *BlockPtr) |
Insert disconnected VPBlockBases IfTrue and IfFalse after BlockPtr. More... | |
| static void | connectBlocks (VPBlockBase *From, VPBlockBase *To) |
Connect VPBlockBases From and To bi-directionally. More... | |
| static void | disconnectBlocks (VPBlockBase *From, VPBlockBase *To) |
Disconnect VPBlockBases From and To bi-directionally. More... | |
|
delete |
|
inlinestatic |
Connect VPBlockBases From and To bi-directionally.
Append To to the successors of From and From to the predecessors of To. Both VPBlockBases must have the same parent, which can be null. Both VPBlockBases can be already connected to other VPBlockBases.
Definition at line 1478 of file VPlan.h.
References assert(), llvm::VPBlockBase::getNumSuccessors(), and llvm::VPBlockBase::getParent().
Referenced by llvm::VPRecipeBuilder::createReplicateRegion().
|
inlinestatic |
Disconnect VPBlockBases From and To bi-directionally.
Remove To from the successors of From and From from the predecessors of To.
Definition at line 1489 of file VPlan.h.
References assert().
Referenced by llvm::VPRecipeBuilder::tryToCreateRecipe().
|
inlinestatic |
Insert disconnected VPBlockBase NewBlock after BlockPtr.
Add NewBlock as successor of BlockPtr and BlockPtr as predecessor of NewBlock, and propagate BlockPtr parent to NewBlock. If BlockPtr has more than one successor, its conditional bit is propagated to NewBlock. NewBlock must have neither successors nor predecessors.
Definition at line 1444 of file VPlan.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::VPBlockBase::getParent(), llvm::VPBlockBase::getSuccessors(), llvm::VPBlockBase::setOneSuccessor(), llvm::VPBlockBase::setParent(), and llvm::VPBlockBase::setPredecessors().
Referenced by llvm::VPRecipeBuilder::handleReplication(), and llvm::VPRecipeBuilder::tryToCreateRecipe().
|
inlinestatic |
Insert disconnected VPBlockBases IfTrue and IfFalse after BlockPtr.
Add IfTrue and IfFalse as succesors of BlockPtr and BlockPtr as predecessor of IfTrue and IfFalse. Propagate BlockPtr parent to IfTrue and IfFalse. Condition is set as the successor selector. BlockPtr must have no successors and IfTrue and IfFalse must have neither successors nor predecessors.
Definition at line 1461 of file VPlan.h.
References assert(), llvm::SmallVectorBase::empty(), llvm::VPBlockBase::getParent(), llvm::VPBlockBase::getSuccessors(), llvm::VPBlockBase::setParent(), llvm::VPBlockBase::setPredecessors(), and llvm::VPBlockBase::setTwoSuccessors().
Referenced by llvm::VPRecipeBuilder::createReplicateRegion().
1.8.13