7#ifndef LLZK_TRANSFORMS_LOWERING_UTILS_H
8#define LLZK_TRANSFORMS_LOWERING_UTILS_H
14#include <mlir/IR/Builders.h>
15#include <mlir/IR/BuiltinOps.h>
16#include <mlir/IR/Value.h>
17#include <mlir/Support/LogicalResult.h>
19#include <llvm/ADT/DenseMap.h>
32 llvm::DenseMap<mlir::Value, mlir::Value> &memo
40unsigned getFeltDegree(mlir::Value val, llvm::DenseMap<mlir::Value, unsigned> &memo);
Value rebuildExprInCompute(Value val, FuncDefOp computeFunc, OpBuilder &builder, DenseMap< Value, Value > &memo)
void replaceSubsequentUsesWith(Value oldVal, Value newVal, Operation *afterOp)
Value getSelfValueFromCompute(FuncDefOp computeFunc)
LogicalResult checkForAuxFieldConflicts(StructDefOp structDef, StringRef prefix)
FieldDefOp addAuxField(StructDefOp structDef, StringRef name)
unsigned getFeltDegree(Value val, DenseMap< Value, unsigned > &memo)
mlir::Value computedValue