[Mlir-commits] [mlir] 4f4cd96 - [mlir][spirv] Fix OOB error in TestModuleCombiner

Jakub Kuderski llvmlistbot at llvm.org
Mon Apr 24 11:00:50 PDT 2023


Author: Jakub Kuderski
Date: 2023-04-24T13:56:22-04:00
New Revision: 4f4cd963a6e820b50514706a1a3faed3a05779a2

URL: https://github.com/llvm/llvm-project/commit/4f4cd963a6e820b50514706a1a3faed3a05779a2
DIFF: https://github.com/llvm/llvm-project/commit/4f4cd963a6e820b50514706a1a3faed3a05779a2.diff

LOG: [mlir][spirv] Fix OOB error in TestModuleCombiner

Also fix a typo in the surrounding code.

Fixes: https://github.com/llvm/llvm-project/issues/62318

Reviewed By: qedawkins

Differential Revision: https://reviews.llvm.org/D149069

Added: 
    

Modified: 
    mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp
    mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir
    mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp b/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp
index 3083bb8d8ce69..1f708c2ae37ad 100644
--- a/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp
+++ b/mlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp
@@ -28,7 +28,7 @@ using namespace mlir;
 
 static constexpr unsigned maxFreeID = 1 << 20;
 
-/// Returns an unsed symbol in `module` for `oldSymbolName` by trying numeric
+/// Returns an unused symbol in `module` for `oldSymbolName` by trying numeric
 /// suffix in `lastUsedID`.
 static StringAttr renameSymbol(StringRef oldSymName, unsigned &lastUsedID,
                                spirv::ModuleOp module) {

diff  --git a/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir b/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir
index f9d46656358c0..4aed260420ae7 100644
--- a/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir
+++ b/mlir/test/Dialect/SPIRV/Linking/ModuleCombiner/basic.mlir
@@ -77,3 +77,11 @@ spirv.module Logical GLSL450 requires #spirv.vce<v1.0, [Shader], [SPV_KHR_storag
 }
 }
 
+// -----
+
+// No spir-v modules to combine.
+module {
+  func.func @foo(%arg0: i32) -> i32 {
+    return %arg0 : i32
+  }
+}

diff  --git a/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp b/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp
index 56a2d1d3fdc41..3f5f094ed3afc 100644
--- a/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp
+++ b/mlir/test/lib/Dialect/SPIRV/TestModuleCombiner.cpp
@@ -34,6 +34,8 @@ class TestModuleCombinerPass
 
 void TestModuleCombinerPass::runOnOperation() {
   auto modules = llvm::to_vector<4>(getOperation().getOps<spirv::ModuleOp>());
+  if (modules.empty())
+    return;
 
   OpBuilder combinedModuleBuilder(modules[0]);
 


        


More information about the Mlir-commits mailing list