Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
81cc0f1456
!12 init for Multi-Version LLVM-18.1.8
From: @liyunfei33 
Reviewed-by: @eastb233 
Signed-off-by: @eastb233
2024-12-10 07:26:59 +00:00
liyunfei
43e9820a06 init for Multi-Version LLVM-18.1.8
Signed-off-by: liyunfei <liyunfei33@huawei.com>
2024-12-10 14:27:58 +08:00
openeuler-ci-bot
8f4c48bf2f
!11 adopt to new cmake macro
From: @fundawang 
Reviewed-by: @liyunfei33 
Signed-off-by: @liyunfei33
2024-11-12 12:51:15 +00:00
Funda Wang
af9fe74737 adopt to new cmake macro 2024-11-11 00:03:19 +08:00
openeuler-ci-bot
019e503605
!7 Add BiSheng Autotuner support
From: @liyunfei33 
Reviewed-by: @cf-zhao 
Signed-off-by: @cf-zhao
2024-08-20 12:47:03 +00:00
liyunfei
b615f17aaf Add BiSheng Autotuner support
Signed-off-by: liyunfei <liyunfei33@huawei.com>
2024-08-20 19:28:12 +08:00
openeuler-ci-bot
c84aa44c85
!6 Add toolchain_clang build support
From: @liyunfei33 
Reviewed-by: @cf-zhao 
Signed-off-by: @cf-zhao
2024-07-15 03:30:58 +00:00
liyunfei
bb2b4f646a Add toolchain_clang build support
Signed-off-by: liyunfei <liyunfei33@huawei.com>
2024-07-08 11:44:59 +08:00
openeuler-ci-bot
30c310c9ea
!5 Update to 17.0.6
From: @zj94 
Reviewed-by: @cf-zhao 
Signed-off-by: @cf-zhao
2024-01-05 07:21:24 +00:00
zhoujing
7f80606b2c Update to 17.0.6
1. Enable check-mlir
2. Add python3-mlir package
2024-01-05 14:44:47 +08:00
7 changed files with 142 additions and 190 deletions

View File

@ -1,134 +0,0 @@
From 9deba96d8f15d948e92c49e40a671fbedc328457 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@moritz.systems>
Date: Tue, 2 Feb 2021 13:09:45 -0600
Subject: [PATCH 1/2] [PATCH][mlir] Support building MLIR standalone
Add the necessary bits to CMakeLists to make it possible to configure
MLIR against installed LLVM, and build it with minimal need for LLVM
source tree. The latter is only necessary to run unittests, and if it
is missing then unittests are skipped with a warning.
This change includes the necessary changes to tests, in particular
adding some missing substitutions and defining missing variables
for lit.site.cfg.py substitution.
Reviewed By: stephenneuendorffer
Differential Revision: https://reviews.llvm.org/D85464
Co-authored-by: Isuru Fernando <isuruf@gmail.com>
---
mlir/CMakeLists.txt | 33 ++++++++++++++++++++++++++++++++-
mlir/cmake/modules/AddMLIR.cmake | 1 +
mlir/test/CMakeLists.txt | 5 ++++-
mlir/test/lit.cfg.py | 4 ++++
4 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index cbae5fd..baacbdd3 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -1,10 +1,37 @@
# MLIR project.
+
+# Check if MLIR is built as a standalone project.
+if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+ project(mlir)
+ cmake_minimum_required(VERSION 3.13.4)
+
+ find_package(LLVM CONFIG REQUIRED)
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${LLVM_CMAKE_DIR})
+ include(HandleLLVMOptions)
+ include(AddLLVM)
+ include(TableGen)
+
+ include_directories(${LLVM_INCLUDE_DIRS})
+
+ set(LLVM_MAIN_SRC_DIR ${CMAKE_SOURCE_DIR}/../llvm CACHE PATH
+ "Path to LLVM source tree")
+ set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
+ if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h)
+ add_subdirectory(${UNITTEST_DIR} utils/unittest)
+ endif()
+
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
+ "${CMAKE_CURRENT_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}")
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
+endif()
+
set(MLIR_MAIN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
set(MLIR_MAIN_INCLUDE_DIR ${MLIR_MAIN_SRC_DIR}/include )
set(MLIR_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(MLIR_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(MLIR_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include)
+set(MLIR_TOOLS_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
@@ -106,7 +133,11 @@ add_subdirectory(lib)
add_subdirectory(lib/CAPI)
if (MLIR_INCLUDE_TESTS)
add_definitions(-DMLIR_INCLUDE_TESTS)
- add_subdirectory(unittests)
+ if (TARGET gtest)
+ add_subdirectory(unittests)
+ else()
+ message(WARNING "gtest not found, unittests will not be available")
+ endif()
add_subdirectory(test)
endif()
if (MLIR_INCLUDE_INTEGRATION_TESTS)
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 4cfd351..4a814ea 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -2,6 +2,7 @@ function(mlir_tablegen ofn)
tablegen(MLIR ${ARGV})
set(TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT} ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
PARENT_SCOPE)
+ include_directories(${CMAKE_CURRENT_BINARY_DIR})
endfunction()
# Declare a dialect in the include directory
diff --git a/mlir/test/CMakeLists.txt b/mlir/test/CMakeLists.txt
index 293d932..5feedd5 100644
--- a/mlir/test/CMakeLists.txt
+++ b/mlir/test/CMakeLists.txt
@@ -43,7 +43,6 @@ configure_lit_site_cfg(
set(MLIR_TEST_DEPENDS
FileCheck count not
- MLIRUnitTests
mlir-capi-ir-test
mlir-capi-pass-test
mlir-cpu-runner
@@ -61,6 +60,10 @@ set(MLIR_TEST_DEPENDS
mlir_async_runtime
)
+if(TARGET gtest)
+ list(APPEND MLIR_TEST_DEPENDS MLIRUnitTests)
+endif()
+
if(LLVM_BUILD_EXAMPLES)
list(APPEND MLIR_TEST_DEPENDS
toyc-ch1
diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py
index 482513b..bff47851 100644
--- a/mlir/test/lit.cfg.py
+++ b/mlir/test/lit.cfg.py
@@ -61,6 +61,10 @@ tools = [
'mlir-capi-ir-test',
'mlir-capi-pass-test',
'mlir-edsc-builder-api-test',
+ 'mlir-cpu-runner',
+ 'mlir-linalg-ods-gen',
+ 'mlir-reduce',
+ 'mlir-sdbm-api-test',
]
# The following tools are optional
--
1.8.3.1

View File

@ -1,28 +0,0 @@
From e09b298273994b20cc8747765a567d716e241fd2 Mon Sep 17 00:00:00 2001
From: Isuru Fernando <isuruf@gmail.com>
Date: Thu, 4 Feb 2021 01:59:08 +0000
Subject: [PATCH 2/2] [PATCH][mlir] Fix building unittests in in-tree build
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D95978
---
mlir/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt
index baacbdd3..5d21312 100644
--- a/mlir/CMakeLists.txt
+++ b/mlir/CMakeLists.txt
@@ -133,7 +133,7 @@ add_subdirectory(lib)
add_subdirectory(lib/CAPI)
if (MLIR_INCLUDE_TESTS)
add_definitions(-DMLIR_INCLUDE_TESTS)
- if (TARGET gtest)
+ if (EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h)
add_subdirectory(unittests)
else()
message(WARNING "gtest not found, unittests will not be available")
--
1.8.3.1

View File

@ -1,10 +1,22 @@
%global maj_ver 12 %bcond_without check
%global min_ver 0 %bcond_without toolchain_clang
%global patch_ver 1
%global mlir_version %{maj_ver}.%{min_ver}.%{patch_ver}
%global pkg_name llvm-mlir%{maj_ver} %if %{with toolchain_clang}
%global install_prefix %{_libdir}/llvm%{maj_ver} %global toolchain clang
%endif
%global maj_ver 18
%global min_ver 1
%global patch_ver 8
%global mlir_version %{maj_ver}.%{min_ver}.%{patch_ver}
%global mlir_srcdir mlir-%{mlir_version}%{?rc_ver:rc%{rc_ver}}.src
%global _scl_prefix /opt/openEuler
%{?scl:%scl_package %scl}
%{!?scl:%global scl_prefix llvm-toolset-%{maj_ver}-}
%{!?scl:%global pkg_name %{name}}
%global install_prefix %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_prefix}
%global install_datadir %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_datadir}
%global install_bindir %{install_prefix}/bin %global install_bindir %{install_prefix}/bin
%if 0%{?__isa_bits} == 64 %if 0%{?__isa_bits} == 64
@ -14,19 +26,27 @@
%endif %endif
%global install_includedir %{install_prefix}/include %global install_includedir %{install_prefix}/include
Name: %{pkg_name} Name: %{?scl_prefix}llvm-mlir
Version: %{mlir_version} Version: %{mlir_version}
Release: 1 Release: 1
Summary: The MLIR project is a novel approach to building reusable and extensible compiler infrastructure. Summary: The MLIR project is a novel approach to building reusable and extensible compiler infrastructure.
License: Apache 2.0 License: Apache-2.0
URL: https://mlir.llvm.org/ URL: https://mlir.llvm.org/
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/llvm-project-%{version}.src.tar.xz
Patch0: 0001-PATCH-mlir-Support-building-MLIR-standalone.patch
Patch1: 0002-PATCH-mlir-Fix-building-unittests-in-in-tree-build.patch
Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{mlir_version}/%{mlir_srcdir}.tar.xz
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{mlir_version}/%{mlir_srcdir}.tar.xz.sig
BuildRequires: clang
BuildRequires: gcc gcc-c++ cmake ninja-build zlib-devel python3-lit BuildRequires: gcc gcc-c++ cmake ninja-build zlib-devel python3-lit
BuildRequires: llvm%{maj_ver}-devel = %{version} BuildRequires: %{?scl_prefix}llvm-devel = %{version}
BuildRequires: llvm%{maj_ver}-test = %{version} BuildRequires: %{?scl_prefix}llvm-googletest = %{version}
BuildRequires: %{?scl_prefix}llvm-test = %{version}
BuildRequires: %{?scl_prefix}llvm-cmake-utils = %{version}
BuildRequires: python3-devel
BuildRequires: python3-numpy
BuildRequires: python3-pybind11
BuildRequires: python3-pyyaml
%description %description
The MLIR project is a novel approach to building reusable and extensible compiler infrastructure. The MLIR project is a novel approach to building reusable and extensible compiler infrastructure.
@ -36,37 +56,67 @@ existing compilers together.
%package static %package static
Summary: MLIR static files Summary: MLIR static files
Requires: %{name} = %{version} Requires: %{pkg_name} = %{version}
%description static %description static
MLIR static files. MLIR static files.
%package devel %package devel
Summary: MLIR development files Summary: MLIR development files
Requires: %{name} = %{version}-%{release} Requires: %{pkg_name} = %{version}-%{release}
Requires: %{name}-static = %{version}-%{release} Requires: %{pkg_name}-static = %{version}-%{release}
%description devel %description devel
MLIR development files. MLIR development files.
%package -n python3-mlir
Summary: MLIR python bindings
Requires: python3
Requires: python3-numpy
%description -n python3-mlir
%{summary}
%prep %prep
%autosetup -n llvm-project-%{version}.src/mlir -p2 %autosetup -n %{mlir_srcdir} -p2
# remove all but keep mlir
find ../* -maxdepth 0 ! -name "mlir" -exec rm -rf {} +
%build %build
%cmake -G Ninja \ %cmake -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_SKIP_RPATH=ON \ -DCMAKE_SKIP_RPATH=ON \
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DCMAKE_PREFIX_PATH=%{install_libdir}/cmake/llvm/ \ -DCMAKE_PREFIX_PATH=%{install_libdir}/cmake/llvm/ \
-DLLVM_EXTERNAL_LIT=%{install_bindir}/lit \
-DLLVM_THIRD_PARTY_DIR=%{install_datadir}/llvm/src/utils \
-DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \
-DLLVM_BUILD_UTILS:BOOL=ON \ -DLLVM_BUILD_UTILS:BOOL=ON \
-DLLVM_LIBRARY_OUTPUT_INTDIR="." \
-DLLVM_SHLIB_OUTPUT_INTDIR="%{_builddir}/%{mlir_srcdir}/lib/ExecutionEngine/" \
-DMLIR_INCLUDE_DOCS:BOOL=ON \ -DMLIR_INCLUDE_DOCS:BOOL=ON \
-DMLIR_INCLUDE_TESTS:BOOL=OFF \ -DMLIR_INCLUDE_TESTS:BOOL=ON \
-DMLIR_INCLUDE_INTEGRATION_TESTS:BOOL=OFF \ -DMLIR_INCLUDE_INTEGRATION_TESTS:BOOL=OFF \
-DBUILD_SHARED_LIBS=OFF \ -DBUILD_SHARED_LIBS=OFF \
-DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF \
-DMLIR_BUILD_MLIR_C_DYLIB=ON \
-DLLVM_EXTERNAL_LIT=%{_bindir}/lit \
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \
%if "%{toolchain}" == "clang"
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
%endif
%ifarch aarch64 %ix86 ppc64le x86_64
-DLLVM_PARALLEL_LINK_JOBS=1 \
%endif
%ifarch %ix86
-DMLIR_RUN_X86VECTOR_TESTS:BOOL=OFF \
%endif
-DMLIR_ENABLE_BINDINGS_PYTHON:BOOL=ON \
%if 0%{?__isa_bits} == 64
-DLLVM_LIBDIR_SUFFIX=64 \ -DLLVM_LIBDIR_SUFFIX=64 \
%else
-DLLVM_LIBDIR_SUFFIX= \
%endif
%ifarch %ix86 x86_64 %ifarch %ix86 x86_64
-DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_TARGETS_TO_BUILD="X86"
%endif %endif
@ -79,34 +129,94 @@ find ../* -maxdepth 0 ! -name "mlir" -exec rm -rf {} +
%install %install
%ninja_install %ninja_install
mkdir -p %{buildroot}/%{python3_sitearch}
mv %{buildroot}%{install_prefix}/python_packages/mlir_core/mlir %{buildroot}/%{python3_sitearch}/mlir
# These directories should be empty now.
rmdir %{buildroot}%{install_prefix}/python_packages/mlir_core %{buildroot}%{install_prefix}/python_packages
# Unneeded files.
rm -rf %{buildroot}%{install_prefix}/src/python
%if %{with check}
%check %check
# TODO: Investigate the following issues.
rm -rf test/mlir-pdll-lsp-server/compilation_database.test
rm -rf test/mlir-pdll-lsp-server/completion.test
rm -rf test/mlir-pdll-lsp-server/definition-split-file.test
rm -rf test/mlir-pdll-lsp-server/definition.test
rm -rf test/mlir-pdll-lsp-server/document-links.test
rm -rf test/mlir-pdll-lsp-server/document-symbols.test
rm -rf test/mlir-pdll-lsp-server/exit-eof.test
rm -rf test/mlir-pdll-lsp-server/exit-with-shutdown.test
rm -rf test/mlir-pdll-lsp-server/exit-without-shutdown.test
rm -rf test/mlir-pdll-lsp-server/hover.test
rm -rf test/mlir-pdll-lsp-server/initialize-params-invalid.test
rm -rf test/mlir-pdll-lsp-server/initialize-params.test
rm -rf test/mlir-pdll-lsp-server/inlay-hints.test
rm -rf test/mlir-pdll-lsp-server/references.test
rm -rf test/mlir-pdll-lsp-server/signature-help.test
rm -rf test/mlir-pdll-lsp-server/textdocument-didchange.test
rm -rf test/mlir-pdll-lsp-server/view-output.test
rm -rf test/mlir-tblgen/directive-common.td
rm -rf test/mlir-tblgen/llvm-intrinsics.td
rm -rf test/tblgen-lsp-server/document-links.test
rm -rf test/tblgen-lsp-server/hover.test
# build process .exe tools normally use rpath or static linkage # build process .exe tools normally use rpath or static linkage
%cmake_build --target check-mlir || true export LD_LIBRARY_PATH=%{buildroot}/%{install_libdir}:%{buildroot}/%{python3_sitearch}/mlir/_mlir_libs
export PYTHONPATH=%{buildroot}/%{python3_sitearch}
%ninja_build check-mlir
%endif
%files %files
%license LICENSE.TXT %license LICENSE.TXT
%{install_libdir}/libMLIR*.so.* %{install_libdir}/libMLIR*.so.*
%{install_libdir}/libmlir_arm_runner_utils.so.%{maj_ver}*
%{install_libdir}/libmlir_arm_sme_abi_stubs.so.%{maj_ver}*
%{install_libdir}/libmlir_runner_utils.so.* %{install_libdir}/libmlir_runner_utils.so.*
%{install_libdir}/libmlir_c_runner_utils.so.* %{install_libdir}/libmlir_c_runner_utils.so.*
%{install_libdir}/libmlir_float16_utils.so.%{maj_ver}*
%{install_libdir}/libmlir_async_runtime.so.* %{install_libdir}/libmlir_async_runtime.so.*
%files static %files static
%{install_libdir}/libMLIR*.a %{install_libdir}/libMLIR*.a
%{install_libdir}/libmlir_c_runner_utils_static.a
%files devel %files devel
%{install_bindir}/mlir-tblgen %{install_bindir}/mlir-tblgen
%{install_bindir}/mlir-pdll
%{install_libdir}/libMLIR*.so %{install_libdir}/libMLIR*.so
%{install_bindir}/tblgen-to-irdl
%{install_libdir}/libmlir_arm_runner_utils.so
%{install_libdir}/libmlir_arm_sme_abi_stubs.so
%{install_libdir}/libmlir_runner_utils.so %{install_libdir}/libmlir_runner_utils.so
%{install_libdir}/libmlir_c_runner_utils.so %{install_libdir}/libmlir_c_runner_utils.so
%{install_libdir}//libmlir_async_runtime.so %{install_libdir}/libmlir_float16_utils.so
%{install_libdir}/libmlir_async_runtime.so
%{install_includedir}/mlir %{install_includedir}/mlir
%{install_includedir}/mlir-c %{install_includedir}/mlir-c
%{install_libdir}/cmake/mlir %{install_libdir}/cmake/mlir
%files -n python3-mlir
%{python3_sitearch}/mlir/
%changelog %changelog
* Fri Jul 7 2023 cf-zhao <zhaochuanfeng@huawei.com> - 12.0.1-1 * Fri Dec 6 2024 liyunfei <liyunfei33@huawei.com> - 18.1.8-1
- Change the install folder - init for Multi-Version LLVM-18.1.8
* Mon Nov 11 2024 Funda Wang <fundawang@yeah.net> - 17.0.6-4
- adopt to new cmake macro
* Tue Aug 20 2024 liyunfei <liyunfei33@huawei.com> - 17.0.6-3
- Add BiSheng Autotuner support.
* Fri Jul 5 2024 liyunfei <liyunfei33@huawei.com> - 17.0.6-2
- Add toolchain_clang build support
* Sun Jun 25 2023 zhoujing <zhoujing106@huawei.com> - 17.0.6-1
- Update to 17.0.6
* Sun Jun 25 2023 cf-zhao <zhaochuanfeng@huawei.com> - 15.0.7-1
- Update to 15.0.7
* Wed Nov 16 2022 liyancheng <412998149@qq.com> - 12.0.1-0 * Wed Nov 16 2022 liyancheng <412998149@qq.com> - 12.0.1-0
- Type:Init - Type:Init

4
llvm-mlir.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: github
src_repo: llvm/llvm-project
tag_prefix: ^llvmorg-
separator: .

Binary file not shown.

BIN
mlir-18.1.8.src.tar.xz Normal file

Binary file not shown.

BIN
mlir-18.1.8.src.tar.xz.sig Normal file

Binary file not shown.