LLVM 19.0.0git
|
This file defines the class VPlanVerifier, which contains utility functions to check the consistency and invariants of a VPlan. More...
#include "VPlanVerifier.h"
#include "VPlan.h"
#include "VPlanCFG.h"
#include "VPlanDominatorTree.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/Support/CommandLine.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "loop-vectorize" |
Functions | |
static bool | verifyPhiRecipes (const VPBasicBlock *VPBB) |
static bool | verifyVPBasicBlock (const VPBasicBlock *VPBB, const VPDominatorTree &VPDT) |
static bool | hasDuplicates (const SmallVectorImpl< VPBlockBase * > &VPBlockVec) |
Utility function that checks whether VPBlockVec has duplicate VPBlockBases. | |
static bool | verifyBlock (const VPBlockBase *VPB, const VPDominatorTree &VPDT) |
static bool | verifyBlocksInRegion (const VPRegionBlock *Region, const VPDominatorTree &VPDT) |
Helper function that verifies the CFG invariants of the VPBlockBases within Region . | |
static bool | verifyRegion (const VPRegionBlock *Region, const VPDominatorTree &VPDT) |
Verify the CFG invariants of VPRegionBlock Region and its nested VPBlockBases. | |
static bool | verifyRegionRec (const VPRegionBlock *Region, const VPDominatorTree &VPDT) |
Verify the CFG invariants of VPRegionBlock Region and its nested VPBlockBases. | |
This file defines the class VPlanVerifier, which contains utility functions to check the consistency and invariants of a VPlan.
Definition in file VPlanVerifier.cpp.
#define DEBUG_TYPE "loop-vectorize" |
Definition at line 22 of file VPlanVerifier.cpp.
|
static |
Utility function that checks whether VPBlockVec
has duplicate VPBlockBases.
Definition at line 126 of file VPlanVerifier.cpp.
References llvm::Block, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), and llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert().
Referenced by verifyBlock().
|
static |
Definition at line 136 of file VPlanVerifier.cpp.
References llvm::errs(), llvm::VPBlockBase::getNumSuccessors(), llvm::VPBlockBase::getParent(), llvm::VPBlockBase::getPredecessors(), llvm::VPBlockBase::getSuccessors(), hasDuplicates(), llvm::is_contained(), and verifyVPBasicBlock().
Referenced by verifyBlocksInRegion().
|
static |
Helper function that verifies the CFG invariants of the VPBlockBases within Region
.
Checks in this function are generic for VPBlockBases. They are not specific for VPBasicBlocks or VPRegionBlocks.
Definition at line 202 of file VPlanVerifier.cpp.
References llvm::errs(), llvm::RegionBase< Tr >::getEntry(), verifyBlock(), and llvm::vp_depth_first_shallow().
Referenced by verifyRegion().
|
static |
Definition at line 29 of file VPlanVerifier.cpp.
References llvm::VPBasicBlock::begin(), End, llvm::VPBasicBlock::end(), llvm::errs(), llvm::VPBlockBase::getEntryBasicBlock(), llvm::VPBlockBase::getParent(), and llvm::VPRegionBlock::isReplicator().
Referenced by verifyVPBasicBlock().
|
static |
Verify the CFG invariants of VPRegionBlock Region
and its nested VPBlockBases.
Do not recurse inside nested VPRegionBlocks.
Definition at line 219 of file VPlanVerifier.cpp.
References llvm::errs(), llvm::RegionBase< Tr >::getEntry(), llvm::VPBlockBase::getNumSuccessors(), and verifyBlocksInRegion().
Referenced by verifyRegionRec().
|
static |
Verify the CFG invariants of VPRegionBlock Region
and its nested VPBlockBases.
Recurse inside nested VPRegionBlocks.
Definition at line 239 of file VPlanVerifier.cpp.
References llvm::all_of(), llvm::RegionBase< Tr >::getEntry(), verifyRegion(), and llvm::vp_depth_first_shallow().
Referenced by llvm::verifyVPlanIsValid().
|
static |
Definition at line 83 of file VPlanVerifier.cpp.
References llvm::DominatorTreeBase< NodeT, IsPostDom >::dominates(), llvm::errs(), llvm::VPBlockBase::getParent(), and verifyPhiRecipes().
Referenced by verifyBlock().