LLVM 18.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 | hasDuplicates (const SmallVectorImpl< VPBlockBase * > &VPBlockVec) |
Utility function that checks whether VPBlockVec has duplicate VPBlockBases. | |
static void | verifyBlocksInRegion (const VPRegionBlock *Region) |
Helper function that verifies the CFG invariants of the VPBlockBases within Region . | |
static void | verifyRegion (const VPRegionBlock *Region) |
Verify the CFG invariants of VPRegionBlock Region and its nested VPBlockBases. | |
static void | verifyRegionRec (const VPRegionBlock *Region) |
Verify the CFG invariants of VPRegionBlock Region and its nested VPBlockBases. | |
static bool | verifyPhiRecipes (const VPBasicBlock *VPBB) |
static bool | verifyVPBasicBlock (const VPBasicBlock *VPBB, VPDominatorTree &VPDT) |
Variables | |
static cl::opt< bool > | EnableHCFGVerifier ("vplan-verify-hcfg", cl::init(false), cl::Hidden, cl::desc("Verify VPlan H-CFG.")) |
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 33 of file VPlanVerifier.cpp.
References llvm::Block, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), and llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::insert().
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 47 of file VPlanVerifier.cpp.
References assert(), llvm::RegionBase< Tr >::getEntry(), hasDuplicates(), llvm::is_contained(), and llvm::vp_depth_first_shallow().
Referenced by verifyRegion().
|
static |
Definition at line 139 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 98 of file VPlanVerifier.cpp.
References assert(), 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 114 of file VPlanVerifier.cpp.
References llvm::RegionBase< Tr >::getEntry(), llvm::make_range(), verifyRegion(), and verifyRegionRec().
Referenced by llvm::VPlanVerifier::verifyHierarchicalCFG(), and verifyRegionRec().
|
static |
Definition at line 193 of file VPlanVerifier.cpp.
References llvm::DominatorTreeBase< NodeT, IsPostDom >::dominates(), llvm::errs(), llvm::VPBlockBase::getParent(), and verifyPhiRecipes().
Referenced by llvm::VPlanVerifier::verifyPlanIsValid().