LLVM  16.0.0git
Macros | Functions | Variables
VPlanVerifier.cpp File Reference
#include "VPlanVerifier.h"
#include "VPlan.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/Support/CommandLine.h"
Include dependency graph for VPlanVerifier.cpp:

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. More...
 
static void verifyBlocksInRegion (const VPRegionBlock *Region)
 Helper function that verifies the CFG invariants of the VPBlockBases within Region. More...
 
static void verifyRegion (const VPRegionBlock *Region)
 Verify the CFG invariants of VPRegionBlock Region and its nested VPBlockBases. More...
 
static void verifyRegionRec (const VPRegionBlock *Region)
 Verify the CFG invariants of VPRegionBlock Region and its nested VPBlockBases. More...
 
static bool verifyPhiRecipes (const VPBasicBlock *VPBB)
 
static bool verifyVPBasicBlock (const VPBasicBlock *VPBB, DenseMap< const VPBlockBase *, unsigned > &BlockNumbering)
 

Variables

static cl::opt< bool > EnableHCFGVerifier ("vplan-verify-hcfg", cl::init(false), cl::Hidden, cl::desc("Verify VPlan H-CFG."))
 

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 20 of file VPlanVerifier.cpp.

Function Documentation

◆ hasDuplicates()

static bool hasDuplicates ( const SmallVectorImpl< VPBlockBase * > &  VPBlockVec)
static

◆ verifyBlocksInRegion()

static void verifyBlocksInRegion ( const VPRegionBlock Region)
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 45 of file VPlanVerifier.cpp.

References assert(), llvm::RegionBase< Tr >::getEntry(), hasDuplicates(), llvm::is_contained(), and llvm::make_range().

◆ verifyPhiRecipes()

static bool verifyPhiRecipes ( const VPBasicBlock VPBB)
static

Definition at line 139 of file VPlanVerifier.cpp.

References llvm::VPBasicBlock::begin().

Referenced by verifyVPBasicBlock().

◆ verifyRegion()

static void verifyRegion ( const VPRegionBlock Region)
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.

Referenced by verifyRegionRec().

◆ verifyRegionRec()

static void verifyRegionRec ( const VPRegionBlock Region)
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(), and verifyRegion().

Referenced by llvm::VPlanVerifier::verifyHierarchicalCFG().

◆ verifyVPBasicBlock()

static bool verifyVPBasicBlock ( const VPBasicBlock VPBB,
DenseMap< const VPBlockBase *, unsigned > &  BlockNumbering 
)
static

Variable Documentation

◆ EnableHCFGVerifier

cl::opt<bool> EnableHCFGVerifier("vplan-verify-hcfg", cl::init(false), cl::Hidden, cl::desc("Verify VPlan H-CFG."))
static