MLIR  21.0.0git
ExportSMTLIB.h
Go to the documentation of this file.
1 //===- ExportSMTLIB.h - SMT-LIB Exporter ------------------------*- 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 // Defines the interface to the SMT-LIB emitter.
10 //
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef MLIR_TARGET_EXPORTSMTLIB_H
14 #define MLIR_TARGET_EXPORTSMTLIB_H
15 
16 #include "mlir/Support/LLVM.h"
17 
18 namespace mlir {
19 class Operation;
20 namespace smt {
21 
22 /// Emission options for the ExportSMTLIB pass. Allows controlling the emitted
23 /// format and overall behavior.
25  // Don't produce 'let' expressions to bind expressions that are only used
26  // once, but inline them directly at the use-site.
27  bool inlineSingleUseValues = false;
28  // Increase indentation for each 'let' expression body.
29  bool indentLetBody = false;
30 };
31 
32 /// Run the ExportSMTLIB pass.
33 LogicalResult
34 exportSMTLIB(Operation *module, llvm::raw_ostream &os,
36 
37 /// Register the ExportSMTLIB pass.
39 
40 } // namespace smt
41 } // namespace mlir
42 
43 #endif // MLIR_TARGET_EXPORTSMTLIB_H
static llvm::ManagedStatic< PassManagerOptions > options
Operation is the basic unit of execution within MLIR.
Definition: Operation.h:88
void registerExportSMTLIBTranslation()
Register the ExportSMTLIB pass.
LogicalResult exportSMTLIB(Operation *module, llvm::raw_ostream &os, const SMTEmissionOptions &options=SMTEmissionOptions())
Run the ExportSMTLIB pass.
Include the generated interface declarations.
Emission options for the ExportSMTLIB pass.
Definition: ExportSMTLIB.h:24