|
LLVM
8.0.1
|
VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask. More...
#include "Transforms/Vectorize/VPlan.h"


Public Member Functions | |
| VPPredInstPHIRecipe (Instruction *PredInst) | |
Construct a VPPredInstPHIRecipe given PredInst whose value needs a phi nodes after merging back from a Branch-on-Mask. More... | |
| ~VPPredInstPHIRecipe () override=default | |
| void | execute (VPTransformState &State) override |
| Generates phi nodes for live-outs as needed to retain SSA form. More... | |
| void | print (raw_ostream &O, const Twine &Indent) const override |
| Print the recipe. More... | |
Public Member Functions inherited from llvm::VPRecipeBase | |
| VPRecipeBase (const unsigned char SC) | |
| virtual | ~VPRecipeBase ()=default |
| unsigned | getVPRecipeID () const |
| VPBasicBlock * | getParent () |
| const VPBasicBlock * | getParent () const |
| void | insertBefore (VPRecipeBase *InsertPos) |
| Insert an unlinked recipe into a basic block immediately before the specified recipe. More... | |
| iplist< VPRecipeBase >::iterator | eraseFromParent () |
| This method unlinks 'this' from the containing basic block and deletes it. More... | |
Public Member Functions inherited from llvm::ilist_node_with_parent< VPRecipeBase, VPBasicBlock > | |
| VPRecipeBase * | getPrevNode () |
| const VPRecipeBase * | getPrevNode () const |
Get the previous node, or nullptr for the list head. More... | |
| VPRecipeBase * | getNextNode () |
Get the next node, or nullptr for the list tail. More... | |
| const VPRecipeBase * | getNextNode () const |
Get the next node, or nullptr for the list tail. More... | |
Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< VPRecipeBase, Options... >::type > | |
| self_iterator | getIterator () |
| const_self_iterator | getIterator () const |
| reverse_self_iterator | getReverseIterator () |
| const_reverse_self_iterator | getReverseIterator () const |
| bool | isSentinel () const |
| Check whether this is the sentinel node. More... | |
Static Public Member Functions | |
| static bool | classof (const VPRecipeBase *V) |
| Method to support type inquiry through isa, cast, and dyn_cast. More... | |
VPPredInstPHIRecipe is a recipe for generating the phi nodes needed when control converges back from a Branch-on-Mask.
The phi nodes are needed in order to merge values that are set under such a branch and feed their uses. The phi nodes can be scalar or vector depending on the users of the value. This recipe works in concert with VPBranchOnMaskRecipe.
|
inline |
Construct a VPPredInstPHIRecipe given PredInst whose value needs a phi nodes after merging back from a Branch-on-Mask.
|
overridedefault |
|
inlinestatic |
Method to support type inquiry through isa, cast, and dyn_cast.
Definition at line 924 of file VPlan.h.
References llvm::VPRecipeBase::getVPRecipeID(), Indent, llvm::RISCVFenceField::O, and print().
|
overridevirtual |
Generates phi nodes for live-outs as needed to retain SSA form.
Implements llvm::VPRecipeBase.
Definition at line 7048 of file LoopVectorize.cpp.
References llvm::PHINode::addIncoming(), assert(), llvm::VPTransformState::Builder, llvm::IRBuilder< T, Inserter >::CreatePHI(), llvm::UndefValue::get(), llvm::User::getOperand(), llvm::Instruction::getParent(), llvm::VectorizerValueMap::getScalarValue(), llvm::BasicBlock::getSinglePredecessor(), llvm::Value::getType(), llvm::InsertElementInst::getType(), llvm::VectorizerValueMap::getVectorValue(), llvm::VectorizerValueMap::hasVectorValue(), llvm::VPTransformState::Instance, llvm::VectorizerValueMap::resetScalarValue(), llvm::VectorizerValueMap::resetVectorValue(), and llvm::VPTransformState::ValueMap.
|
overridevirtual |
1.8.13