From 3631a5c4c325bd0fabf92d4f785236a8cecc6274 Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Tue, 10 Nov 2020 18:48:13 +0000 Subject: [PATCH] community/ldc to 1.23.0-3 --- community/ldc/PKGBUILD | 11 +++- .../ldc/fix-llvm_prefetch-for-LLVM-10.patch | 55 ------------------- 2 files changed, 8 insertions(+), 58 deletions(-) delete mode 100644 community/ldc/fix-llvm_prefetch-for-LLVM-10.patch diff --git a/community/ldc/PKGBUILD b/community/ldc/PKGBUILD index 3c6fbf6a4..049da3a1a 100644 --- a/community/ldc/PKGBUILD +++ b/community/ldc/PKGBUILD @@ -13,9 +13,9 @@ groups=('dlang' 'dlang-ldc') pkgver=1.23.0 _pkgcommit=a83dc56ad5a6ba87023756c05b54b5824053da96 _dversion=2.093.1 -_clangversion=10.0.1 # related to where ldc2 looks for compiler-rt sanitizers +_clangversion=11.0.0 # related to where ldc2 looks for compiler-rt sanitizers epoch=2 -pkgrel=1 +pkgrel=3 pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2" arch=('x86_64') url="https://github.com/ldc-developers/ldc" @@ -43,6 +43,11 @@ prepare() { git config submodule.tests/d2/dmd-testsuite.url "$srcdir/ldc-testsuite" git submodule update + # LLVM 11 support (https://github.com/ldc-developers/ldc/pull/3546) + git format-patch --stdout d33f6f9bbde8~..d33f6f9bbde8 \ + ':!.travis.yml' ':!runtime/phobos' | patch -Np1 + (cd runtime/phobos && git format-patch --stdout -1 788acc15d702 | patch -Np1) + # Set version used for path construction in getFullClangCompilerRTLibPath() sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp } @@ -99,7 +104,7 @@ package_ldc() { package_liblphobos() { provides=('d-runtime' 'd-stdlib') - depends=('curl') + depends=('curl' 'llvm-libs') options=('staticlibs') cd "$srcdir/ldc/build" diff --git a/community/ldc/fix-llvm_prefetch-for-LLVM-10.patch b/community/ldc/fix-llvm_prefetch-for-LLVM-10.patch deleted file mode 100644 index 5f8365c33..000000000 --- a/community/ldc/fix-llvm_prefetch-for-LLVM-10.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/src/core/simd.d b/src/core/simd.d -index c27dc4c1..7641c8a9 100644 ---- a/src/core/simd.d -+++ b/src/core/simd.d -@@ -84,6 +84,20 @@ version (LDC) - enum dataCache = 1; - llvm_prefetch(address, writeFetch, locality, dataCache); - } -+ -+ unittest -+ { -+ float[4] data = [ 0.5, 1, 1.5, 2 ]; -+ auto ptr = &data[0]; -+ -+ prefetch!(false, 0)(ptr); -+ auto v = loadUnaligned!float4(ptr); -+ v *= 2; -+ storeUnaligned!float4(v, ptr); -+ -+ float[4] expected = [ 1, 2, 3, 4 ]; -+ assert(data == expected); -+ } - } - else version (D_SIMD) - { -diff --git a/src/ldc/intrinsics.di b/src/ldc/intrinsics.di -index 914cd5e1..091b2aac 100644 ---- a/src/ldc/intrinsics.di -+++ b/src/ldc/intrinsics.di -@@ -129,6 +129,14 @@ pragma(LDC_intrinsic, "llvm.stacksave") - pragma(LDC_intrinsic, "llvm.stackrestore") - void llvm_stackrestore(void* ptr); - -+version(INTRINSICS_FROM_1000) -+{ -+ private enum llvm_prefetch_fullname = "llvm.prefetch.p0i8"; -+} -+else -+{ -+ private enum llvm_prefetch_fullname = "llvm.prefetch"; -+} - /// The 'llvm.prefetch' intrinsic is a hint to the code generator to insert a - /// prefetch instruction if supported; otherwise, it is a noop. Prefetches have - /// no effect on the behavior of the program but can change its performance -@@ -139,8 +147,8 @@ pragma(LDC_intrinsic, "llvm.stackrestore") - /// keep in cache. The cache type specifies whether the prefetch is performed on - /// the data (1) or instruction (0) cache. The rw, locality and cache type - /// arguments must be constant integers. --pragma(LDC_intrinsic, "llvm.prefetch") -- void llvm_prefetch(void* ptr, uint rw, uint locality, uint cachetype) pure @safe; -+pragma(LDC_intrinsic, llvm_prefetch_fullname) -+ void llvm_prefetch(const(void)* ptr, uint rw, uint locality, uint cachetype) pure @safe; - - /// The 'llvm.pcmarker' intrinsic is a method to export a Program Counter (PC) - /// in a region of code to simulators and other tools. The method is target