LLVM  8.0.1
VPlanVerifier.h
Go to the documentation of this file.
1 //===-- VPlanVerifier.h -----------------------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 ///
10 /// \file
11 /// This file declares the class VPlanVerifier, which contains utility functions
12 /// to check the consistency of a VPlan. This includes the following kinds of
13 /// invariants:
14 ///
15 /// 1. Region/Block invariants:
16 /// - Region's entry/exit block must have no predecessors/successors,
17 /// respectively.
18 /// - Block's parent must be the region immediately containing the block.
19 /// - Linked blocks must have a bi-directional link (successor/predecessor).
20 /// - All predecessors/successors of a block must belong to the same region.
21 /// - Blocks must have no duplicated successor/predecessor.
22 ///
23 //===----------------------------------------------------------------------===//
24 
25 #ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANVERIFIER_H
26 #define LLVM_TRANSFORMS_VECTORIZE_VPLANVERIFIER_H
27 
28 #include "VPlan.h"
29 
30 namespace llvm {
31 
32 /// Class with utility functions that can be used to check the consistency and
33 /// invariants of a VPlan, including the components of its H-CFG.
35 public:
36  /// Verify the invariants of the H-CFG starting from \p TopRegion. The
37  /// verification process comprises the following steps:
38  /// 1. Region/Block verification: Check the Region/Block verification
39  /// invariants for every region in the H-CFG.
40  void verifyHierarchicalCFG(const VPRegionBlock *TopRegion) const;
41 };
42 } // namespace llvm
43 
44 #endif //LLVM_TRANSFORMS_VECTORIZE_VPLANVERIFIER_H
This class represents lattice values for constants.
Definition: AllocatorList.h:24
VPRegionBlock represents a collection of VPBasicBlocks and VPRegionBlocks which form a Single-Entry-S...
Definition: VPlan.h:1050
Class with utility functions that can be used to check the consistency and invariants of a VPlan...
Definition: VPlanVerifier.h:34
void verifyHierarchicalCFG(const VPRegionBlock *TopRegion) const
Verify the invariants of the H-CFG starting from TopRegion.
This file contains the declarations of the Vectorization Plan base classes: