LLVM 18.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 ()=default | |
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. | |
Hold state information used when constructing the CFG of the output IR, traversing the VPBasicBlocks and generating corresponding IR BasicBlocks.
|
default |
BasicBlock * VPTransformState::CFGState::getPreheaderBBFor | ( | VPRecipeBase * | R | ) |
Returns the BasicBlock* mapped to the pre-header of the loop region containing R
.
Definition at line 330 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(), and llvm::VPActiveLaneMaskPHIRecipe::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 370 of file VPlan.h.
Referenced by llvm::VPlan::execute(), llvm::VPBasicBlock::execute(), and llvm::InnerLoopVectorizer::fixVectorizedLoop().
BasicBlock* llvm::VPTransformState::CFGState::PrevBB = nullptr |
The previous IR BasicBlock created or used.
Initially set to the new header BasicBlock.
Definition at line 366 of file VPlan.h.
Referenced by llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPExpandSCEVRecipe::execute(), llvm::VPCanonicalIVPHIRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPlan::execute(), llvm::VPBasicBlock::execute(), and llvm::VPlan::prepareToExecute().
VPBasicBlock* llvm::VPTransformState::CFGState::PrevVPBB = nullptr |
The previous VPBasicBlock visited. Initially set to null.
Definition at line 362 of file VPlan.h.
Referenced by llvm::VPlan::execute(), and llvm::VPBasicBlock::execute().
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 374 of file VPlan.h.
Referenced by llvm::VPlan::execute(), llvm::VPBasicBlock::execute(), llvm::VPRegionBlock::execute(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), llvm::VPLiveOut::fixPhi(), llvm::InnerLoopVectorizer::fixReduction(), llvm::InnerLoopVectorizer::fixVectorizedLoop(), llvm::VPTransformState::get(), and getPreheaderBBFor().