LLZK
0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
LightweightSignalEquivalenceAnalysis.h
Go to the documentation of this file.
1
//===- LightweightSignalEquivalenceAnalysis.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/Operation.h>
13
14
#include <llvm/ADT/EquivalenceClasses.h>
15
16
namespace
llzk
{
17
18
struct
ValueLess
{
19
bool
operator()
(
const
mlir::Value &v1,
const
mlir::Value &v2)
const
{
20
return
v1.getAsOpaquePointer() < v2.getAsOpaquePointer();
21
}
22
};
23
24
class
LightweightSignalEquivalenceAnalysis
{
25
llvm::EquivalenceClasses<mlir::Value, ValueLess> equivalentSignals;
26
27
public
:
28
LightweightSignalEquivalenceAnalysis
(mlir::Operation *op);
29
bool
areSignalsEquivalent
(mlir::Value v1, mlir::Value v2);
30
};
31
32
}
// namespace llzk
llzk::LightweightSignalEquivalenceAnalysis::areSignalsEquivalent
bool areSignalsEquivalent(mlir::Value v1, mlir::Value v2)
Definition
LightweightSignalEquivalenceAnalysis.cpp:50
llzk::LightweightSignalEquivalenceAnalysis::LightweightSignalEquivalenceAnalysis
LightweightSignalEquivalenceAnalysis(mlir::Operation *op)
Definition
LightweightSignalEquivalenceAnalysis.cpp:32
llzk
Definition
AnalysisPassEnums.cpp:19
llzk::ValueLess
Definition
LightweightSignalEquivalenceAnalysis.h:18
llzk::ValueLess::operator()
bool operator()(const mlir::Value &v1, const mlir::Value &v2) const
Definition
LightweightSignalEquivalenceAnalysis.h:19
include
llzk
Analysis
LightweightSignalEquivalenceAnalysis.h
Generated by
1.14.0
Copyright 2025 Veridise Inc. under the Apache License v2.0.