Compare commits
No commits in common. "81cc0f1456d555745681d1296f0c7d1a93568b89" and "e7903f30c4968c1179eeffeb319c3ca4db79ba88" have entirely different histories.
81cc0f1456
...
e7903f30c4
134
0001-PATCH-mlir-Support-building-MLIR-standalone.patch
Normal file
134
0001-PATCH-mlir-Support-building-MLIR-standalone.patch
Normal file
@ -0,0 +1,134 @@
|
||||
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
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
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
|
||||
|
||||
162
llvm-mlir.spec
162
llvm-mlir.spec
@ -1,22 +1,10 @@
|
||||
%bcond_without check
|
||||
%bcond_without toolchain_clang
|
||||
|
||||
%if %{with toolchain_clang}
|
||||
%global toolchain clang
|
||||
%endif
|
||||
|
||||
%global maj_ver 18
|
||||
%global min_ver 1
|
||||
%global patch_ver 8
|
||||
%global maj_ver 12
|
||||
%global min_ver 0
|
||||
%global patch_ver 1
|
||||
%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 pkg_name llvm-mlir%{maj_ver}
|
||||
%global install_prefix %{_libdir}/llvm%{maj_ver}
|
||||
|
||||
%global install_bindir %{install_prefix}/bin
|
||||
%if 0%{?__isa_bits} == 64
|
||||
@ -26,27 +14,19 @@
|
||||
%endif
|
||||
%global install_includedir %{install_prefix}/include
|
||||
|
||||
Name: %{?scl_prefix}llvm-mlir
|
||||
Name: %{pkg_name}
|
||||
Version: %{mlir_version}
|
||||
Release: 1
|
||||
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/
|
||||
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: %{?scl_prefix}llvm-devel = %{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
|
||||
BuildRequires: llvm%{maj_ver}-devel = %{version}
|
||||
BuildRequires: llvm%{maj_ver}-test = %{version}
|
||||
|
||||
%description
|
||||
The MLIR project is a novel approach to building reusable and extensible compiler infrastructure.
|
||||
@ -56,67 +36,37 @@ existing compilers together.
|
||||
|
||||
%package static
|
||||
Summary: MLIR static files
|
||||
Requires: %{pkg_name} = %{version}
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description static
|
||||
MLIR static files.
|
||||
|
||||
%package devel
|
||||
Summary: MLIR development files
|
||||
Requires: %{pkg_name} = %{version}-%{release}
|
||||
Requires: %{pkg_name}-static = %{version}-%{release}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}-static = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
MLIR development files.
|
||||
|
||||
%package -n python3-mlir
|
||||
Summary: MLIR python bindings
|
||||
Requires: python3
|
||||
Requires: python3-numpy
|
||||
|
||||
%description -n python3-mlir
|
||||
%{summary}
|
||||
|
||||
%prep
|
||||
%autosetup -n %{mlir_srcdir} -p2
|
||||
%autosetup -n llvm-project-%{version}.src/mlir -p2
|
||||
# remove all but keep mlir
|
||||
find ../* -maxdepth 0 ! -name "mlir" -exec rm -rf {} +
|
||||
|
||||
%build
|
||||
%cmake -G Ninja \
|
||||
%cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_SKIP_RPATH=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=%{install_prefix} \
|
||||
-DLLVM_LINK_LLVM_DYLIB:BOOL=ON \
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
||||
-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_LIBRARY_OUTPUT_INTDIR="." \
|
||||
-DLLVM_SHLIB_OUTPUT_INTDIR="%{_builddir}/%{mlir_srcdir}/lib/ExecutionEngine/" \
|
||||
-DMLIR_INCLUDE_DOCS:BOOL=ON \
|
||||
-DMLIR_INCLUDE_TESTS:BOOL=ON \
|
||||
-DMLIR_INCLUDE_TESTS:BOOL=OFF \
|
||||
-DMLIR_INCLUDE_INTEGRATION_TESTS:BOOL=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 \
|
||||
%else
|
||||
-DLLVM_LIBDIR_SUFFIX= \
|
||||
%endif
|
||||
%ifarch %ix86 x86_64
|
||||
-DLLVM_TARGETS_TO_BUILD="X86"
|
||||
%endif
|
||||
@ -129,94 +79,34 @@ Requires: python3-numpy
|
||||
%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
|
||||
# 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
|
||||
export LD_LIBRARY_PATH=%{buildroot}/%{install_libdir}:%{buildroot}/%{python3_sitearch}/mlir/_mlir_libs
|
||||
export PYTHONPATH=%{buildroot}/%{python3_sitearch}
|
||||
%ninja_build check-mlir
|
||||
%endif
|
||||
%cmake_build --target check-mlir || true
|
||||
|
||||
%files
|
||||
%license LICENSE.TXT
|
||||
%{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_c_runner_utils.so.*
|
||||
%{install_libdir}/libmlir_float16_utils.so.%{maj_ver}*
|
||||
%{install_libdir}/libmlir_async_runtime.so.*
|
||||
|
||||
%files static
|
||||
%{install_libdir}/libMLIR*.a
|
||||
%{install_libdir}/libmlir_c_runner_utils_static.a
|
||||
|
||||
%files devel
|
||||
%{install_bindir}/mlir-tblgen
|
||||
%{install_bindir}/mlir-pdll
|
||||
%{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_c_runner_utils.so
|
||||
%{install_libdir}/libmlir_float16_utils.so
|
||||
%{install_libdir}/libmlir_async_runtime.so
|
||||
%{install_libdir}//libmlir_async_runtime.so
|
||||
%{install_includedir}/mlir
|
||||
%{install_includedir}/mlir-c
|
||||
%{install_libdir}/cmake/mlir
|
||||
|
||||
%files -n python3-mlir
|
||||
%{python3_sitearch}/mlir/
|
||||
|
||||
%changelog
|
||||
* Fri Dec 6 2024 liyunfei <liyunfei33@huawei.com> - 18.1.8-1
|
||||
- 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
|
||||
* Fri Jul 7 2023 cf-zhao <zhaochuanfeng@huawei.com> - 12.0.1-1
|
||||
- Change the install folder
|
||||
|
||||
* Wed Nov 16 2022 liyancheng <412998149@qq.com> - 12.0.1-0
|
||||
- Type:Init
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
version_control: github
|
||||
src_repo: llvm/llvm-project
|
||||
tag_prefix: ^llvmorg-
|
||||
separator: .
|
||||
BIN
llvm-project-12.0.1.src.tar.xz
Normal file
BIN
llvm-project-12.0.1.src.tar.xz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user