LLVM  14.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...
 

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(), llvm::RegionBase< Tr >::getExit(), hasDuplicates(), llvm::is_contained(), and llvm::make_range().

◆ 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 95 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 110 of file VPlanVerifier.cpp.

References llvm::RegionBase< Tr >::getEntry(), llvm::RegionBase< Tr >::getExit(), llvm::make_range(), and verifyRegion().

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

Variable Documentation

◆ EnableHCFGVerifier

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