Your message dated Sat, 26 Aug 2017 17:11:44 +0200
with message-id <[email protected]>
and subject line
has caused the Debian Bug report #864311,
regarding llvm-toolchain-3.9: armhf SIGILL when compiling rustc 1.17.0, need to
backport upstream D31265
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
864311: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=864311
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: llvm-toolchain-3.9
Version: 1:3.9.1-9
Severity: important
Tags: upstream patch
Dear Maintainer,
LLVM 3.9 cannot compile rustc 1.17.0 on armhf, one needs to apply this patch
(already in LLVM trunk):
https://reviews.llvm.org/D31265
It is attached as a debdiff for your convenience.
For more info see:
https://github.com/rust-lang/llvm/pull/67
https://github.com/rust-lang/rust/issues/41291 (failure on Fedora)
https://github.com/rust-lang/rust/issues/42477 (failure on Debian)
This may affect other projects besides rustc; I'll leave it to you whether to
treat this as RC for stretch. We're not targetting rustc 1.17.0 for stretch so
it is not RC for rustc's purposes.
X
-- System Information:
Debian Release: 9.0
APT prefers testing
APT policy: (990, 'testing'), (500, 'unstable-debug'), (500,
'testing-debug'), (500, 'buildd-unstable'), (300, 'unstable'), (100,
'experimental'), (1, 'experimental-debug')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.9.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru llvm-toolchain-3.9-3.9.1/debian/changelog
llvm-toolchain-3.9-3.9.1/debian/changelog
--- llvm-toolchain-3.9-3.9.1/debian/changelog 2017-06-04 18:04:00.000000000
+0000
+++ llvm-toolchain-3.9-3.9.1/debian/changelog 2017-06-06 12:27:50.000000000
+0000
@@ -1,3 +1,10 @@
+llvm-toolchain-3.9 (1:3.9.1-9.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix a rustc armhf SIGILL by backporting upstream D31265.
+
+ -- Ximin Luo <[email protected]> Tue, 06 Jun 2017 12:27:50 +0000
+
llvm-toolchain-3.9 (1:3.9.1-9) unstable; urgency=medium
* debian/patches/fix-R_AARCH64_MOVW_UABS_G3-relocation.patch:
diff -Nru
llvm-toolchain-3.9-3.9.1/debian/patches/rust-0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch
llvm-toolchain-3.9-3.9.1/debian/patches/rust-0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch
---
llvm-toolchain-3.9-3.9.1/debian/patches/rust-0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch
1970-01-01 00:00:00.000000000 +0000
+++
llvm-toolchain-3.9-3.9.1/debian/patches/rust-0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch
2017-06-06 12:27:50.000000000 +0000
@@ -0,0 +1,70 @@
+From a6fa10c14649c18d299cddf3e823b032460cb6f5 Mon Sep 17 00:00:00 2001
+From: Pirama Arumuga Nainar <[email protected]>
+Date: Thu, 23 Mar 2017 16:47:47 +0000
+Subject: [PATCH 32/32] Fix computeKnownBits for ARMISD::CMOV
+
+Summary:
+The true and false operands for the CMOV are operands 0 and 1.
+ARMISelLowering.cpp::computeKnownBits was looking at operands 1 and 2
+instead. This can cause CMOV instructions to be incorrectly folded into
+BFI if value set by the CMOV is another CMOV, whose known bits are
+computed incorrectly.
+
+This patch fixes the issue and adds a test case.
+
+Reviewers: kristof.beyls, jmolloy
+
+Subscribers: llvm-commits, aemerson, srhines, rengolin
+
+Differential Revision: https://reviews.llvm.org/D31265
+
+git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298624
91177308-0d34-0410-b5e6-96231b3b80d8
+---
+ lib/Target/ARM/ARMISelLowering.cpp | 4 ++--
+ test/CodeGen/ARM/no-cmov2bfi.ll | 19 +++++++++++++++++++
+ 2 files changed, 21 insertions(+), 2 deletions(-)
+ create mode 100644 test/CodeGen/ARM/no-cmov2bfi.ll
+
+diff --git a/lib/Target/ARM/ARMISelLowering.cpp
b/lib/Target/ARM/ARMISelLowering.cpp
+index 4a227a3cd7b..cf98e60c065 100644
+--- a/lib/Target/ARM/ARMISelLowering.cpp
++++ b/lib/Target/ARM/ARMISelLowering.cpp
+@@ -10806,8 +10806,8 @@ static void computeKnownBits(SelectionDAG &DAG,
SDValue Op, APInt &KnownZero,
+ if (Op.getOpcode() == ARMISD::CMOV) {
+ APInt KZ2(KnownZero.getBitWidth(), 0);
+ APInt KO2(KnownOne.getBitWidth(), 0);
+- computeKnownBits(DAG, Op.getOperand(1), KnownZero, KnownOne);
+- computeKnownBits(DAG, Op.getOperand(2), KZ2, KO2);
++ computeKnownBits(DAG, Op.getOperand(0), KnownZero, KnownOne);
++ computeKnownBits(DAG, Op.getOperand(1), KZ2, KO2);
+
+ KnownZero &= KZ2;
+ KnownOne &= KO2;
+diff --git a/test/CodeGen/ARM/no-cmov2bfi.ll b/test/CodeGen/ARM/no-cmov2bfi.ll
+new file mode 100644
+index 00000000000..c8b51204890
+--- /dev/null
++++ b/test/CodeGen/ARM/no-cmov2bfi.ll
+@@ -0,0 +1,19 @@
++; RUN: llc < %s -mtriple=thumbv7 | FileCheck --check-prefix=CHECK-NOBFI %s
++
++declare zeroext i1 @dummy()
++
++define i8 @test(i8 %a1, i1 %c) {
++; CHECK-NOBFI-NOT: bfi
++; CHECK-NOBFI: bl dummy
++; CHECK-NOBFI: cmp r0, #0
++; CHECK-NOBFI: it ne
++; CHECK-NOBFI: orrne [[REG:r[0-9]+]], [[REG]], #8
++; CHECK-NOBFI: mov r0, [[REG]]
++
++ %1 = and i8 %a1, -9
++ %2 = select i1 %c, i8 %1, i8 %a1
++ %3 = tail call zeroext i1 @dummy()
++ %4 = or i8 %2, 8
++ %ret = select i1 %3, i8 %4, i8 %2
++ ret i8 %ret
++}
+--
+2.11.0
+
diff -Nru llvm-toolchain-3.9-3.9.1/debian/patches/series
llvm-toolchain-3.9-3.9.1/debian/patches/series
--- llvm-toolchain-3.9-3.9.1/debian/patches/series 2017-06-04
11:15:58.000000000 +0000
+++ llvm-toolchain-3.9-3.9.1/debian/patches/series 2017-06-06
12:27:50.000000000 +0000
@@ -50,3 +50,4 @@
857623-allow-opencl-pointer-to-bool.diff
add_symbols_versioning.patch
fix-R_AARCH64_MOVW_UABS_G3-relocation.patch
+rust-0032-Fix-computeKnownBits-for-ARMISD-CMOV.patch
--- End Message ---
--- Begin Message ---
fixed 864311 3.9.1-10~exp1
thanks
--- End Message ---