LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
OpInterfaces.td
Go to the documentation of this file.
1//===-- OpInterfaces.td ------------------------------------*- tablegen -*-===//
2//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2026 Project LLZK
6// SPDX-License-Identifier: Apache-2.0
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLZK_POLYMORPHIC_OP_INTERFACES
11#define LLZK_POLYMORPHIC_OP_INTERFACES
12
13include "mlir/IR/Interfaces.td"
14include "mlir/IR/SymbolInterfaces.td"
15
16def TemplateSymbolBindingOpInterface
17 : OpInterface<"TemplateSymbolBindingOpInterface", [Symbol]> {
18 let description = [{
19 Common interface for constant parameter-like symbol operations that can be
20 defined within a `TemplateOp`
21 }];
22
23 let methods = [InterfaceMethod<
24 [{Gets the optional type of this constant symbol.}],
25 "::std::optional<::mlir::Type>", "getTypeOpt", (ins)>,
26 ];
27
28 let cppNamespace = "::llzk::polymorphic";
29}
30
31#endif // LLZK_POLYMORPHIC_OP_INTERFACES