[Mlir-commits] [mlir] Fix pipeline-invalid.mlir bytecode roundtrip test (PR #82366)

Matteo Franciolini llvmlistbot at llvm.org
Tue Feb 20 07:02:09 PST 2024


https://github.com/mfrancio created https://github.com/llvm/llvm-project/pull/82366

If an op was not contained in a region when was written to bytecode,
we don't have an initialized valueScope with forward references to
define.

>From 3219ce0436637307f8517a324cf3514520db9395 Mon Sep 17 00:00:00 2001
From: Matteo Franciolini <mfranciolini at tesla.com>
Date: Mon, 19 Feb 2024 19:30:22 -0800
Subject: [PATCH] Fix pipeline-invalid.mlir bytecode roundtrip test

If an op was not contained in a region when was written to bytecode,
we don't have an initialized valueScope with forward references to
define.
---
 mlir/lib/Bytecode/Reader/BytecodeReader.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/mlir/lib/Bytecode/Reader/BytecodeReader.cpp b/mlir/lib/Bytecode/Reader/BytecodeReader.cpp
index 7cf3bd83b925ca..d61634062784c6 100644
--- a/mlir/lib/Bytecode/Reader/BytecodeReader.cpp
+++ b/mlir/lib/Bytecode/Reader/BytecodeReader.cpp
@@ -2334,8 +2334,11 @@ BytecodeReader::Impl::parseOpWithoutRegions(EncodingReader &reader,
   Operation *op = Operation::create(opState);
   readState.curBlock->push_back(op);
 
-  // If the operation had results, update the value references.
-  if (op->getNumResults() && failed(defineValues(reader, op->getResults())))
+  // If the operation had results, update the value references. We don't need to
+  // do this if the current value scope is empty. That is, the op was not
+  // encoded within a parent region.
+  if (readState.numValues && op->getNumResults() &&
+      failed(defineValues(reader, op->getResults())))
     return failure();
 
   /// Store a map for every value that received a custom use-list order from the



More information about the Mlir-commits mailing list