LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
OpTraits.h
Go to the documentation of this file.
1//===-- OpTraits.h ----------------------------------------------*- c++ -*-===//
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#pragma once
11
12#include <mlir/IR/OpDefinition.h>
13#include <mlir/IR/Operation.h>
14#include <mlir/Support/LogicalResult.h>
15
16namespace llzk::function {
17
18mlir::LogicalResult verifyConstraintGenTraitImpl(mlir::Operation *op);
19mlir::LogicalResult verifyWitnessGenTraitImpl(mlir::Operation *op);
20
23template <typename TypeClass>
24class ConstraintGen : public mlir::OpTrait::TraitBase<TypeClass, ConstraintGen> {
25public:
26 inline static mlir::LogicalResult verifyTrait(mlir::Operation *op) {
28 }
29};
30
33template <typename TypeClass>
34class WitnessGen : public mlir::OpTrait::TraitBase<TypeClass, WitnessGen> {
35public:
36 inline static mlir::LogicalResult verifyTrait(mlir::Operation *op) {
38 }
39};
40
41} // namespace llzk::function
Marker for ops that are specific to constraint generation.
Definition OpTraits.h:24
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Definition OpTraits.h:26
Marker for ops that are specific to witness generation.
Definition OpTraits.h:34
static mlir::LogicalResult verifyTrait(mlir::Operation *op)
Definition OpTraits.h:36
LogicalResult verifyConstraintGenTraitImpl(Operation *op)
Definition OpTraits.cpp:30
LogicalResult verifyWitnessGenTraitImpl(Operation *op)
Definition OpTraits.cpp:38