llvm-core/mlir: Add 21.1.2

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2025-09-24 04:30:03 +02:00
parent e2dead2a90
commit 94cdd4df9d
2 changed files with 229 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
DIST llvm-project-21.1.1.src.tar.xz 158891056 BLAKE2B 5801ba4ea64e9c55fd1e6a83e1ea463cfb1d2b12c1f25a488ca63fd88254f20388c5e986492e413d795306bc37782487b80485240939227f3beeea860091825c SHA512 a120895e75942d848cc763fd1cb4aeb184e9d4509d69064e8e3f5679fbeb09c73bf916e33d04b842778537d2331067ec9190e0ad75d591d3ba57871770e19bce
DIST llvm-project-21.1.1.src.tar.xz.sig 438 BLAKE2B 8fdf614e67e31382c65d70a551ef94893b8e4914e855fa96fc3a4a0a4ac916d646758be1c1c9a74028acd776d5d93b77f678d29dc75179ae95909d525d263c85 SHA512 1b9a2c51feaca75ef2f82a89c8e8d741a0b5f05f0dd8ca244d6997deb00f8ded3c37a5cbc6012a4ba8632004383ab4677756d9defe8855fff458e02380d77bd5
DIST llvm-project-21.1.2.src.tar.xz 158926856 BLAKE2B 1b5684586297ad637c6da0976854b24d746679e9d125a19e321dc28fa7f83949cc431f4b630e4976496660389e7abac09962c21e45b88dff7d0900ee1bda51d7 SHA512 f810ba8706872257715c05f80c304ceb396cf38b3a8e0bfb50e474e8d0a3417740b9afea170a7c06a33927037753a190471917e83d6740cb18bc50fd50cf4f3d
DIST llvm-project-21.1.2.src.tar.xz.sig 566 BLAKE2B 6209caf851c681e6f63ed1bd9589ac139c104d6ee21f463aacda472e30a847c32f3bd74a04208af05bb6203d8fa31bdc0028c0e72736a3037940e75eda615415 SHA512 dd8aa57451752a9207c276117a4b8a86f41263ea3ccc4fa198cd40d6fec79acd0ba126c4b84a1acbb52bbb2bce029fbc336deac8131be94747dd04e4a0f69331
DIST llvm-project-70bd610e43853d575e22be1cda46614fe9f0072f.tar.gz 247904536 BLAKE2B f0ae7bd39d921ce28adb6e2aadd8b2b94ba7a48ba344ea6ea236b2507430fb1a0e23cd6186d79d445de31d46580e2ac9ec400fc686cd9a7513e0ae2d0f479c1d SHA512 1201acbcec20d00979e7f06075756926161123cfb11da146a3bfa5c81d607b61d94c645d0abba839614cbe5d44cacb0b1c754e1ae49fa871cb86d9f6d7c70e26
DIST llvm-project-f059d2bac034acca39ad60a1b13aaec6afa0a3d6.tar.gz 248627883 BLAKE2B e1603ba38fcf70e7f3794a30a42057d0052a422bd0aaf423c65d1fd8f9ec7d3981cd651f309dc3ab5c28183291241732373b9bdb75fc2a11fc8d9f238388b8c3 SHA512 63a1627a8b3cc8f240cefe2066d7e306cab5091317f97dd808b9ad887d4e6eb2d21af3f79bccfdb9387f5f7a5ed0b772013b0261a647c8d50ffaa55914362dfb

View File

@@ -0,0 +1,227 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{11..14} )
inherit cmake llvm.org multilib-minimal python-any-r1
DESCRIPTION="Multi-Level Intermediate Representation (library only)"
HOMEPAGE="https://mlir.llvm.org/"
LICENSE="Apache-2.0-with-LLVM-exceptions"
SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
KEYWORDS="~amd64 ~arm64"
IUSE="debug test"
RESTRICT="!test? ( test )"
DEPEND="
~llvm-core/llvm-${PV}[debug=,${MULTILIB_USEDEP}]
"
RDEPEND="
${DEPEND}
"
BDEPEND="
${PYTHON_DEPS}
llvm-core/llvm:${LLVM_MAJOR}
test? (
$(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]')
)
"
LLVM_COMPONENTS=( mlir cmake )
# tablegen tests use *.td files there
LLVM_TEST_COMPONENTS=( llvm/include )
llvm.org_set_globals
python_check_deps() {
if use test; then
python_has_version "dev-python/lit[${PYTHON_USEDEP}]"
fi
}
src_prepare() {
llvm.org_src_prepare
# https://github.com/llvm/llvm-project/issues/120902
sed -i -e '/LINK_LIBS/s:PUBLIC:PRIVATE:' \
lib/ExecutionEngine/CMakeLists.txt || die
}
check_distribution_components() {
if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
local all_targets=() my_targets=() l
cd "${BUILD_DIR}" || die
while read -r l; do
if [[ ${l} == install-*-stripped:* ]]; then
l=${l#install-}
l=${l%%-stripped*}
case ${l} in
# meta-targets
mlir-libraries|distribution)
continue
;;
# dylib
MLIR)
;;
# installed test libraries
MLIRTestAnalysis|MLIRTestDialect|MLIRTestIR)
;;
# static libraries
MLIR*)
continue
;;
esac
all_targets+=( "${l}" )
fi
done < <(${NINJA} -t targets all)
while read -r l; do
my_targets+=( "${l}" )
done < <(get_distribution_components $"\n")
local add=() remove=()
for l in "${all_targets[@]}"; do
if ! has "${l}" "${my_targets[@]}"; then
add+=( "${l}" )
fi
done
for l in "${my_targets[@]}"; do
if ! has "${l}" "${all_targets[@]}"; then
remove+=( "${l}" )
fi
done
if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
eqawarn "get_distribution_components() is outdated!"
eqawarn " Add: ${add[*]}"
eqawarn "Remove: ${remove[*]}"
fi
cd - >/dev/null || die
fi
}
get_distribution_components() {
local sep=${1-;}
local out=(
mlir-cmake-exports
mlir-headers
# the dylib
MLIR
# shared libraries
mlir_arm_runner_utils
mlir_arm_sme_abi_stubs
mlir_async_runtime
mlir_c_runner_utils
mlir_float16_utils
mlir_runner_utils
# test libraries required by flang
MLIRTestAnalysis
MLIRTestDialect
MLIRTestIR
)
if multilib_is_native_abi; then
out+=(
# tools
mlir-linalg-ods-yaml-gen
mlir-lsp-server
mlir-opt
mlir-pdll
mlir-pdll-lsp-server
mlir-query
mlir-reduce
mlir-rewrite
mlir-runner
mlir-tblgen
mlir-translate
tblgen-lsp-server
tblgen-to-irdl
)
fi
printf "%s${sep}" "${out[@]}"
}
multilib_src_configure() {
local mycmakeargs=(
-DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
-DLLVM_ROOT="${ESYSROOT}/usr/lib/llvm/${LLVM_MAJOR}"
-DBUILD_SHARED_LIBS=OFF
# this controls building libMLIR.so
-DLLVM_BUILD_LLVM_DYLIB=ON
-DMLIR_BUILD_MLIR_C_DYLIB=OFF
-DMLIR_LINK_MLIR_DYLIB=ON
-DMLIR_INCLUDE_TESTS=ON
-DMLIR_INCLUDE_INTEGRATION_TESTS=OFF
-DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
# this enables installing mlir-tblgen and mlir-pdll
-DLLVM_BUILD_UTILS=ON
-DPython3_EXECUTABLE="${PYTHON}"
-DLLVM_BUILD_TOOLS=ON
# TODO
-DMLIR_ENABLE_CUDA_RUNNER=0
-DMLIR_ENABLE_ROCM_RUNNER=0
-DMLIR_ENABLE_SYCL_RUNNER=0
-DMLIR_ENABLE_SPIRV_CPU_RUNNER=0
-DMLIR_ENABLE_VULKAN_RUNNER=0
-DMLIR_ENABLE_BINDINGS_PYTHON=0
-DMLIR_INSTALL_AGGREGATE_OBJECTS=OFF
)
use test && mycmakeargs+=(
-DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
-DLLVM_LIT_ARGS="$(get_lit_flags)"
)
# LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
cmake_src_configure
multilib_is_native_abi && check_distribution_components
}
multilib_src_compile() {
cmake_build distribution
}
multilib_src_test() {
local known_xfail=()
case ${ABI} in
arm|ppc|x86)
known_xfail+=(
# MLIR is full of 64-bit assumptions, sigh
# https://github.com/llvm/llvm-project/issues/124541
Conversion/MemRefToLLVM/memref-to-llvm.mlir
Dialect/Bufferization/Transforms/one-shot-bufferize-pass-statistics.mlir
Dialect/LLVMIR/sroa-statistics.mlir
Dialect/Linalg/vectorize-tensor-extract.mlir
Dialect/MemRef/mem2reg-statistics.mlir
Dialect/Tensor/fold-tensor-subset-ops.mlir
Dialect/Tensor/tracking-listener.mlir
Pass/pipeline-stats-nested.mlir
Pass/pipeline-stats.mlir
)
;;
esac
# respect TMPDIR!
local -x LIT_PRESERVES_TMP=1
local -x LIT_XFAIL="${known_xfail[*]}"
LIT_XFAIL=${LIT_XFAIL// /;}
cmake_build check-mlir
}
multilib_src_install() {
DESTDIR=${D} cmake_build install-distribution
}