-
Notifications
You must be signed in to change notification settings - Fork 12.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "[mlir] Re-Add mlirTranslateModuleToLLVMIR to MLIR-C (#73627)" #73749
Conversation
This reverts commit 5231605.
@llvm/pr-subscribers-mlir-llvm Author: Vitaly Buka (vitalybuka) ChangesStill breaks https://lab.llvm.org/buildbot/#/builders/5/builds/38743/steps/9/logs/stdio There is some info on how to reproduce https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild This reverts commit 5231605. Full diff: https://github.com/llvm/llvm-project/pull/73749.diff 8 Files Affected:
diff --git a/mlir/include/mlir-c/Target/LLVMIR.h b/mlir/include/mlir-c/Target/LLVMIR.h
deleted file mode 100644
index effa74b905ce66b..000000000000000
--- a/mlir/include/mlir-c/Target/LLVMIR.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- LLVMIR.h - C Interface for MLIR LLVMIR Target -------------*- C -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM
-// Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This header declares the C interface to target LLVMIR with MLIR.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MLIR_C_TARGET_LLVMIR_H
-#define MLIR_C_TARGET_LLVMIR_H
-
-#include "mlir-c/IR.h"
-#include "mlir-c/Support.h"
-#include "llvm-c/Support.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/// Translate operation that satisfies LLVM dialect module requirements into an
-/// LLVM IR module living in the given context. This translates operations from
-/// any dilalect that has a registered implementation of
-/// LLVMTranslationDialectInterface.
-///
-/// \returns the generated LLVM IR Module from the translated MLIR module, it is
-/// owned by the caller.
-MLIR_CAPI_EXPORTED LLVMModuleRef
-mlirTranslateModuleToLLVMIR(MlirOperation module, LLVMContextRef context);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // MLIR_C_TARGET_LLVMIR_H
diff --git a/mlir/lib/CAPI/CMakeLists.txt b/mlir/lib/CAPI/CMakeLists.txt
index 6c438508425b7c3..707e78ac3d1ea3c 100644
--- a/mlir/lib/CAPI/CMakeLists.txt
+++ b/mlir/lib/CAPI/CMakeLists.txt
@@ -14,7 +14,6 @@ add_subdirectory(Interfaces)
add_subdirectory(IR)
add_subdirectory(RegisterEverything)
add_subdirectory(Transforms)
-add_subdirectory(Target)
if(MLIR_ENABLE_EXECUTION_ENGINE)
add_subdirectory(ExecutionEngine)
@@ -37,3 +36,4 @@ if(MLIR_BUILD_MLIR_C_DYLIB)
endif()
endif()
endif()
+
diff --git a/mlir/lib/CAPI/Target/CMakeLists.txt b/mlir/lib/CAPI/Target/CMakeLists.txt
deleted file mode 100644
index ce86fd3def964cb..000000000000000
--- a/mlir/lib/CAPI/Target/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-add_mlir_upstream_c_api_library(MLIRCAPITarget
- LLVMIR.cpp
-
- LINK_COMPONENTS
- Core
-
- LINK_LIBS PUBLIC
- MLIRToLLVMIRTranslationRegistration
- MLIRCAPIIR
- MLIRLLVMToLLVMIRTranslation
- MLIRSupport
-)
diff --git a/mlir/lib/CAPI/Target/LLVMIR.cpp b/mlir/lib/CAPI/Target/LLVMIR.cpp
deleted file mode 100644
index dc798372be74679..000000000000000
--- a/mlir/lib/CAPI/Target/LLVMIR.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===-- LLVMIR.h - C Interface for MLIR LLVMIR Target ---------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM
-// Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "mlir-c/Target/LLVMIR.h"
-#include "llvm-c/Support.h"
-
-#include "llvm/IR/LLVMContext.h"
-#include "llvm/IR/Module.h"
-#include <memory>
-
-#include "mlir/CAPI/IR.h"
-#include "mlir/CAPI/Support.h"
-#include "mlir/CAPI/Wrap.h"
-#include "mlir/Target/LLVMIR/ModuleTranslation.h"
-
-using namespace mlir;
-
-LLVMModuleRef mlirTranslateModuleToLLVMIR(MlirOperation module,
- LLVMContextRef context) {
- Operation *moduleOp = unwrap(module);
-
- llvm::LLVMContext *ctx = llvm::unwrap(context);
-
- std::unique_ptr<llvm::Module> llvmModule =
- mlir::translateModuleToLLVMIR(moduleOp, *ctx);
-
- LLVMModuleRef moduleRef = llvm::wrap(llvmModule.release());
-
- return moduleRef;
-}
diff --git a/mlir/test/CAPI/CMakeLists.txt b/mlir/test/CAPI/CMakeLists.txt
index 1096a3b08066483..16a3d0ed9c62fbf 100644
--- a/mlir/test/CAPI/CMakeLists.txt
+++ b/mlir/test/CAPI/CMakeLists.txt
@@ -85,12 +85,3 @@ _add_capi_test_executable(mlir-capi-transform-test
MLIRCAPIRegisterEverything
MLIRCAPITransformDialect
)
-
-_add_capi_test_executable(mlir-capi-translation-test
- translation.c
- LINK_LIBS PRIVATE
- MLIRCAPIIR
- MLIRCAPILLVM
- MLIRCAPIRegisterEverything
- MLIRCAPITarget
-)
diff --git a/mlir/test/CAPI/translation.c b/mlir/test/CAPI/translation.c
deleted file mode 100644
index e58a01d8c171d0a..000000000000000
--- a/mlir/test/CAPI/translation.c
+++ /dev/null
@@ -1,67 +0,0 @@
-//===- translation.c - Test MLIR Target translations ----------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM
-// Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// RUN: mlir-capi-translation-test 2>&1 | FileCheck %s
-
-#include "llvm-c/Core.h"
-#include "llvm-c/Support.h"
-#include "llvm-c/Types.h"
-
-#include "mlir-c/BuiltinTypes.h"
-#include "mlir-c/Dialect/LLVM.h"
-#include "mlir-c/IR.h"
-#include "mlir-c/RegisterEverything.h"
-#include "mlir-c/Support.h"
-#include "mlir-c/Target/LLVMIR.h"
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-// CHECK-LABEL: testToLLVMIR()
-static void testToLLVMIR(MlirContext ctx) {
- fprintf(stderr, "testToLLVMIR()\n");
- LLVMContextRef llvmCtx = LLVMContextCreate();
-
- const char *moduleString = "llvm.func @add(%arg0: i64, %arg1: i64) -> i64 { \
- %0 = llvm.add %arg0, %arg1 : i64 \
- llvm.return %0 : i64 \
- }";
-
- mlirRegisterAllLLVMTranslations(ctx);
-
- MlirModule module =
- mlirModuleCreateParse(ctx, mlirStringRefCreateFromCString(moduleString));
-
- MlirOperation operation = mlirModuleGetOperation(module);
-
- LLVMModuleRef llvmModule = mlirTranslateModuleToLLVMIR(operation, llvmCtx);
-
- // clang-format off
- // CHECK: define i64 @add(i64 %[[arg1:.*]], i64 %[[arg2:.*]]) {
- // CHECK-NEXT: %[[arg3:.*]] = add i64 %[[arg1]], %[[arg2]]
- // CHECK-NEXT: ret i64 %[[arg3]]
- // CHECK-NEXT: }
- // clang-format on
- LLVMDumpModule(llvmModule);
-
- LLVMDisposeModule(llvmModule);
- mlirModuleDestroy(module);
-}
-
-int main(void) {
- MlirContext ctx = mlirContextCreate();
- mlirDialectHandleRegisterDialect(mlirGetDialectHandle__llvm__(), ctx);
- mlirContextGetOrLoadDialect(ctx, mlirStringRefCreateFromCString("llvm"));
- testToLLVMIR(ctx);
- mlirContextDestroy(ctx);
- return 0;
-}
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index ccb4a98254cd574..e4343095578c1f0 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -45,10 +45,10 @@ if (MLIR_INCLUDE_INTEGRATION_TESTS)
message(FATAL_ERROR "MLIR_INCLUDE_INTEGRATION_TESTS requires a native target")
endif()
- # When the Integration tests are requested via the MLIR_INCLUDE_INTEGRATION_TESTS
- # configuration flag, we automatically include sm80 tests when build for
- # cuSparse when the configuration flag MLIR_ENABLE_CUDA_CUSPARSE is set and
- # include sm80 lt tests when the MLIR_ENABLE_CUDA_CUSPARSELT is set in
+ # When the Integration tests are requested via the MLIR_INCLUDE_INTEGRATION_TESTS
+ # configuration flag, we automatically include sm80 tests when build for
+ # cuSparse when the configuration flag MLIR_ENABLE_CUDA_CUSPARSE is set and
+ # include sm80 lt tests when the MLIR_ENABLE_CUDA_CUSPARSELT is set in
# addition to those.
if (MLIR_ENABLE_CUDA_CUSPARSE)
set(MLIR_RUN_CUDA_SM80_TESTS ON)
@@ -101,7 +101,6 @@ set(MLIR_TEST_DEPENDS
mlir-capi-quant-test
mlir-capi-sparse-tensor-test
mlir-capi-transform-test
- mlir-capi-translation-test
mlir-linalg-ods-yaml-gen
mlir-lsp-server
mlir-pdll-lsp-server
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
index 17c29445ba82b13..87bbe51e95d4c9d 100644
--- a/mlir/test/lit.cfg.py
+++ b/mlir/test/lit.cfg.py
@@ -106,7 +106,6 @@ def add_runtime(name):
"mlir-capi-quant-test",
"mlir-capi-sparse-tensor-test",
"mlir-capi-transform-test",
- "mlir-capi-translation-test",
"mlir-cpu-runner",
add_runtime("mlir_runner_utils"),
add_runtime("mlir_c_runner_utils"),
|
@llvm/pr-subscribers-mlir Author: Vitaly Buka (vitalybuka) ChangesStill breaks https://lab.llvm.org/buildbot/#/builders/5/builds/38743/steps/9/logs/stdio There is some info on how to reproduce https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild This reverts commit 5231605. Full diff: https://github.com/llvm/llvm-project/pull/73749.diff 8 Files Affected:
diff --git a/mlir/include/mlir-c/Target/LLVMIR.h b/mlir/include/mlir-c/Target/LLVMIR.h
deleted file mode 100644
index effa74b905ce66b..000000000000000
--- a/mlir/include/mlir-c/Target/LLVMIR.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- LLVMIR.h - C Interface for MLIR LLVMIR Target -------------*- C -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM
-// Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// This header declares the C interface to target LLVMIR with MLIR.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef MLIR_C_TARGET_LLVMIR_H
-#define MLIR_C_TARGET_LLVMIR_H
-
-#include "mlir-c/IR.h"
-#include "mlir-c/Support.h"
-#include "llvm-c/Support.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/// Translate operation that satisfies LLVM dialect module requirements into an
-/// LLVM IR module living in the given context. This translates operations from
-/// any dilalect that has a registered implementation of
-/// LLVMTranslationDialectInterface.
-///
-/// \returns the generated LLVM IR Module from the translated MLIR module, it is
-/// owned by the caller.
-MLIR_CAPI_EXPORTED LLVMModuleRef
-mlirTranslateModuleToLLVMIR(MlirOperation module, LLVMContextRef context);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // MLIR_C_TARGET_LLVMIR_H
diff --git a/mlir/lib/CAPI/CMakeLists.txt b/mlir/lib/CAPI/CMakeLists.txt
index 6c438508425b7c3..707e78ac3d1ea3c 100644
--- a/mlir/lib/CAPI/CMakeLists.txt
+++ b/mlir/lib/CAPI/CMakeLists.txt
@@ -14,7 +14,6 @@ add_subdirectory(Interfaces)
add_subdirectory(IR)
add_subdirectory(RegisterEverything)
add_subdirectory(Transforms)
-add_subdirectory(Target)
if(MLIR_ENABLE_EXECUTION_ENGINE)
add_subdirectory(ExecutionEngine)
@@ -37,3 +36,4 @@ if(MLIR_BUILD_MLIR_C_DYLIB)
endif()
endif()
endif()
+
diff --git a/mlir/lib/CAPI/Target/CMakeLists.txt b/mlir/lib/CAPI/Target/CMakeLists.txt
deleted file mode 100644
index ce86fd3def964cb..000000000000000
--- a/mlir/lib/CAPI/Target/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-add_mlir_upstream_c_api_library(MLIRCAPITarget
- LLVMIR.cpp
-
- LINK_COMPONENTS
- Core
-
- LINK_LIBS PUBLIC
- MLIRToLLVMIRTranslationRegistration
- MLIRCAPIIR
- MLIRLLVMToLLVMIRTranslation
- MLIRSupport
-)
diff --git a/mlir/lib/CAPI/Target/LLVMIR.cpp b/mlir/lib/CAPI/Target/LLVMIR.cpp
deleted file mode 100644
index dc798372be74679..000000000000000
--- a/mlir/lib/CAPI/Target/LLVMIR.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//===-- LLVMIR.h - C Interface for MLIR LLVMIR Target ---------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM
-// Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "mlir-c/Target/LLVMIR.h"
-#include "llvm-c/Support.h"
-
-#include "llvm/IR/LLVMContext.h"
-#include "llvm/IR/Module.h"
-#include <memory>
-
-#include "mlir/CAPI/IR.h"
-#include "mlir/CAPI/Support.h"
-#include "mlir/CAPI/Wrap.h"
-#include "mlir/Target/LLVMIR/ModuleTranslation.h"
-
-using namespace mlir;
-
-LLVMModuleRef mlirTranslateModuleToLLVMIR(MlirOperation module,
- LLVMContextRef context) {
- Operation *moduleOp = unwrap(module);
-
- llvm::LLVMContext *ctx = llvm::unwrap(context);
-
- std::unique_ptr<llvm::Module> llvmModule =
- mlir::translateModuleToLLVMIR(moduleOp, *ctx);
-
- LLVMModuleRef moduleRef = llvm::wrap(llvmModule.release());
-
- return moduleRef;
-}
diff --git a/mlir/test/CAPI/CMakeLists.txt b/mlir/test/CAPI/CMakeLists.txt
index 1096a3b08066483..16a3d0ed9c62fbf 100644
--- a/mlir/test/CAPI/CMakeLists.txt
+++ b/mlir/test/CAPI/CMakeLists.txt
@@ -85,12 +85,3 @@ _add_capi_test_executable(mlir-capi-transform-test
MLIRCAPIRegisterEverything
MLIRCAPITransformDialect
)
-
-_add_capi_test_executable(mlir-capi-translation-test
- translation.c
- LINK_LIBS PRIVATE
- MLIRCAPIIR
- MLIRCAPILLVM
- MLIRCAPIRegisterEverything
- MLIRCAPITarget
-)
diff --git a/mlir/test/CAPI/translation.c b/mlir/test/CAPI/translation.c
deleted file mode 100644
index e58a01d8c171d0a..000000000000000
--- a/mlir/test/CAPI/translation.c
+++ /dev/null
@@ -1,67 +0,0 @@
-//===- translation.c - Test MLIR Target translations ----------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM
-// Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// RUN: mlir-capi-translation-test 2>&1 | FileCheck %s
-
-#include "llvm-c/Core.h"
-#include "llvm-c/Support.h"
-#include "llvm-c/Types.h"
-
-#include "mlir-c/BuiltinTypes.h"
-#include "mlir-c/Dialect/LLVM.h"
-#include "mlir-c/IR.h"
-#include "mlir-c/RegisterEverything.h"
-#include "mlir-c/Support.h"
-#include "mlir-c/Target/LLVMIR.h"
-
-#include <assert.h>
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-// CHECK-LABEL: testToLLVMIR()
-static void testToLLVMIR(MlirContext ctx) {
- fprintf(stderr, "testToLLVMIR()\n");
- LLVMContextRef llvmCtx = LLVMContextCreate();
-
- const char *moduleString = "llvm.func @add(%arg0: i64, %arg1: i64) -> i64 { \
- %0 = llvm.add %arg0, %arg1 : i64 \
- llvm.return %0 : i64 \
- }";
-
- mlirRegisterAllLLVMTranslations(ctx);
-
- MlirModule module =
- mlirModuleCreateParse(ctx, mlirStringRefCreateFromCString(moduleString));
-
- MlirOperation operation = mlirModuleGetOperation(module);
-
- LLVMModuleRef llvmModule = mlirTranslateModuleToLLVMIR(operation, llvmCtx);
-
- // clang-format off
- // CHECK: define i64 @add(i64 %[[arg1:.*]], i64 %[[arg2:.*]]) {
- // CHECK-NEXT: %[[arg3:.*]] = add i64 %[[arg1]], %[[arg2]]
- // CHECK-NEXT: ret i64 %[[arg3]]
- // CHECK-NEXT: }
- // clang-format on
- LLVMDumpModule(llvmModule);
-
- LLVMDisposeModule(llvmModule);
- mlirModuleDestroy(module);
-}
-
-int main(void) {
- MlirContext ctx = mlirContextCreate();
- mlirDialectHandleRegisterDialect(mlirGetDialectHandle__llvm__(), ctx);
- mlirContextGetOrLoadDialect(ctx, mlirStringRefCreateFromCString("llvm"));
- testToLLVMIR(ctx);
- mlirContextDestroy(ctx);
- return 0;
-}
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index ccb4a98254cd574..e4343095578c1f0 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -45,10 +45,10 @@ if (MLIR_INCLUDE_INTEGRATION_TESTS)
message(FATAL_ERROR "MLIR_INCLUDE_INTEGRATION_TESTS requires a native target")
endif()
- # When the Integration tests are requested via the MLIR_INCLUDE_INTEGRATION_TESTS
- # configuration flag, we automatically include sm80 tests when build for
- # cuSparse when the configuration flag MLIR_ENABLE_CUDA_CUSPARSE is set and
- # include sm80 lt tests when the MLIR_ENABLE_CUDA_CUSPARSELT is set in
+ # When the Integration tests are requested via the MLIR_INCLUDE_INTEGRATION_TESTS
+ # configuration flag, we automatically include sm80 tests when build for
+ # cuSparse when the configuration flag MLIR_ENABLE_CUDA_CUSPARSE is set and
+ # include sm80 lt tests when the MLIR_ENABLE_CUDA_CUSPARSELT is set in
# addition to those.
if (MLIR_ENABLE_CUDA_CUSPARSE)
set(MLIR_RUN_CUDA_SM80_TESTS ON)
@@ -101,7 +101,6 @@ set(MLIR_TEST_DEPENDS
mlir-capi-quant-test
mlir-capi-sparse-tensor-test
mlir-capi-transform-test
- mlir-capi-translation-test
mlir-linalg-ods-yaml-gen
mlir-lsp-server
mlir-pdll-lsp-server
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
index 17c29445ba82b13..87bbe51e95d4c9d 100644
--- a/mlir/test/lit.cfg.py
+++ b/mlir/test/lit.cfg.py
@@ -106,7 +106,6 @@ def add_runtime(name):
"mlir-capi-quant-test",
"mlir-capi-sparse-tensor-test",
"mlir-capi-transform-test",
- "mlir-capi-translation-test",
"mlir-cpu-runner",
add_runtime("mlir_runner_utils"),
add_runtime("mlir_c_runner_utils"),
|
Thanks! I was out for dinner and just came back, I was about to revert when I saw you did! |
There is a memory leak https://gist.github.com/vitalybuka/93763fb63373f07777beb553396dde48 |
Still breaks https://lab.llvm.org/buildbot/#/builders/5/builds/38743/steps/9/logs/stdio
There is some info on how to reproduce https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild
This reverts commit 5231605.