Skip to content

Commit 2ffded4

Browse files
committed
Add MLIR
1 parent 3596372 commit 2ffded4

File tree

5 files changed

+480
-4
lines changed

5 files changed

+480
-4
lines changed
Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
From 17ff6161b83e6a5e86fcb6a13c5551bba1438405 Mon Sep 17 00:00:00 2001
2+
From: Erick Ochoa <[email protected]>
3+
Date: Thu, 12 Sep 2024 21:16:58 -0400
4+
Subject: [PATCH 1/9] [CMake] Add missing dependency (#108461)
5+
6+
The [`mlir-capi-execution-engine-test` test
7+
executable](https://github.com/llvm/llvm-project/blob/main/mlir/test/CAPI/CMakeLists.txt#L26-L34)
8+
9+
```cmake
10+
if(MLIR_ENABLE_EXECUTION_ENGINE)
11+
_add_capi_test_executable(mlir-capi-execution-engine-test
12+
execution_engine.c
13+
LINK_LIBS PRIVATE
14+
MLIRCAPIConversion
15+
MLIRCAPIExecutionEngine
16+
MLIRCAPIRegisterEverything
17+
)
18+
endif()
19+
```
20+
21+
22+
is run by lit tests, but it is not properly listed as a dependency. It
23+
is added in places conditionally across the file
24+
[`tests/CMakeLists.txt`](https://github.com/llvm/llvm-project/blob/main/mlir/test/CMakeLists.txt#L130-L143)
25+
26+
```cmake
27+
# The native target may not be enabled, in this case we won't
28+
# run tests that involves executing on the host: do not build
29+
# useless binaries.
30+
if(LLVM_ENABLE_PIC AND TARGET ${LLVM_NATIVE_ARCH})
31+
list(APPEND MLIR_TEST_DEPENDS
32+
mlir-cpu-runner
33+
llc
34+
mlir_async_runtime
35+
mlir-capi-execution-engine-test
36+
mlir_c_runner_utils
37+
mlir_runner_utils
38+
mlir_float16_utils
39+
)
40+
endif()
41+
```
42+
43+
But this condition is not the same as the one where the test executable
44+
is added. [It has been reported on discord that the following error
45+
occurred:](https://discord.com/channels/636084430946959380/642426447167881246/1283811636725022730)
46+
47+
```
48+
FAIL: MLIR :: CAPI/execution_engine.c (2 of 2121)
49+
******************** TEST 'MLIR :: CAPI/execution_engine.c' FAILED ********************
50+
Exit Code: 127
51+
Command Output (stdout):
52+
--
53+
# RUN: at line 10
54+
/usr/bin/mlir-capi-execution-engine-test 2>&1 | /usr/bin/FileCheck /builddir/build/BUILD/mlir-19.1.0_rc4-build/mlir-19.1.0-rc4.src/test/CAPI/execution_engine.c
55+
# executed command: /usr/bin/mlir-capi-execution-engine-test
56+
# .---command stderr------------
57+
# | '/usr/bin/mlir-capi-execution-engine-test': command not found
58+
# `-----------------------------
59+
```
60+
61+
This error will not be deterministic and is dependent on the order in
62+
which tools are built. If by any chance,
63+
`mlir-capi-execution-engine-test` is built before the lit tests run,
64+
then nothing will happen. But lit tests can be run before
65+
`mlir-capi-execution-engine-test` is built.
66+
67+
This patch adds the `mlir-capi-execution-engine` to the
68+
`MLIR_TEST_DEPENDS` list when the `MLIR_ENABLE_EXECUTION_ENGINE` flag is
69+
present.
70+
71+
Happy to make changes like:
72+
* removing `mlir-capi-execution-engine-test` from the other place where
73+
it is included in the tests
74+
* and merge and sort alphabetically these two commands
75+
76+
```cmake
77+
set(MLIR_TEST_DEPENDS
78+
FileCheck count not split-file
79+
mlir-capi-ir-test
80+
mlir-capi-irdl-test
81+
mlir-capi-llvm-test
82+
mlir-capi-pass-test
83+
mlir-capi-quant-test
84+
mlir-capi-rewrite-test
85+
mlir-capi-sparse-tensor-test
86+
mlir-capi-transform-test
87+
mlir-capi-transform-interpreter-test
88+
mlir-capi-translation-test
89+
mlir-linalg-ods-yaml-gen
90+
mlir-lsp-server
91+
mlir-opt
92+
mlir-query
93+
mlir-reduce
94+
mlir-tblgen
95+
mlir-translate
96+
tblgen-lsp-server
97+
tblgen-to-irdl
98+
)
99+
100+
set(MLIR_TEST_DEPENDS ${MLIR_TEST_DEPENDS}
101+
mlir-capi-pdl-test
102+
mlir-pdll-lsp-server
103+
mlir-pdll
104+
)
105+
```
106+
107+
Co-authored-by: Erick Ochoa <[email protected]>
108+
---
109+
mlir/test/CMakeLists.txt | 4 ++++
110+
1 file changed, 4 insertions(+)
111+
112+
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
113+
index df95e5db11f1..4d2d738b734e 100644
114+
--- a/mlir/test/CMakeLists.txt
115+
+++ b/mlir/test/CMakeLists.txt
116+
@@ -150,6 +150,10 @@ if(MLIR_ENABLE_CUDA_RUNNER)
117+
list(APPEND MLIR_TEST_DEPENDS mlir_cuda_runtime)
118+
endif()
119+
120+
+if(MLIR_ENABLE_EXECUTION_ENGINE)
121+
+ list(APPEND MLIR_TEST_DEPENDS mlir-capi-execution-engine-test)
122+
+endif()
123+
+
124+
if(MLIR_ENABLE_ROCM_RUNNER)
125+
list(APPEND MLIR_TEST_DEPENDS mlir_rocm_runtime)
126+
endif()
127+
--
128+
2.46.0
129+
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
From c8f93f1958de1f59222a89dd64a573f91105e135 Mon Sep 17 00:00:00 2001
2+
From: Konrad Kleine <[email protected]>
3+
Date: Tue, 3 Dec 2024 20:53:29 +0100
4+
Subject: [PATCH] [mlir] Specify deps via `LLVM_LINK_COMPONENTS`
5+
6+
This specifies the dependencies to link against with
7+
`LLVM_LINK_COMPONENTS` for the
8+
`mlir/test/Target/LLVM/MLIRTargetLLVMTests` binary.
9+
10+
Before, the dependencies where directly added to the
11+
`target_link_libraries()` call which caused the problems I describe
12+
next:
13+
14+
When doing a build of LLVM with MLIR I want to link against
15+
`libLLVM.so` instead of statically linking `libLLVMSupport.a`.
16+
MLIR on the other side seems to statically link against
17+
`libLLVMSupport.a` because when I link to the shared library `libLLVM.so` I get:
18+
19+
```
20+
CommandLine Error: Option 'aarch64-ptrauth-auth-checks' registered more than once!
21+
```
22+
23+
This error indicates that the `Support` library is linked twice in the `MLIRTargetLLVMTest` binary.
24+
25+
Here's the creation of the `MLIRTargetLLVMTest` binary before (Notice the
26+
`libLLVMSupport.a`):
27+
28+
```
29+
[6535/6847] : && /usr/bin/clang++ -O2 -flto=thin -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS --config=/usr/lib/rpm/redhat/redhat-hardened-clang.cfg -fstack-protector-strong -mbranch-protection=standard -fasynchronous-unwind-tables -D_DEFAULT_SOURCE -Dasm=__asm__ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wundef -Werror=mismatched-tags -O2 -g -DNDEBUG -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now --config=/usr/lib/rpm/redhat/redhat-hardened-clang-ld.cfg -flto=thin -ffat-lto-objects -Wl,--build-id=sha1 -Wl,--gc-sections -fno-lto tools/mlir/unittests/Target/LLVM/CMakeFiles/MLIRTargetLLVMTests.dir/SerializeNVVMTarget.cpp.o tools/mlir/unittests/Target/LLVM/CMakeFiles/MLIRTargetLLVMTests.dir/SerializeROCDLTarget.cpp.o tools/mlir/unittests/Target/LLVM/CMakeFiles/MLIRTargetLLVMTests.dir/SerializeToLLVMBitcode.cpp.o -o tools/mlir/unittests/Target/LLVM/MLIRTargetLLVMTests -Wl,-rpath,/builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/lib64 lib64/libllvm_gtest_main.a lib64/libllvm_gtest.a lib64/libMLIRTargetLLVM.a lib64/libMLIRNVVMTarget.a lib64/libMLIRROCDLTarget.a lib64/libMLIRGPUDialect.a lib64/libMLIRNVVMDialect.a lib64/libMLIRLLVMDialect.a lib64/libMLIRLLVMToLLVMIRTranslation.a lib64/libMLIRBuiltinToLLVMIRTranslation.a lib64/libMLIRNVVMToLLVMIRTranslation.a lib64/libMLIRROCDLToLLVMIRTranslation.a lib64/libMLIRGPUToLLVMIRTranslation.a lib64/libLLVMAArch64CodeGen.a lib64/libLLVMAArch64Desc.a lib64/libLLVMAArch64Info.a -lpthread lib64/libMLIRTargetLLVM.a lib64/libMLIRROCDLDialect.a lib64/libMLIRExecutionEngineUtils.a lib64/libMLIRGPUDialect.a lib64/libMLIRMemRefDialect.a lib64/libMLIRArithUtils.a lib64/libMLIRDialectUtils.a lib64/libMLIRComplexDialect.a lib64/libMLIRArithAttrToLLVMConversion.a lib64/libMLIRArithDialect.a lib64/libMLIRCastInterfaces.a lib64/libMLIRDialect.a lib64/libMLIRInferIntRangeCommon.a lib64/libMLIRUBDialect.a lib64/libMLIRShapedOpInterfaces.a lib64/libMLIRTargetLLVMIRExport.a lib64/libMLIRDLTIDialect.a lib64/libMLIRLLVMIRTransforms.a lib64/libMLIRNVVMDialect.a lib64/libMLIRLLVMDialect.a lib64/libMLIRFuncDialect.a lib64/libMLIRTransforms.a lib64/libMLIRMemorySlotInterfaces.a lib64/libMLIRCopyOpInterface.a lib64/libMLIRRuntimeVerifiableOpInterface.a lib64/libMLIRTranslateLib.a lib64/libMLIRParser.a lib64/libMLIRBytecodeReader.a lib64/libMLIRAsmParser.a lib64/libMLIRTransformUtils.a lib64/libMLIRSubsetOpInterface.a lib64/libMLIRValueBoundsOpInterface.a lib64/libMLIRDestinationStyleOpInterface.a lib64/libMLIRRewrite.a lib64/libMLIRRewritePDL.a lib64/libMLIRPDLToPDLInterp.a lib64/libMLIRPass.a lib64/libMLIRAnalysis.a lib64/libMLIRControlFlowInterfaces.a lib64/libMLIRInferIntRangeInterface.a lib64/libMLIRCallInterfaces.a lib64/libMLIRDataLayoutInterfaces.a lib64/libMLIRViewLikeInterface.a lib64/libMLIRLoopLikeInterface.a lib64/libMLIRPresburger.a lib64/libMLIRPDLInterpDialect.a lib64/libMLIRFunctionInterfaces.a lib64/libMLIRPDLDialect.a lib64/libMLIRSideEffectInterfaces.a lib64/libMLIRInferTypeOpInterface.a lib64/libMLIRIR.a lib64/libMLIRSupport.a lib64/libLLVM.so.19.1 lib64/libLLVMAArch64Utils.a lib64/libLLVMAsmPrinter.a lib64/libLLVMCFGuard.a lib64/libLLVMGlobalISel.a lib64/libLLVMSelectionDAG.a lib64/libLLVMCodeGen.a lib64/libLLVMScalarOpts.a lib64/libLLVMAggressiveInstCombine.a lib64/libLLVMInstCombine.a lib64/libLLVMBitWriter.a lib64/libLLVMObjCARCOpts.a lib64/libLLVMCodeGenTypes.a lib64/libLLVMTarget.a lib64/libLLVMVectorize.a lib64/libLLVMTransformUtils.a lib64/libLLVMAnalysis.a lib64/libLLVMProfileData.a lib64/libLLVMSymbolize.a lib64/libLLVMDebugInfoDWARF.a lib64/libLLVMDebugInfoPDB.a lib64/libLLVMObject.a lib64/libLLVMMCParser.a lib64/libLLVMMC.a lib64/libLLVMIRReader.a lib64/libLLVMBitReader.a lib64/libLLVMAsmParser.a lib64/libLLVMTextAPI.a lib64/libLLVMDebugInfoCodeView.a lib64/libLLVMDebugInfoMSF.a lib64/libLLVMDebugInfoBTF.a lib64/libLLVMCore.a lib64/libLLVMBinaryFormat.a lib64/libLLVMRemarks.a lib64/libLLVMBitstreamReader.a lib64/libLLVMTargetParser.a lib64/libLLVMSupport.a lib64/libLLVMDemangle.a -lrt -ldl -lm /usr/lib64/libz.so /usr/lib64/libzstd.so && :
30+
```
31+
32+
Here's the full error:
33+
34+
```
35+
[24/25] cd /builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/tools/mlir/test && /usr/bin/python3 /builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/./bin/llvm-lit -vv /builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/tools/mlir/test
36+
: CommandLine Error: Option 'aarch64-ptrauth-auth-checks' registered more than once!
37+
LLVM ERROR: inconsistency in registered CommandLine options
38+
llvm-lit: /builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/utils/lit/lit/formats/googletest.py:38: warning: unable to discover google-tests in '/builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/tools/mlir/unittests/Target/LLVM/./MLIRTargetLLVMTests': Command '['/builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/tools/mlir/unittests/Target/LLVM/./MLIRTargetLLVMTests', '--gtest_list_tests', '--gtest_filter=-*DISABLED_*']' died with <Signals.SIGABRT: 6>.. Process output: b''
39+
error: filter did not match any tests (of 2704 discovered). Use '--allow-empty-runs' to suppress this error.
40+
FAILED: tools/mlir/test/CMakeFiles/check-mlir /builddir/build/BUILD/llvm-19.1.3-build/llvm-project-19.1.3.src/llvm/redhat-linux-build/tools/mlir/test/CMakeFiles/check-mlir
41+
```
42+
43+
Here's the CMake invocation:
44+
45+
```
46+
/usr/bin/cmake -S . -B redhat-linux-build -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF -DCMAKE_INSTALL_PREFIX:PATH=/usr -DINCLUDE_INSTALL_DIR:PATH=/usr/include -DLIB_INSTALL_DIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DLIB_SUFFIX=64 -DBUILD_SHARED_LIBS:BOOL=ON -G Ninja '' -DCLANG_BUILD_EXAMPLES:BOOL=OFF -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang/ -DCLANG_DEFAULT_PIE_ON_LINUX=OFF -DCLANG_DEFAULT_UNWINDLIB=libgcc -DCLANG_ENABLE_ARCMT:BOOL=ON -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=ON -DCLANG_INCLUDE_DOCS:BOOL=ON -DCLANG_INCLUDE_TESTS:BOOL=ON -DCLANG_LINK_CLANG_DYLIB=ON -DCLANG_PLUGIN_SUPPORT:BOOL=ON '-DCLANG_REPOSITORY_STRING=Fedora 19.1.3-5.fc42' -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR=../clang-tools-extra -DCLANG_RESOURCE_DIR=../lib/clang/19 -DCOMPILER_RT_INCLUDE_TESTS:BOOL=OFF -DCOMPILER_RT_INSTALL_PATH=/usr/lib/clang/19 -DLLVM_ENABLE_DOXYGEN:BOOL=OFF -DLLVM_ENABLE_SPHINX:BOOL=ON -DLLVM_BUILD_DOCS:BOOL=ON -DSPHINX_EXECUTABLE=/usr/bin/sphinx-build-3 -DSPHINX_OUTPUT_HTML:BOOL=OFF -DSPHINX_OUTPUT_MAN:BOOL=ON -DSPHINX_WARNINGS_AS_ERRORS=OFF -DLLDB_DISABLE_CURSES:BOOL=OFF -DLLDB_DISABLE_LIBEDIT:BOOL=OFF -DLLDB_DISABLE_PYTHON:BOOL=OFF -DLLDB_ENFORCE_STRICT_TEST_REQUIREMENTS:BOOL=ON -DLLVM_APPEND_VC_REV:BOOL=OFF -DLLVM_BUILD_EXAMPLES:BOOL=OFF -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON -DLLVM_BUILD_RUNTIME:BOOL=ON -DLLVM_BUILD_TOOLS:BOOL=ON -DLLVM_BUILD_UTILS:BOOL=ON -DLLVM_COMMON_CMAKE_UTILS=/usr/share/llvm/cmake -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-redhat-linux-gnu -DLLVM_DYLIB_COMPONENTS=all -DLLVM_ENABLE_EH=ON -DLLVM_ENABLE_FFI:BOOL=ON -DLLVM_ENABLE_LIBCXX:BOOL=OFF -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON '-DLLVM_ENABLE_PROJECTS=clang;clang-tools-extra;lld;lldb;mlir' -DLLVM_ENABLE_RTTI:BOOL=ON '-DLLVM_ENABLE_RUNTIMES=compiler-rt;openmp;offload' -DLLVM_ENABLE_ZLIB:BOOL=ON -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_INCLUDE_EXAMPLES:BOOL=ON -DLLVM_INCLUDE_TOOLS:BOOL=ON -DLLVM_INCLUDE_UTILS:BOOL=ON -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF -DLLVM_INSTALL_UTILS:BOOL=ON -DLLVM_LINK_LLVM_DYLIB:BOOL=ON -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_TARGETS_TO_BUILD=all -DLLVM_TOOLS_INSTALL_DIR:PATH=bin -DLLVM_UNREACHABLE_OPTIMIZE:BOOL=OFF -DLLVM_USE_PERF:BOOL=ON -DLLVM_UTILS_INSTALL_DIR:PATH=bin -DMLIR_INCLUDE_DOCS:BOOL=ON -DMLIR_INCLUDE_TESTS:BOOL=ON -DMLIR_INCLUDE_INTEGRATION_TESTS:BOOL=OFF -DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF -DMLIR_BUILD_MLIR_C_DYLIB=ON -DMLIR_ENABLE_BINDINGS_PYTHON:BOOL=ON -DOPENMP_INSTALL_LIBDIR=lib64 -DLIBOMP_INSTALL_ALIASES=OFF -DLLVM_BUILD_TESTS:BOOL=ON -DLLVM_INCLUDE_TESTS:BOOL=ON -DLLVM_INSTALL_GTEST:BOOL=ON -DLLVM_LIT_ARGS=-vv -DLLVM_UNITTEST_LINK_FLAGS=-fno-lto -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LINKER_BUILD_ID:BOOL=ON -DOFFLOAD_INSTALL_LIBDIR=lib64 -DPython3_EXECUTABLE=/usr/bin/python3 -DCMAKE_SKIP_INSTALL_RPATH:BOOL=ON -DPPC_LINUX_DEFAULT_IEEELONGDOUBLE=ON -DLLVM_LIBDIR_SUFFIX=64 -DLLVM_BINUTILS_INCDIR=/usr/include -DLLVM_VERSION_SUFFIX=
47+
```
48+
---
49+
mlir/unittests/Target/LLVM/CMakeLists.txt | 5 ++---
50+
1 file changed, 2 insertions(+), 3 deletions(-)
51+
52+
diff --git a/mlir/unittests/Target/LLVM/CMakeLists.txt b/mlir/unittests/Target/LLVM/CMakeLists.txt
53+
index 6d612548a94c..0c61d222dedf 100644
54+
--- a/mlir/unittests/Target/LLVM/CMakeLists.txt
55+
+++ b/mlir/unittests/Target/LLVM/CMakeLists.txt
56+
@@ -1,11 +1,11 @@
57+
+set(LLVM_LINK_COMPONENTS nativecodegen)
58+
+
59+
add_mlir_unittest(MLIRTargetLLVMTests
60+
SerializeNVVMTarget.cpp
61+
SerializeROCDLTarget.cpp
62+
SerializeToLLVMBitcode.cpp
63+
)
64+
65+
-llvm_map_components_to_libnames(llvm_libs nativecodegen)
66+
-
67+
target_link_libraries(MLIRTargetLLVMTests
68+
PRIVATE
69+
MLIRTargetLLVM
70+
@@ -19,7 +19,6 @@ target_link_libraries(MLIRTargetLLVMTests
71+
MLIRNVVMToLLVMIRTranslation
72+
MLIRROCDLToLLVMIRTranslation
73+
MLIRGPUToLLVMIRTranslation
74+
- ${llvm_libs}
75+
)
76+
77+
if (DEFINED LLVM_NATIVE_TARGET)
78+
--
79+
2.46.0
80+
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
From 1d043550c7601ca776b0318b9b913e5ecf325baf Mon Sep 17 00:00:00 2001
2+
From: Tulio Magno Quites Machado Filho <[email protected]>
3+
Date: Tue, 5 Sep 2023 10:35:37 -0300
4+
Subject: [PATCH] Reuse the library directory
5+
6+
Prefer to get the path to the shared libraries from config.llvm_shlib_dir.
7+
Fallback to the previous path only if config.llvm_shlib_dir is not
8+
defined.
9+
10+
This ensures the test will pass regardless of the build configuration
11+
used downstream.
12+
---
13+
mlir/test/lit.cfg.py | 1 +
14+
mlir/test/python/execution_engine.py | 12 +++++++-----
15+
2 files changed, 8 insertions(+), 5 deletions(-)
16+
17+
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
18+
--- a/mlir/test/lit.cfg.py 2024-08-05 10:40:33.000000000 +0200
19+
+++ b/mlir/test/lit.cfg.py 2024-08-14 19:17:55.160470316 +0200
20+
@@ -164,6 +164,7 @@
21+
ToolSubst("transform-opt-ch2", unresolved="ignore"),
22+
ToolSubst("transform-opt-ch3", unresolved="ignore"),
23+
ToolSubst("transform-opt-ch4", unresolved="ignore"),
24+
+ ToolSubst("%llvm_shlib_dir", config.llvm_shlib_dir, unresolved="ignore"),
25+
ToolSubst("mlir-transform-opt", unresolved="ignore"),
26+
ToolSubst("%mlir_lib_dir", config.mlir_lib_dir, unresolved="ignore"),
27+
ToolSubst("%mlir_src_dir", config.mlir_src_root, unresolved="ignore"),
28+
diff -ruN mlir-19.1.0-rc2.src.orig/test/python/execution_engine.py mlir-19.1.0-rc2.src/test/python/execution_engine.py
29+
--- a/mlir/test/python/execution_engine.py 2024-08-05 10:40:33.000000000 +0200
30+
+++ b/mlir/test/python/execution_engine.py 2024-08-14 19:17:20.822219824 +0200
31+
@@ -1,4 +1,4 @@
32+
-# RUN: %PYTHON %s 2>&1 | FileCheck %s
33+
+# RUN: env LLVM_SHLIB_DIR=%llvm_shlib_dir %PYTHON %s 2>&1 | FileCheck %s
34+
# REQUIRES: host-supports-jit
35+
import gc, sys, os, tempfile
36+
from mlir.ir import *
37+
@@ -6,6 +6,9 @@
38+
from mlir.execution_engine import *
39+
from mlir.runtime import *
40+
41+
+_DEFAULT_LIB_DIR = "../../../../lib"
42+
+LIB_DIR = os.getenv("LLVM_SHLIB_DIR", _DEFAULT_LIB_DIR)
43+
+
44+
45+
# Log everything to stderr and flush so that we have a unified stream to match
46+
# errors/info emitted by MLIR to stderr.
47+
@@ -613,6 +616,7 @@
48+
shared_libs = [
49+
"../../../../bin/mlir_runner_utils.dll",
50+
"../../../../bin/mlir_c_runner_utils.dll",
51+
+
52+
]
53+
elif sys.platform == "darwin":
54+
shared_libs = [
55+
@@ -621,8 +625,9 @@
56+
]
57+
else:
58+
shared_libs = [
59+
- "../../../../lib/libmlir_runner_utils.so",
60+
- "../../../../lib/libmlir_c_runner_utils.so",
61+
+ LIB_DIR + "/libmlir_runner_utils.so",
62+
+ LIB_DIR + "/libmlir_c_runner_utils.so",
63+
+
64+
]
65+
66+
execution_engine = ExecutionEngine(
67+
@@ -664,8 +669,8 @@
68+
]
69+
else:
70+
shared_libs = [
71+
- "../../../../lib/libmlir_runner_utils.so",
72+
- "../../../../lib/libmlir_c_runner_utils.so",
73+
+ LIB_DIR + "/libmlir_runner_utils.so",
74+
+ LIB_DIR + "/libmlir_c_runner_utils.so",
75+
]
76+
77+
execution_engine = ExecutionEngine(

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ edit-last-failing-script: get-last-run-script
8989
######### Re-run the last failing script from mock
9090

9191
.PHONY: mockbuild-rerun-last-script
92-
## Re-runs the last failing or running script of your release/mock mockbuild.
92+
## Re-runs the last failing or running script of your release/snapshot mock mockbuild.
9393
mockbuild-rerun-last-script: get-last-run-script
9494
mock --root=$(MOCK_CHROOT) --shell 'sh -e $(last_run_script)'
9595

0 commit comments

Comments
 (0)