LLZK 0.1.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Types.td
Go to the documentation of this file.
1//===-- Types.td -------------------------------------------*- tablegen -*-===//
2//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2025 Veridise Inc.
6// SPDX-License-Identifier: Apache-2.0
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLZK_SHARED_TYPES
11#define LLZK_SHARED_TYPES
12
13include "mlir/IR/AttrTypeBase.td"
14
15def AnyLLZKType : Type<CPred<"::llzk::isValidType($_self)">,
16 "a valid LLZK type", "::mlir::Type">;
17
18def GlobalDefType : Type<CPred<"::llzk::isValidGlobalType($_self)">,
19 "any LLZK type except non-constant types">;
20
21def EmitEqType : Type<CPred<"::llzk::isValidEmitEqType($_self)">,
22 "any LLZK type, excluding struct and string types">;
23
24def ConstReadType : Type<CPred<"::llzk::isValidConstReadType($_self)">,
25 "integral, felt, or typevar type">;
26
27def AnyLLZKIntType : AnyTypeOf<[I1, Index]>;
28
29#endif // LLZK_SHARED_TYPES