LLZK 0.1.0
Veridise's ZK Language IR
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
22 : Type<CPred<"::llzk::isValidEmitEqType($_self)">,
23 "any LLZK type, excluding non-Signal struct and string types">;
24
25def ConstReadType : Type<CPred<"::llzk::isValidConstReadType($_self)">,
26 "integral, felt, or typevar type">;
27
28def AnyLLZKIntType : AnyTypeOf<[I1, Index]>;
29
30#endif // LLZK_SHARED_TYPES