LLVM 19.0.0git
Macros | Functions
VPlanVerifier.cpp File Reference

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.
 

Detailed Description

This file defines the class VPlanVerifier, which contains utility functions to check the consistency and invariants of a VPlan.

Definition in file VPlanVerifier.cpp.

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "loop-vectorize"

Definition at line 22 of file VPlanVerifier.cpp.

Function Documentation

◆ hasDuplicates()

static bool hasDuplicates ( const SmallVectorImpl< VPBlockBase * > &  VPBlockVec)
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().

◆ verifyBlock()

static bool verifyBlock ( const VPBlockBase VPB,
const VPDominatorTree VPDT 
)
static

◆ verifyBlocksInRegion()

static bool verifyBlocksInRegion ( const VPRegionBlock Region,
const VPDominatorTree VPDT 
)
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().

◆ verifyPhiRecipes()

static bool verifyPhiRecipes ( const VPBasicBlock VPBB)
static

◆ verifyRegion()

static bool verifyRegion ( const VPRegionBlock Region,
const VPDominatorTree VPDT 
)
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().

◆ verifyRegionRec()

static bool verifyRegionRec ( const VPRegionBlock Region,
const VPDominatorTree VPDT 
)
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().

◆ verifyVPBasicBlock()

static bool verifyVPBasicBlock ( const VPBasicBlock VPBB,
const VPDominatorTree VPDT 
)
static