From 2891d29af8907ce881662f4a02844926d7a293c7 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 31 Dec 2018 13:43:35 +0000 Subject: gentoo resync : 31.12.2018 --- sys-devel/llvm/Manifest | 9 +- ...6DomainReassignment-from-creating-copies-.patch | 110 +++++++++ ...6DomainReassignment-from-creating-copies-.patch | 110 --------- sys-devel/llvm/llvm-6.0.1-r1.ebuild | 266 --------------------- sys-devel/llvm/llvm-6.0.1-r2.ebuild | 2 +- sys-devel/llvm/llvm-7.0.0-r1.ebuild | 264 -------------------- sys-devel/llvm/llvm-7.0.0.ebuild | 260 -------------------- 7 files changed, 113 insertions(+), 908 deletions(-) create mode 100644 sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch delete mode 100644 sys-devel/llvm/files/7.0.0/0001-X86-Stop-X86DomainReassignment-from-creating-copies-.patch delete mode 100644 sys-devel/llvm/llvm-6.0.1-r1.ebuild delete mode 100644 sys-devel/llvm/llvm-7.0.0-r1.ebuild delete mode 100644 sys-devel/llvm/llvm-7.0.0.ebuild (limited to 'sys-devel/llvm') diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest index f2d8a5a0198e..9427362e63f2 100644 --- a/sys-devel/llvm/Manifest +++ b/sys-devel/llvm/Manifest @@ -2,7 +2,7 @@ AUX 4.0.1/0001-cmake-Pass-Wl-z-nodelete-on-Linux-to-prevent-unloadi.patch 2408 B AUX 5.0.2/0001-Fix-return-type-in-ORC-readMem-client-interface.patch 1299 BLAKE2B 486ead622d4885f9e218a6fb44496ace574950e9946455050ffdde7bfac56c0893a5dc62fa6ffe6e8e18cdd706073454f8e1f2bc75a8ad98cf5246449ffe4df2 SHA512 3e17e72508242172c59547eaa2a8238bd145cfb888d4323818a943f075645b9bc5a272656e39f37d9f7997a16491b6a3a3b5c51101465369d8570a0d078cd335 AUX 6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch 1575 BLAKE2B 3a650b244c2b97fa6e76327348a7bb00ace08b18441a59af238ccf0cdea4409e2d0b46c0a381737d7d0879dbc5eb0f71007fee0c9f0f5b92369453223d25397d SHA512 f09bf2b2bbac1f875f32f8761697717fbbfda2939fcccb8b03ecb8e4e65377c875355a3523d54f81c53d11bfaf3557f80000918bea003cfdba0662469283563a AUX 6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch 13865 BLAKE2B 03f677e386115c3c7333db39664f75b2b4c22e18c2e487e515dc2a55acaa1bf569d2945ae620420b4b4323fb2e4fb7d3c3313dcc7e648942afa25d055d36efc7 SHA512 2820793ef29f08b55b7d94ef700085dce02c6a029c5877a77c5296e9a05dfc9946d10ee66d2d3d8a150cd511e3346d2acf259b873aeed25c1b0aaefebe95790d -AUX 7.0.0/0001-X86-Stop-X86DomainReassignment-from-creating-copies-.patch 4263 BLAKE2B f0b073f90968b008ce758a43f00a4268dad1037f949704f3d86741319b6972d1ad69bed0944152f21b837486404948c1f290babc90a4da5ac0c300f0d2a868ee SHA512 efcb4b4bf0320304df680e6b69d8db1e732539e6cde0d9f11566e00533ecf8383d1520edca0a69c96e1722b33dcc8bc33da23470faf59774724cedc9f522d9b1 +AUX 6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch 4263 BLAKE2B f0b073f90968b008ce758a43f00a4268dad1037f949704f3d86741319b6972d1ad69bed0944152f21b837486404948c1f290babc90a4da5ac0c300f0d2a868ee SHA512 efcb4b4bf0320304df680e6b69d8db1e732539e6cde0d9f11566e00533ecf8383d1520edca0a69c96e1722b33dcc8bc33da23470faf59774724cedc9f522d9b1 AUX 7.0.9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 2626 BLAKE2B 6c3afe6941568119b6bbce1c66be913a29a2ac7853a881804c1c22e981075f1677ca7e4744738ad858f58a58c1a7295aeb5f1d87b3a2b2adfb971a54d76c04fb SHA512 34a84427c34fa8886f55e05cf0ffce258cdee8e98190e070eb40dc555a30784c49ebe4f946f7ea51b7d00fceb8071fc745007250dc5b5a61c4d2bb9910672ec5 AUX 9999/0007-llvm-config-Clean-up-exported-values-update-for-shar.patch 1188 BLAKE2B 72311a8da991b9f3b98523baefe6f5b31aa7f9101c388f35484dd5f384a08e838ea42a17447ca17a0dfe6b7d3c20abbdf0e8afee72e8ad5d46ec38b8d55307c8 SHA512 0ada997db2a0eb875105fb212dc3fc3077b9c4f7804d78c33c4b1f512bf1267295f325153ae14c00404c86e576ae1c78a6aeb0a57d1d4525aabd1169c21806ef AUX 9999/musl-fixes.patch 1258 BLAKE2B fe275412bc908884239ea71de9a9ddf1d2f64debaa1a9ada18170195a7775c41571600ed3666343bf967aff5f9117900f73155f60de5077bc4584cfc2f782f53 SHA512 314dcbe846a66312c9f1634f4ff3f4670b3db1d3210bb550f1d3877a423333ba042da2e90c8736918a36be4d4faf58dab8d3236d4f26df5af7f7f019b0e0ec8f @@ -42,8 +42,6 @@ DIST llvm-5.0.2-manpages.tar.bz2 93977 BLAKE2B 8c5e8899e0df9d6037fb7d5c373de6492 DIST llvm-5.0.2.src.tar.xz 23451868 BLAKE2B b7082be2e4ad557b29b9f6869811f262adcf5c73d552faf91b339bede75cf5eab58afefa12fa779a38be71fe2b8f4ea297c3213ee4e8370cc01972c59249d91c SHA512 3588be5ed969c3f7f6f16f56a12a6af2814d3d3c960d4a36ffebb0446cc75f19220bccee7fc605f9b01f5d5c188a905a046193cc12dec42dd5922048b5c27fe1 DIST llvm-6.0.1-manpages.tar.bz2 102656 BLAKE2B 9088ca0bdda69f63354e61b7495df54505d5db2504bc61860a7260343722ec8cdd5e937d0843263a5bf5077b9cf386c337fa127039b996bab10d2ca5c2caeb59 SHA512 c468e97a2d5610aee9e72cb795e4e65375a079d733550f05380230fb44ba0ed67d407ad06e2340b66f13d19c06583b657e8d01fcdca2146ae43964cea309e0b3 DIST llvm-6.0.1.src.tar.xz 25306628 BLAKE2B 60232d4d22f8096b565cc8d81fea0639f24f14e8fc4f66ade69fa15479181f07f655f26dff3fa24bf105762b495da316c5c9352db234bd0af6b9c3fff6d4d881 SHA512 cbbb00eb99cfeb4aff623ee1a5ba075e7b5a76fc00c5f9f539ff28c108598f5708a0369d5bd92683def5a20c2fe60cab7827b42d628dbfcc79b57e0e91b84dd9 -DIST llvm-7.0.0-manpages.tar.bz2 121089 BLAKE2B b60f18ce65e8b5bc9122378f82f0edb85d3ddef06e03e39bab8f52afe3c1c74ae8adb39335fa437fb243df8b15c7a8563eb23bc28fd9f3070a33e4c93081b095 SHA512 42731538157edc92e281baf0f4f56ce2943f1ed47b5fcd0269f98d19a8fa1602d093a02d22847ea1b00b49bf60a5e273e91aec216d084c68c772672d1a702c43 -DIST llvm-7.0.0.src.tar.xz 28324368 BLAKE2B 10168ff9be8f68536db3b2263c85c1c98213ef03dc542b83628ff176542452582bc496bab236fdf40d4a6463a33f04b27f1458c072ad8b66b641f8df8d494046 SHA512 bdc9b851c158b17e1bbeb7ac5ae49821bfb1251a3826fe8a3932cd1a43f9fb0d620c3de67150c1d9297bf0b86fa917e75978da29c3f751b277866dc90395abec DIST llvm-7.0.1-manpages.tar.bz2 121157 BLAKE2B d209e292dde0b528bca6e6438eac83d3a762e83fb333fa075f973806ec802a19e24ec6f0212fffe4757257f2840a5f00960d121024db2d8ab8b99d95bb42b1da SHA512 56dce233d17c4c3c1e4860f31d30e227364c99f04527e8e8372f308e30d09a297ca21a37b4eb2eddab69bee88ef5867446affd1ccd5d7cb1c12d9c9002a1101c DIST llvm-7.0.1.src.tar.xz 28311056 BLAKE2B 737aa6144a415e41a4ff2c8bd5a727d6f14d7b1810c62cbefa5a25fe642c98cddf8a28e35c7e9783373aa3b96f5c0943229e229ad1b43e56e9ed6db0f27ab128 SHA512 ac43a3cb71a53deb55e3693653847cf20bf6f5d9056f224e6956c96d63bc59ebee9404f088eec9cabe65337b4607a905ef931354b373cf64e0004c6905a6b5df DIST llvm-manpages-4.0.1.tar.bz2 87981 BLAKE2B 79ffd254ee5c6e09159c954913ef820f74107d4fcea5e3ed82592dc36af8fdfbf1e850547ba8bfc20aa9a5ecdd26c50329e6a6d558ae3aa5475a930789ce3e01 SHA512 d5b3213567c25db58ef364d272314a79c311a80fc21d98c09a5540af45a8190a38f489228663fe9a9b63bf0f2b952c460c4196a8fc8d6f221619f6e7ed2fc415 @@ -54,11 +52,8 @@ EBUILD llvm-3.7.1-r3.ebuild 16385 BLAKE2B f29acd644207060f840d89ba9a85a16f337d18 EBUILD llvm-3.9.1-r1.ebuild 16317 BLAKE2B a4edb45656ae073f618d899787a339b0c5e7f8f0bab9a5030c33c85ba9761e9e510021b139aebc422902da55bf5b1ff2caf5c66604f338768eed359ad8bb84d5 SHA512 ee31d4f2612a413aafc906880ea4d7f06c276aa4a0dee9635ac9ec076539ee14c82ce4cc81cd689f6812ae74eaa421ca8648d3d143d5ec238aaf602692f99434 EBUILD llvm-4.0.1-r1.ebuild 6989 BLAKE2B cc642b77898de0b10ae66679acc9c76191abb11cba1d2f3f7a9682e46696e7cee876875e53cf9b20355c81a096e0bc65528b23946e49a913bb5fbdadfe2fcaad SHA512 81a34824986c8c77863a8eeff9bc6671870c2754c5f2d8770bd05853b10ba5617a2917354c9c35a49a934f318b37b6e176fd64ebc5ae95c289920eb56a3817ce EBUILD llvm-5.0.2.ebuild 7799 BLAKE2B 85d9788489be3d3efc7494329560a7886e56605b58d3f46b753ad31f61a3878df6b29bf2d27bae07b20ce70dcdc3fcb772523f05ba654daedc22488c317c336b SHA512 5d1a2f25328283a314dfeefac9fedba6008b0b1c1233bd72a9d8caf7e2c9db7ec73a5b95b9dfd0546ee108974b8b11b83f4267ac739f0a2554728f13bc6b6c32 -EBUILD llvm-6.0.1-r1.ebuild 8001 BLAKE2B b281d4212c5f96513d05291651a8e023da5b0e3c16a7f10e47265a3f4b09b7877d8b36b339a38b2f273959a2a632a5ee6ed3841719d5ff3a51e42769654f4575 SHA512 7eb6b8312260822241fa7973a243ed7250fcfb4436360d4e24a395dffb7d55da4999f99e96ff4255d132a8069c69a12baf8ab41ce4f32669a98516cda5d4f357 -EBUILD llvm-6.0.1-r2.ebuild 8173 BLAKE2B 381494516b516a196fe75d5f8f1d9301c714de296ed0ca5c718a74e4feaf5ab2ea25c93687702e4c891d913267ceff9f9eea2fc2ec558a157df4dd33f8d1360b SHA512 5ed3b531d6c9a94eb2a1e089b9a912de91a95f479864500107a7933f1161ca076efbb1f47370cb37620e4ba333f325bfccc7f35a55b582e7fa65b5413e8d808b +EBUILD llvm-6.0.1-r2.ebuild 8173 BLAKE2B 9b735e8161bf235b538e6ab375ea17b428cb5c3fe8e601579d934f303d9c63820c08d571e4cdf0bfe7170114e294addef772a08658ad2994ea1e93c5d5ef7647 SHA512 666cdef4c47272819e26a0cff741d5c0a173ce4dba56dd8c4d0409c522230ce80b07d80be577972e8001d82f11ea81c150dfc240e1f01001dc0bd90593c3a63e EBUILD llvm-6.0.1.ebuild 7824 BLAKE2B d816d77974b826836a9aced3387b6a3583859d15b7b8c83499b5f5eb04932ea89966af4b49ea5e2b320c997051891387dace2d2d84bde8f2c0d6f3b26fea55c8 SHA512 bc460c9e7bee704c2d814c9911398d5125196337f410489396a9254d79b2d421c2ca33ec350b3342bb073c761d2e180e73eb474281af3aca2194eb291ea223ed -EBUILD llvm-7.0.0-r1.ebuild 7895 BLAKE2B d4d0a7ab9dd697d6dc600f83236728eafbace4bb66a99fadc9c35b4db2ac02b7a5a98a956e3dd5e9dcc9fa8cbb48381ab40b8f25526b23754eeaeba04fbb71e8 SHA512 e7311fd5b78c17102c09bf4fe9dd641ec08908ca5f6dd77278cf44aff12f899a4dce3414fd17ff829f2690eb8f5725e2dc404df06b34d1be7ebe7145ead77e69 -EBUILD llvm-7.0.0.ebuild 7723 BLAKE2B 50b3f1954cc46c8db4678d32ae3b498f11850ea9136457699c893d2d2dc8fda94009050551d5762d281218b1ca655bf3751cdbb3f396c98d786deb86f1be42c9 SHA512 781f80c19abafe188d3103ba0d564a3046937fc3e60328eee13c5b11799f79968f4c5ee4a310951a1ef99f6f1825370f1219d026acca643982945e7015fd3123 EBUILD llvm-7.0.1.ebuild 7720 BLAKE2B a1a0f4e79ac4728c84f13801997dd49472d385c0df5eda400988480aacb2ed4e282db9ded6d2444135f9a2cf37dca9f05fe7974a02595c922ca42e2cecd7707b SHA512 1d1e17afe9153f96a18da9533a58b6543d8874a0bfac66ac603bcb078ee7af4f83ba5a4558e6827656e5aaf3a7f81518bfe0b6e0485dea6ef19ec0e5ca9adc61 EBUILD llvm-7.0.9999.ebuild 7410 BLAKE2B 1e55f001db2f018dbcf0b8eb268b4174a10e10cc0def90b37f462457bfce89c8f2001932770f07ad527e2a28d13aa0941ac962bf535a54076792646ae3340ca7 SHA512 f7e5966be7d4b688e48cd67faf87ea6ec2f1096c067db6958381b5cb2ddc923bf79eac922892d271283d99df9cb6889f4d442f7ecda9155d406d5003abaccaea EBUILD llvm-9999.ebuild 8533 BLAKE2B b77410643fbcfc2bbc9884ee13c40fb7bb262c4935301d9e09e02743117c654c246783121c06aa7e241ba5964012b917dbfb90f527f98291f176ec0388db5fd2 SHA512 44006ca5a022656b53fcc006f3e8adbc5828e183a69b2952bb556c580ea92d755b01ffedc8a4736b22ded70df8d51df0dcb5b906211503aaef7a97e715295232 diff --git a/sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch b/sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch new file mode 100644 index 000000000000..f38907cdd4c1 --- /dev/null +++ b/sys-devel/llvm/files/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch @@ -0,0 +1,110 @@ +From 72da952b396f43d2ce6ca20a0f0d75212fea6b28 Mon Sep 17 00:00:00 2001 +From: Craig Topper +Date: Mon, 1 Oct 2018 07:08:41 +0000 +Subject: [PATCH] [X86] Stop X86DomainReassignment from creating copies between + GR8/GR16 physical registers and k-registers. + +We can only copy between a k-register and a GR32/GR64 register. + +This patch detects that the copy will be illegal and prevents the domain reassignment from happening for that closure. + +This probably isn't the best fix, and we should probably figure out how to handle this correctly. + +Fixes PR38803. + +git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@343443 91177308-0d34-0410-b5e6-96231b3b80d8 +--- + lib/Target/X86/X86DomainReassignment.cpp | 21 +++++++++++ + test/CodeGen/X86/pr38803.ll | 48 ++++++++++++++++++++++++ + 2 files changed, 69 insertions(+) + create mode 100644 test/CodeGen/X86/pr38803.ll + +diff --git a/lib/Target/X86/X86DomainReassignment.cpp b/lib/Target/X86/X86DomainReassignment.cpp +index 5196446b39e..62588e9509d 100644 +--- a/lib/Target/X86/X86DomainReassignment.cpp ++++ b/lib/Target/X86/X86DomainReassignment.cpp +@@ -217,6 +217,27 @@ public: + InstrCOPYReplacer(unsigned SrcOpcode, RegDomain DstDomain, unsigned DstOpcode) + : InstrReplacer(SrcOpcode, DstOpcode), DstDomain(DstDomain) {} + ++ bool isLegal(const MachineInstr *MI, ++ const TargetInstrInfo *TII) const override { ++ if (!InstrConverterBase::isLegal(MI, TII)) ++ return false; ++ ++ // Don't allow copies to/flow GR8/GR16 physical registers. ++ // FIXME: Is there some better way to support this? ++ unsigned DstReg = MI->getOperand(0).getReg(); ++ if (TargetRegisterInfo::isPhysicalRegister(DstReg) && ++ (X86::GR8RegClass.contains(DstReg) || ++ X86::GR16RegClass.contains(DstReg))) ++ return false; ++ unsigned SrcReg = MI->getOperand(1).getReg(); ++ if (TargetRegisterInfo::isPhysicalRegister(SrcReg) && ++ (X86::GR8RegClass.contains(SrcReg) || ++ X86::GR16RegClass.contains(SrcReg))) ++ return false; ++ ++ return true; ++ } ++ + double getExtraCost(const MachineInstr *MI, + MachineRegisterInfo *MRI) const override { + assert(MI->getOpcode() == TargetOpcode::COPY && "Expected a COPY"); +diff --git a/test/CodeGen/X86/pr38803.ll b/test/CodeGen/X86/pr38803.ll +new file mode 100644 +index 00000000000..a1ca27d89b0 +--- /dev/null ++++ b/test/CodeGen/X86/pr38803.ll +@@ -0,0 +1,48 @@ ++; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ++; RUN: llc < %s -mcpu=skylake-avx512 -mtriple=x86_64-unknown-unknown | FileCheck %s ++ ++@b = local_unnamed_addr global i32 0, align 4 ++@c = local_unnamed_addr global i32 0, align 4 ++@d = local_unnamed_addr global float 0.000000e+00, align 4 ++ ++define float @_Z3fn2v() { ++; CHECK-LABEL: _Z3fn2v: ++; CHECK: # %bb.0: # %entry ++; CHECK-NEXT: pushq %rax ++; CHECK-NEXT: .cfi_def_cfa_offset 16 ++; CHECK-NEXT: callq _Z1av ++; CHECK-NEXT: # kill: def $al killed $al def $eax ++; CHECK-NEXT: kmovd %eax, %k1 ++; CHECK-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero ++; CHECK-NEXT: vmovss %xmm0, %xmm0, %xmm0 {%k1} {z} ++; CHECK-NEXT: cmpl $0, {{.*}}(%rip) ++; CHECK-NEXT: je .LBB0_2 ++; CHECK-NEXT: # %bb.1: # %if.then ++; CHECK-NEXT: vcvtsi2ssl {{.*}}(%rip), %xmm1, %xmm1 ++; CHECK-NEXT: kmovd %eax, %k1 ++; CHECK-NEXT: vxorps %xmm2, %xmm2, %xmm2 ++; CHECK-NEXT: vmovss %xmm2, %xmm0, %xmm1 {%k1} ++; CHECK-NEXT: vmovss %xmm1, {{.*}}(%rip) ++; CHECK-NEXT: .LBB0_2: # %if.end ++; CHECK-NEXT: popq %rax ++; CHECK-NEXT: .cfi_def_cfa_offset 8 ++; CHECK-NEXT: retq ++entry: ++ %call = tail call zeroext i1 @_Z1av() ++ %cond = select i1 %call, float 7.500000e-01, float 0.000000e+00 ++ %0 = load i32, i32* @c, align 4 ++ %tobool2 = icmp eq i32 %0, 0 ++ br i1 %tobool2, label %if.end, label %if.then ++ ++if.then: ; preds = %entry ++ %1 = load i32, i32* @b, align 4 ++ %2 = sitofp i32 %1 to float ++ %conv5 = select i1 %call, float 0.000000e+00, float %2 ++ store float %conv5, float* @d, align 4 ++ br label %if.end ++ ++if.end: ; preds = %entry, %if.then ++ ret float %cond ++} ++ ++declare zeroext i1 @_Z1av() +-- +2.19.0 + diff --git a/sys-devel/llvm/files/7.0.0/0001-X86-Stop-X86DomainReassignment-from-creating-copies-.patch b/sys-devel/llvm/files/7.0.0/0001-X86-Stop-X86DomainReassignment-from-creating-copies-.patch deleted file mode 100644 index f38907cdd4c1..000000000000 --- a/sys-devel/llvm/files/7.0.0/0001-X86-Stop-X86DomainReassignment-from-creating-copies-.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 72da952b396f43d2ce6ca20a0f0d75212fea6b28 Mon Sep 17 00:00:00 2001 -From: Craig Topper -Date: Mon, 1 Oct 2018 07:08:41 +0000 -Subject: [PATCH] [X86] Stop X86DomainReassignment from creating copies between - GR8/GR16 physical registers and k-registers. - -We can only copy between a k-register and a GR32/GR64 register. - -This patch detects that the copy will be illegal and prevents the domain reassignment from happening for that closure. - -This probably isn't the best fix, and we should probably figure out how to handle this correctly. - -Fixes PR38803. - -git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@343443 91177308-0d34-0410-b5e6-96231b3b80d8 ---- - lib/Target/X86/X86DomainReassignment.cpp | 21 +++++++++++ - test/CodeGen/X86/pr38803.ll | 48 ++++++++++++++++++++++++ - 2 files changed, 69 insertions(+) - create mode 100644 test/CodeGen/X86/pr38803.ll - -diff --git a/lib/Target/X86/X86DomainReassignment.cpp b/lib/Target/X86/X86DomainReassignment.cpp -index 5196446b39e..62588e9509d 100644 ---- a/lib/Target/X86/X86DomainReassignment.cpp -+++ b/lib/Target/X86/X86DomainReassignment.cpp -@@ -217,6 +217,27 @@ public: - InstrCOPYReplacer(unsigned SrcOpcode, RegDomain DstDomain, unsigned DstOpcode) - : InstrReplacer(SrcOpcode, DstOpcode), DstDomain(DstDomain) {} - -+ bool isLegal(const MachineInstr *MI, -+ const TargetInstrInfo *TII) const override { -+ if (!InstrConverterBase::isLegal(MI, TII)) -+ return false; -+ -+ // Don't allow copies to/flow GR8/GR16 physical registers. -+ // FIXME: Is there some better way to support this? -+ unsigned DstReg = MI->getOperand(0).getReg(); -+ if (TargetRegisterInfo::isPhysicalRegister(DstReg) && -+ (X86::GR8RegClass.contains(DstReg) || -+ X86::GR16RegClass.contains(DstReg))) -+ return false; -+ unsigned SrcReg = MI->getOperand(1).getReg(); -+ if (TargetRegisterInfo::isPhysicalRegister(SrcReg) && -+ (X86::GR8RegClass.contains(SrcReg) || -+ X86::GR16RegClass.contains(SrcReg))) -+ return false; -+ -+ return true; -+ } -+ - double getExtraCost(const MachineInstr *MI, - MachineRegisterInfo *MRI) const override { - assert(MI->getOpcode() == TargetOpcode::COPY && "Expected a COPY"); -diff --git a/test/CodeGen/X86/pr38803.ll b/test/CodeGen/X86/pr38803.ll -new file mode 100644 -index 00000000000..a1ca27d89b0 ---- /dev/null -+++ b/test/CodeGen/X86/pr38803.ll -@@ -0,0 +1,48 @@ -+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -+; RUN: llc < %s -mcpu=skylake-avx512 -mtriple=x86_64-unknown-unknown | FileCheck %s -+ -+@b = local_unnamed_addr global i32 0, align 4 -+@c = local_unnamed_addr global i32 0, align 4 -+@d = local_unnamed_addr global float 0.000000e+00, align 4 -+ -+define float @_Z3fn2v() { -+; CHECK-LABEL: _Z3fn2v: -+; CHECK: # %bb.0: # %entry -+; CHECK-NEXT: pushq %rax -+; CHECK-NEXT: .cfi_def_cfa_offset 16 -+; CHECK-NEXT: callq _Z1av -+; CHECK-NEXT: # kill: def $al killed $al def $eax -+; CHECK-NEXT: kmovd %eax, %k1 -+; CHECK-NEXT: vmovss {{.*#+}} xmm0 = mem[0],zero,zero,zero -+; CHECK-NEXT: vmovss %xmm0, %xmm0, %xmm0 {%k1} {z} -+; CHECK-NEXT: cmpl $0, {{.*}}(%rip) -+; CHECK-NEXT: je .LBB0_2 -+; CHECK-NEXT: # %bb.1: # %if.then -+; CHECK-NEXT: vcvtsi2ssl {{.*}}(%rip), %xmm1, %xmm1 -+; CHECK-NEXT: kmovd %eax, %k1 -+; CHECK-NEXT: vxorps %xmm2, %xmm2, %xmm2 -+; CHECK-NEXT: vmovss %xmm2, %xmm0, %xmm1 {%k1} -+; CHECK-NEXT: vmovss %xmm1, {{.*}}(%rip) -+; CHECK-NEXT: .LBB0_2: # %if.end -+; CHECK-NEXT: popq %rax -+; CHECK-NEXT: .cfi_def_cfa_offset 8 -+; CHECK-NEXT: retq -+entry: -+ %call = tail call zeroext i1 @_Z1av() -+ %cond = select i1 %call, float 7.500000e-01, float 0.000000e+00 -+ %0 = load i32, i32* @c, align 4 -+ %tobool2 = icmp eq i32 %0, 0 -+ br i1 %tobool2, label %if.end, label %if.then -+ -+if.then: ; preds = %entry -+ %1 = load i32, i32* @b, align 4 -+ %2 = sitofp i32 %1 to float -+ %conv5 = select i1 %call, float 0.000000e+00, float %2 -+ store float %conv5, float* @d, align 4 -+ br label %if.end -+ -+if.end: ; preds = %entry, %if.then -+ ret float %cond -+} -+ -+declare zeroext i1 @_Z1av() --- -2.19.0 - diff --git a/sys-devel/llvm/llvm-6.0.1-r1.ebuild b/sys-devel/llvm/llvm-6.0.1-r1.ebuild deleted file mode 100644 index 3586bb2eac78..000000000000 --- a/sys-devel/llvm/llvm-6.0.1-r1.ebuild +++ /dev/null @@ -1,266 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \ - multiprocessing pax-utils python-any-r1 toolchain-funcs - -DESCRIPTION="Low Level Virtual Machine" -HOMEPAGE="https://llvm.org/" -SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz - !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )" - -# Keep in sync with CMakeLists.txt -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) - -# Additional licenses: -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. -# 2. ARM backend: LLVM Software Grant by ARM. -# 3. MD5 code: public-domain. -# 4. Tests (not installed): -# a. gtest: BSD. -# b. YAML tests: MIT. - -LICENSE="UoI-NCSA rc BSD public-domain - llvm_targets_ARM? ( LLVM-Grant )" -SLOT="$(ver_cut 1)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="debug doc gold libedit +libffi ncurses test xar xml - kernel_Darwin ${ALL_LLVM_TARGETS[*]}" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:0= - gold? ( >=sys-devel/binutils-2.22:*[cxx] ) - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) - libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) - xar? ( app-arch/xar ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) -DEPEND="${RDEPEND} - dev-lang/perl - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) - ) - kernel_Darwin? ( - =sys-devel/binutils-apple-5.1 - ) - doc? ( dev-python/sphinx ) - gold? ( sys-libs/binutils-libs ) - libffi? ( virtual/pkgconfig ) - !! FreeBSD). - eapply "${FILESDIR}"/6.0.1/0001-cmake-Append-Wl-rpath-link-conditionally-to-GNULD.patch - - # Fix assembly compatibility with binutils-2.31.1 - # https://bugs.gentoo.org/663442 - eapply "${FILESDIR}"/6.0.1/0002-llvm-mc-Produce-R_X86_64_PLT32-for-call-jmp-foo.patch - - # disable use of SDK on OSX, bug #568758 - sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die - - # User patches + QA - cmake-utils_src_prepare -} - -multilib_src_configure() { - local ffi_cflags ffi_ldflags - if use libffi; then - ffi_cflags=$($(tc-getPKG_CONFIG) --cflags-only-I libffi) - ffi_ldflags=$($(tc-getPKG_CONFIG) --libs-only-L libffi) - fi - - local libdir=$(get_libdir) - local mycmakeargs=( - # disable appending VCS revision to the version to improve - # direct cache hit ratio - -DLLVM_APPEND_VC_REV=OFF - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${SLOT}" - -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - - -DBUILD_SHARED_LIBS=ON - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}" - -DLLVM_BUILD_TESTS=$(usex test) - - -DLLVM_ENABLE_FFI=$(usex libffi) - -DLLVM_ENABLE_LIBEDIT=$(usex libedit) - -DLLVM_ENABLE_TERMINFO=$(usex ncurses) - -DLLVM_ENABLE_LIBXML2=$(usex xml) - -DLLVM_ENABLE_ASSERTIONS=$(usex debug) - -DLLVM_ENABLE_EH=ON - -DLLVM_ENABLE_RTTI=ON - - -DWITH_POLLY=OFF # TODO - - -DLLVM_HOST_TRIPLE="${CHOST}" - - -DFFI_INCLUDE_DIR="${ffi_cflags#-I}" - -DFFI_LIBRARY_DIR="${ffi_ldflags#-L}" - # used only for llvm-objdump tool - -DHAVE_LIBXAR=$(multilib_native_usex xar 1 0) - - # disable OCaml bindings (now in dev-ml/llvm-ocaml) - -DOCAMLFIND=NO - ) - -# Note: go bindings have no CMake rules at the moment -# but let's kill the check in case they are introduced -# if ! multilib_is_native_abi || ! use go; then - mycmakeargs+=( - -DGO_EXECUTABLE=GO_EXECUTABLE-NOTFOUND - ) -# fi - - use test && mycmakeargs+=( - -DLLVM_LIT_ARGS="-vv;-j;${LIT_JOBS:-$(makeopts_jobs "${MAKEOPTS}" "$(get_nproc)")}" - ) - - if multilib_is_native_abi; then - mycmakeargs+=( - -DLLVM_BUILD_DOCS=$(usex doc) - -DLLVM_ENABLE_OCAMLDOC=OFF - -DLLVM_ENABLE_SPHINX=$(usex doc) - -DLLVM_ENABLE_DOXYGEN=OFF - -DLLVM_INSTALL_UTILS=ON - ) - use doc && mycmakeargs+=( - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - -DLLVM_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html" - -DSPHINX_WARNINGS_AS_ERRORS=OFF - ) - use gold && mycmakeargs+=( - -DLLVM_BINUTILS_INCDIR="${EPREFIX}"/usr/include - ) - fi - - if tc-is-cross-compiler; then - local tblgen="${EPREFIX}/usr/lib/llvm/${SLOT}/bin/llvm-tblgen" - [[ -x "${tblgen}" ]] \ - || die "${tblgen} not found or usable" - mycmakeargs+=( - -DCMAKE_CROSSCOMPILING=ON - -DLLVM_TABLEGEN="${tblgen}" - ) - fi - - # workaround BMI bug in gcc-7 (fixed in 7.4) - # https://bugs.gentoo.org/649880 - # apply only to x86, https://bugs.gentoo.org/650506 - if tc-is-gcc && [[ ${MULTILIB_ABI_FLAG} == abi_x86* ]] && - [[ $(gcc-major-version) -eq 7 && $(gcc-minor-version) -lt 4 ]] - then - local CFLAGS="${CFLAGS} -mno-bmi" - local CXXFLAGS="${CXXFLAGS} -mno-bmi" - fi - - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" - cmake-utils_src_configure -} - -multilib_src_compile() { - cmake-utils_src_compile - - pax-mark m "${BUILD_DIR}"/bin/llvm-rtdyld - pax-mark m "${BUILD_DIR}"/bin/lli - pax-mark m "${BUILD_DIR}"/bin/lli-child-target - - if use test; then - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/Orc/OrcJITTests - pax-mark m "${BUILD_DIR}"/unittests/ExecutionEngine/MCJIT/MCJITTests - pax-mark m "${BUILD_DIR}"/unittests/Support/SupportTests - fi -} - -multilib_src_test() { - # respect TMPDIR! - local -x LIT_PRESERVES_TMP=1 - cmake-utils_src_make check -} - -src_install() { - local MULTILIB_CHOST_TOOLS=( - /usr/lib/llvm/${SLOT}/bin/llvm-config - ) - - local MULTILIB_WRAPPED_HEADERS=( - /usr/include/llvm/Config/llvm-config.h - ) - - local LLVM_LDPATHS=() - multilib-minimal_src_install - - # move wrapped headers back - mv "${ED%/}"/usr/include "${ED%/}"/usr/lib/llvm/${SLOT}/include || die -} - -multilib_src_install() { - cmake-utils_src_install - - # move headers to /usr/include for wrapping - rm -rf "${ED%/}"/usr/include || die - mv "${ED%/}"/usr/lib/llvm/${SLOT}/include "${ED%/}"/usr/include || die - - LLVM_LDPATHS+=( "${EPREFIX}/usr/lib/llvm/${SLOT}/$(get_libdir)" ) -} - -multilib_src_install_all() { - local revord=$(( 9999 - ${SLOT} )) - cat <<-_EOF_ > "${T}/10llvm-${revord}" || die - PATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" - # we need to duplicate it in ROOTPATH for Portage to respect... - ROOTPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/bin" - MANPATH="${EPREFIX}/usr/lib/llvm/${SLOT}/share/man" - LDPATH="$( IFS=:; echo "${LLVM_LDPATHS[*]}" )" -_EOF_ - doenvd "${T}/10llvm-${revord}" - - # install pre-generated manpages - if ! use doc; then - # (doman does not support custom paths) - insinto "/usr/lib/llvm/${SLOT}/share/man/man1" - doins "${WORKDIR}/${P}-manpages/llvm"/*.1 - fi - - docompress "/usr/lib/llvm/${SLOT}/share/man" -} - -pkg_postinst() { - elog "You can find additional opt-viewer utility scripts in:" - elog " ${EROOT}/usr/lib/llvm/${SLOT}/share/opt-viewer" - elog "To use these scripts, you will need Python 2.7 along with the following" - elog "packages:" - elog " dev-python/pygments (for opt-viewer)" - elog " dev-python/pyyaml (for all of them)" -} diff --git a/sys-devel/llvm/llvm-6.0.1-r2.ebuild b/sys-devel/llvm/llvm-6.0.1-r2.ebuild index cd4c7fd72cea..b0e6b8982dc3 100644 --- a/sys-devel/llvm/llvm-6.0.1-r2.ebuild +++ b/sys-devel/llvm/llvm-6.0.1-r2.ebuild @@ -89,7 +89,7 @@ src_prepare() { # Fix x86 codegen bug triggered by Chromium # https://bugs.gentoo.org/664868 - eapply "${FILESDIR}"/7.0.0/0001-X86-Stop-X86DomainReassignment-from-creating-copies-.patch + eapply "${FILESDIR}"/6.0.1/0003-X86-Stop-X86DomainReassignment-from-creating-copies-.patch # disable use of SDK on OSX, bug #568758 sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die diff --git a/sys-devel/llvm/llvm-7.0.0-r1.ebuild b/sys-devel/llvm/llvm-7.0.0-r1.ebuild deleted file mode 100644 index 2ffa59aa5f59..000000000000 --- a/sys-devel/llvm/llvm-7.0.0-r1.ebuild +++ /dev/null @@ -1,264 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -: ${CMAKE_MAKEFILE_GENERATOR:=ninja} -# (needed due to CMAKE_BUILD_TYPE != Gentoo) -CMAKE_MIN_VERSION=3.7.0-r1 -PYTHON_COMPAT=( python2_7 ) - -inherit cmake-utils eapi7-ver flag-o-matic multilib-minimal \ - multiprocessing pax-utils python-any-r1 toolchain-funcs - -DESCRIPTION="Low Level Virtual Machine" -HOMEPAGE="https://llvm.org/" -SRC_URI="https://releases.llvm.org/${PV/_//}/${P/_/}.src.tar.xz - !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${P}-manpages.tar.bz2 )" - -# Keep in sync with CMakeLists.txt -ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 - NVPTX PowerPC Sparc SystemZ X86 XCore ) -ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) - -# Additional licenses: -# 1. OpenBSD regex: Henry Spencer's license ('rc' in Gentoo) + BSD. -# 2. ARM backend: LLVM Software Grant by ARM. -# 3. MD5 code: public-domain. -# 4. Tests (not installed): -# a. gtest: BSD. -# b. YAML tests: MIT. - -LICENSE="UoI-NCSA rc BSD public-domain - llvm_targets_ARM? ( LLVM-Grant )" -SLOT="$(ver_cut 1)" -KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-fbsd ~amd64-linux ~ppc-macos ~x64-macos ~x86-macos" -IUSE="debug doc exegesis gold libedit +libffi ncurses test xar xml - kernel_Darwin ${ALL_LLVM_TARGETS[*]}" -RESTRICT="!test? ( test )" - -RDEPEND=" - sys-libs/zlib:0= - exegesis? ( dev-libs/libpfm:= ) - gold? ( >=sys-devel/binutils-2.22:*[cxx] ) - libedit? ( dev-libs/libedit:0=[${MULTILIB_USEDEP}] ) - libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] ) - ncurses? ( >=sys-libs/ncurses-5.9-r3:0=[${MULTILIB_USEDEP}] ) - xar? ( app-arch/xar ) - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )" -# configparser-3.2 breaks the build (3.3 or none at all are fine) -DEPEND="${RDEPEND} - dev-lang/perl - || ( >=sys-devel/gcc-3.0 >=sys-devel/llvm-3.5 - ( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx ) - ) - kernel_Darwin? ( - =sys-devel/binutils-apple-5.1 - ) - doc? ( dev-python/sphinx ) - gold? ( sys-libs/binutils-libs ) - libffi? ( virtual/pkgconfig ) - !!