LLZK
3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Toggle main menu visibility
Loading...
Searching...
No Matches
Ops.cpp
Go to the documentation of this file.
1
//===-- Ops.cpp - LLZK operation implementations ----------------*- 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
#include "
llzk/Dialect/LLZK/IR/Ops.h
"
11
12
#include "
llzk/Util/TypeHelper.h
"
13
14
#include <mlir/IR/PatternMatch.h>
15
16
// TableGen'd implementation files
17
#define GET_OP_CLASSES
18
#include "
llzk/Dialect/LLZK/IR/Ops.cpp.inc
"
19
20
using namespace
mlir
;
21
22
namespace
llzk
{
23
24
namespace
{
25
26
struct
RemoveUnusedNonDetPattern :
public
OpRewritePattern<NonDetOp> {
27
using
OpRewritePattern::OpRewritePattern;
28
29
LogicalResult matchAndRewrite(NonDetOp op, PatternRewriter &rewriter)
const override
{
30
if
(!op.getResult().use_empty()) {
31
return
failure();
32
}
33
rewriter.eraseOp(op);
34
return
success();
35
}
36
};
37
38
}
// namespace
39
40
//===------------------------------------------------------------------===//
41
// NonDetOp
42
//===------------------------------------------------------------------===//
43
44
void
NonDetOp::getAsmResultNames
(OpAsmSetValueNameFn setNameFn) {
45
setNameFn(getResult(),
"nondet"
);
46
}
47
48
void
NonDetOp::getCanonicalizationPatterns
(RewritePatternSet &results, MLIRContext *context) {
49
results.add<RemoveUnusedNonDetPattern>(context);
50
}
51
52
}
// namespace llzk
Ops.cpp.inc
Ops.h
TypeHelper.h
llzk::NonDetOp::getCanonicalizationPatterns
static void getCanonicalizationPatterns(::mlir::RewritePatternSet &results, ::mlir::MLIRContext *context)
Definition
Ops.cpp:48
llzk::NonDetOp::getAsmResultNames
void getAsmResultNames(::mlir::OpAsmSetValueNameFn setNameFn)
Definition
Ops.cpp:44
llzk
Definition
AnalysisPassEnums.cpp:19
mlir
Definition
ValueModel.h:30
lib
Dialect
LLZK
IR
Ops.cpp
Generated by
1.17.0
Copyright 2025 Veridise Inc. under the Apache License v2.0. Copyright 2026 Project LLZK under the Apache License v2.0.