diff --git a/zirgen/Dialect/BigInt/Bytecode/decode.cpp b/zirgen/Dialect/BigInt/Bytecode/decode.cpp index a5f9ccc9..c33f69d6 100644 --- a/zirgen/Dialect/BigInt/Bytecode/decode.cpp +++ b/zirgen/Dialect/BigInt/Bytecode/decode.cpp @@ -149,6 +149,8 @@ mlir::func::FuncOp decode(mlir::ModuleOp module, const Program& prog) { } } + // Add terminator op, for the sake of propriety. + builder.create(loc); return out; } diff --git a/zirgen/Dialect/BigInt/IR/Eval.cpp b/zirgen/Dialect/BigInt/IR/Eval.cpp index 0959e302..10b9d52d 100644 --- a/zirgen/Dialect/BigInt/IR/Eval.cpp +++ b/zirgen/Dialect/BigInt/IR/Eval.cpp @@ -188,7 +188,7 @@ EvalOutput eval(func::FuncOp inFunc, ArrayRef witnessValues) { llvm::DenseMap polys; - for (Operation& origOp : inFunc.getBody().front()) { + for (Operation& origOp : inFunc.getBody().front().without_terminator()) { llvm::TypeSwitch(&origOp) .Case([&](auto op) { APInt val = witnessValues[op.getLabel()];