1 //===- Verifier.h - Verifier analysis for MLIR structures -------*- 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 #ifndef MLIR_IR_VERIFIER_H 10 #define MLIR_IR_VERIFIER_H 11 12 #include "mlir/Support/LLVM.h" 13 14 namespace mlir { 15 class Operation; 16 17 /// Perform (potentially expensive) checks of invariants, used to detect 18 /// compiler bugs, on this operation and any nested operations. On error, this 19 /// reports the error through the MLIRContext and returns failure. If 20 /// `verifyRecursively` is false, this assumes that nested operations have 21 /// already been properly verified, and does not recursively invoke the verifier 22 /// on nested operations. 23 LogicalResult verify(Operation *op, bool verifyRecursively = true); 24 25 } // namespace mlir 26 27 #endif 28