LLVM 20.0.0git
|
Hold state information used when constructing the CFG of the output IR, traversing the VPBasicBlocks and generating corresponding IR BasicBlocks. More...
#include "Transforms/Vectorize/VPlan.h"
Public Member Functions | |
CFGState (DominatorTree *DT) | |
BasicBlock * | getPreheaderBBFor (VPRecipeBase *R) |
Returns the BasicBlock* mapped to the pre-header of the loop region containing R . | |
Public Attributes | |
VPBasicBlock * | PrevVPBB = nullptr |
The previous VPBasicBlock visited. Initially set to null. | |
BasicBlock * | PrevBB = nullptr |
The previous IR BasicBlock created or used. | |
BasicBlock * | ExitBB = nullptr |
The last IR BasicBlock in the output IR. | |
SmallDenseMap< VPBasicBlock *, BasicBlock * > | VPBB2IRBB |
A mapping of each VPBasicBlock to the corresponding BasicBlock. | |
DomTreeUpdater | DTU |
Updater for the DominatorTree. | |
Hold state information used when constructing the CFG of the output IR, traversing the VPBasicBlocks and generating corresponding IR BasicBlocks.
|
inline |
BasicBlock * VPTransformState::CFGState::getPreheaderBBFor | ( | VPRecipeBase * | R | ) |
Returns the BasicBlock* mapped to the pre-header of the loop region containing R
.
Definition at line 361 of file VPlan.cpp.
References llvm::VPRegionBlock::getPreheaderVPBB(), and VPBB2IRBB.
Referenced by llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPCanonicalIVPHIRecipe::execute(), llvm::VPActiveLaneMaskPHIRecipe::execute(), and llvm::VPEVLBasedIVPHIRecipe::execute().
DomTreeUpdater llvm::VPTransformState::CFGState::DTU |
Updater for the DominatorTree.
Definition at line 395 of file VPlan.h.
Referenced by llvm::VPlan::execute(), and llvm::VPIRBasicBlock::execute().
BasicBlock* llvm::VPTransformState::CFGState::ExitBB = nullptr |
The last IR BasicBlock in the output IR.
Set to the exit block of the vector loop.
Definition at line 388 of file VPlan.h.
Referenced by llvm::VPlan::execute().
BasicBlock* llvm::VPTransformState::CFGState::PrevBB = nullptr |
The previous IR BasicBlock created or used.
Initially set to the new header BasicBlock.
Definition at line 384 of file VPlan.h.
Referenced by llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPExpandSCEVRecipe::execute(), llvm::VPCanonicalIVPHIRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPlan::execute(), llvm::VPBasicBlock::execute(), llvm::LoopVectorizationPlanner::executePlan(), and llvm::VPlan::prepareToExecute().
VPBasicBlock* llvm::VPTransformState::CFGState::PrevVPBB = nullptr |
The previous VPBasicBlock visited. Initially set to null.
Definition at line 380 of file VPlan.h.
Referenced by llvm::VPlan::execute(), llvm::VPBasicBlock::execute(), and llvm::VPBasicBlock::executeRecipes().
SmallDenseMap<VPBasicBlock *, BasicBlock *> llvm::VPTransformState::CFGState::VPBB2IRBB |
A mapping of each VPBasicBlock to the corresponding BasicBlock.
In case of replication, maps the BasicBlock of the last replica created.
Definition at line 392 of file VPlan.h.
Referenced by llvm::VPlan::execute(), llvm::VPIRBasicBlock::execute(), llvm::VPRegionBlock::execute(), llvm::LoopVectorizationPlanner::executePlan(), llvm::VPBasicBlock::executeRecipes(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), llvm::VPLiveOut::fixPhi(), llvm::InnerLoopVectorizer::fixVectorizedLoop(), llvm::VPTransformState::get(), and getPreheaderBBFor().