LLVM
22.0.0git
lib
Transforms
Vectorize
VPlanVerifier.h
Go to the documentation of this file.
1
//===-- VPlanVerifier.h -----------------------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
///
9
/// \file
10
/// This file declares the class VPlanVerifier, which contains utility functions
11
/// to check the consistency of a VPlan. This includes the following kinds of
12
/// invariants:
13
///
14
/// 1. Region/Block invariants:
15
/// - Region's entry/exit block must have no predecessors/successors,
16
/// respectively.
17
/// - Block's parent must be the region immediately containing the block.
18
/// - Linked blocks must have a bi-directional link (successor/predecessor).
19
/// - All predecessors/successors of a block must belong to the same region.
20
/// - Blocks must have no duplicated successor/predecessor.
21
///
22
//===----------------------------------------------------------------------===//
23
24
#ifndef LLVM_TRANSFORMS_VECTORIZE_VPLANVERIFIER_H
25
#define LLVM_TRANSFORMS_VECTORIZE_VPLANVERIFIER_H
26
27
#include "
llvm/Support/Compiler.h
"
28
29
namespace
llvm
{
30
class
VPlan;
31
32
/// Verify invariants for general VPlans. If \p VerifyLate is passed, skip some
33
/// checks that are not applicable at later stages of the transform pipeline.
34
/// Currently it checks the following:
35
/// 1. Region/Block verification: Check the Region/Block verification
36
/// invariants for every region in the H-CFG.
37
/// 2. all phi-like recipes must be at the beginning of a block, with no other
38
/// recipes in between. Note that currently there is still an exception for
39
/// VPBlendRecipes.
40
LLVM_ABI_FOR_TEST
bool
verifyVPlanIsValid
(
const
VPlan &Plan,
41
bool
VerifyLate =
false
);
42
43
}
// namespace llvm
44
45
#endif
//LLVM_TRANSFORMS_VECTORIZE_VPLANVERIFIER_H
Compiler.h
LLVM_ABI_FOR_TEST
#define LLVM_ABI_FOR_TEST
Definition:
Compiler.h:218
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:18
llvm::verifyVPlanIsValid
LLVM_ABI_FOR_TEST bool verifyVPlanIsValid(const VPlan &Plan, bool VerifyLate=false)
Verify invariants for general VPlans.
Definition:
VPlanVerifier.cpp:490
Generated on Tue Sep 2 2025 08:42:43 for LLVM by
1.9.6