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().