Add LLVMDialect as dependent for "llvm-legalize-for-export" pass
authorMehdi Amini <joker.eph@gmail.com>
Tue, 13 Dec 2022 08:48:32 +0000 (08:48 +0000)
committerMehdi Amini <joker.eph@gmail.com>
Tue, 13 Dec 2022 08:49:13 +0000 (08:49 +0000)
Fixes #59462

mlir/include/mlir/Dialect/LLVMIR/Transforms/Passes.td
mlir/test/Dialect/LLVMIR/legalize-for-export.mlir

index a22efd3..604865e 100644 (file)
@@ -14,6 +14,7 @@ include "mlir/Pass/PassBase.td"
 def LLVMLegalizeForExport : Pass<"llvm-legalize-for-export"> {
   let summary = "Legalize LLVM dialect to be convertible to LLVM IR";
   let constructor = "::mlir::LLVM::createLegalizeForExportPass()";
+  let dependentDialects = ["LLVM::LLVMDialect"];
 }
 
 def LLVMRequestCWrappers
index ac8ed6d..37720e9 100644 (file)
@@ -1,4 +1,4 @@
-// RUN: mlir-opt -llvm-legalize-for-export %s | FileCheck %s
+// RUN: mlir-opt -llvm-legalize-for-export --split-input-file  %s | FileCheck %s
 
 // Verifies that duplicate successor with different arguments are deduplicated
 // by introducing a new block that forwards its arguments to the original
@@ -43,3 +43,15 @@ llvm.func @repeated_successor_openmp(%arg0: i64, %arg1: i64, %arg2: i64, %arg3:
   }
   llvm.return
 }
+
+// -----
+
+// This module won't have any LLVM dialect entities as input.
+// Check that we don't crash when building LLVM entities.
+// CHECK-LABEL:func @func1
+func.func @func1(%arg0: i1, %arg1 : i1) {
+// CHECK: llvm.br
+  cf.cond_br %arg0, ^bb40(%arg0 : i1), ^bb40(%arg1 : i1)
+^bb40(%47: i1):
+  return
+}