[Mlir-commits] [mlir] Revert "[mlir][ExecutionEngine] Add support for global constructors and destructors" (PR #78164)
Cullen Rhodes
llvmlistbot at llvm.org
Mon Jan 15 06:19:18 PST 2024
https://github.com/c-rhodes created https://github.com/llvm/llvm-project/pull/78164
this is causing test failures for me on AArch64 linux, hitting the following assert:
```
# | mlir-cpu-runner: /home/culrho01/llvm-project/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp:519: void llvm::RuntimeDyldELF::resolveAArch64Relocation(const SectionEntry &, uint64_t, uint64_t, uint32_t, int64_t): Assertion `isInt<33>(Result) && "overflow check failed for relocation"' failed.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
# | Stack dump:
# | 0. Program arguments: /home/culrho01/llvm-project/build/bin/mlir-cpu-runner -march=aarch64 -mattr=+sve,+sme -e entry -entry-point-result=void -shared-libs=/home/culrho01/llvm-project/build/lib/libmlir_runner_utils.so,/home/culrho01/llvm-project/build/lib/libmlir_c_runner_utils.so,/home/culrho01/llvm-project/build/lib/libmlir_arm_sme_abi_stubs.so
```
Seeing the same in buildbot as well, e.g.
https://lab.llvm.org/buildbot/#/builders/179/builds/9094/steps/12/logs/FAIL__MLIR__sparse_codegen_dim_mlir
This seems related to #71963 which there's an open PR [#71968](https://github.com/llvm/llvm-project/pull/71968) for, I've tested that patch but it doesn't fix the issue.
Reverts llvm/llvm-project#78070
>From 91eb719cae57c7787af56401d2e63545cc53bc75 Mon Sep 17 00:00:00 2001
From: Cullen Rhodes <cullen.rhodes at arm.com>
Date: Mon, 15 Jan 2024 14:10:08 +0000
Subject: [PATCH] Revert "[mlir][ExecutionEngine] Add support for global
constructors and destructors"
---
mlir/lib/ExecutionEngine/ExecutionEngine.cpp | 6 ----
.../mlir-cpu-runner/global-constructors.mlir | 32 -------------------
2 files changed, 38 deletions(-)
delete mode 100644 mlir/test/mlir-cpu-runner/global-constructors.mlir
diff --git a/mlir/lib/ExecutionEngine/ExecutionEngine.cpp b/mlir/lib/ExecutionEngine/ExecutionEngine.cpp
index d4ad2da045e2c4..267ec236d3fd59 100644
--- a/mlir/lib/ExecutionEngine/ExecutionEngine.cpp
+++ b/mlir/lib/ExecutionEngine/ExecutionEngine.cpp
@@ -219,9 +219,6 @@ ExecutionEngine::ExecutionEngine(bool enableObjectDump,
}
ExecutionEngine::~ExecutionEngine() {
- // Execute the global destructors from the module being processed.
- if (jit)
- llvm::consumeError(jit->deinitialize(jit->getMainJITDylib()));
// Run all dynamic library destroy callbacks to prepare for the shutdown.
for (LibraryDestroyFn destroy : destroyFns)
destroy();
@@ -399,9 +396,6 @@ ExecutionEngine::create(Operation *m, const ExecutionEngineOptions &options,
};
engine->registerSymbols(runtimeSymbolMap);
- // Execute the global constructors from the module being processed.
- cantFail(engine->jit->initialize(engine->jit->getMainJITDylib()));
-
return std::move(engine);
}
diff --git a/mlir/test/mlir-cpu-runner/global-constructors.mlir b/mlir/test/mlir-cpu-runner/global-constructors.mlir
deleted file mode 100644
index 3ebcaeccc83e32..00000000000000
--- a/mlir/test/mlir-cpu-runner/global-constructors.mlir
+++ /dev/null
@@ -1,32 +0,0 @@
-// RUN: mlir-cpu-runner %s -e entry -entry-point-result=void \
-// RUN: -shared-libs=%mlir_c_runner_utils | \
-// RUN: FileCheck %s
-
-// Test that the `ctor` executes before `entry` and that `dtor` executes last.
-module {
- llvm.func @printNewline()
- llvm.func @printI64(i64)
- llvm.mlir.global_ctors {ctors = [@ctor], priorities = [0 : i32]}
- llvm.mlir.global_dtors {dtors = [@dtor], priorities = [0 : i32]}
- llvm.func @ctor() {
- %0 = llvm.mlir.constant(1 : i64) : i64
- llvm.call @printI64(%0) : (i64) -> ()
- llvm.call @printNewline() : () -> ()
- // CHECK: 1
- llvm.return
- }
- llvm.func @entry() {
- %0 = llvm.mlir.constant(2 : i64) : i64
- llvm.call @printI64(%0) : (i64) -> ()
- llvm.call @printNewline() : () -> ()
- // CHECK: 2
- llvm.return
- }
- llvm.func @dtor() {
- %0 = llvm.mlir.constant(3 : i64) : i64
- llvm.call @printI64(%0) : (i64) -> ()
- llvm.call @printNewline() : () -> ()
- // CHECK: 3
- llvm.return
- }
-}
More information about the Mlir-commits
mailing list