mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-03-19 00:21:40 +00:00
community/ldc to 1.23.0-3
This commit is contained in:
parent
75d3cbd641
commit
3631a5c4c3
2 changed files with 8 additions and 58 deletions
|
@ -13,9 +13,9 @@ groups=('dlang' 'dlang-ldc')
|
||||||
pkgver=1.23.0
|
pkgver=1.23.0
|
||||||
_pkgcommit=a83dc56ad5a6ba87023756c05b54b5824053da96
|
_pkgcommit=a83dc56ad5a6ba87023756c05b54b5824053da96
|
||||||
_dversion=2.093.1
|
_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
|
epoch=2
|
||||||
pkgrel=1
|
pkgrel=3
|
||||||
pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2"
|
pkgdesc="A D Compiler based on the LLVM Compiler Infrastructure including D runtime and libphobos2"
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url="https://github.com/ldc-developers/ldc"
|
url="https://github.com/ldc-developers/ldc"
|
||||||
|
@ -43,6 +43,11 @@ prepare() {
|
||||||
git config submodule.tests/d2/dmd-testsuite.url "$srcdir/ldc-testsuite"
|
git config submodule.tests/d2/dmd-testsuite.url "$srcdir/ldc-testsuite"
|
||||||
git submodule update
|
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()
|
# Set version used for path construction in getFullClangCompilerRTLibPath()
|
||||||
sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp
|
sed -i "s/ldc::llvm_version_base/\"$_clangversion\"/" driver/linker-gcc.cpp
|
||||||
}
|
}
|
||||||
|
@ -99,7 +104,7 @@ package_ldc() {
|
||||||
|
|
||||||
package_liblphobos() {
|
package_liblphobos() {
|
||||||
provides=('d-runtime' 'd-stdlib')
|
provides=('d-runtime' 'd-stdlib')
|
||||||
depends=('curl')
|
depends=('curl' 'llvm-libs')
|
||||||
options=('staticlibs')
|
options=('staticlibs')
|
||||||
|
|
||||||
cd "$srcdir/ldc/build"
|
cd "$srcdir/ldc/build"
|
||||||
|
|
|
@ -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
|
|
Loading…
Reference in a new issue