Merge branch '6.0' of salsa.debian.org:pkg-llvm-team/llvm-toolchain into 6.0

This commit is contained in:
Sylvestre Ledru 2018-08-26 14:00:30 +02:00
commit d861c56495
5 changed files with 103 additions and 19 deletions

20
debian/changelog vendored
View File

@ -3,7 +3,25 @@ llvm-toolchain-6.0 (1:6.0.1-6) unstable; urgency=medium
* Remove libtool flex, bison, dejagnu, tcl, expect,
and perl from the build deps (testing)
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 26 Aug 2018 13:58:40 +0200
[ John Paul Adrian Glaubitz ]
* Don't build with ld.gold on powerpcspe
* Disable polly on powerpcspe
* Cherry-pick upstream patch to make rustc build on ppc
[ Gianfranco Costamagna ]
* Team upload
* Upload to unstable
* Enable lld on ppc64el
* Add liblldb-6.0-dev to python-lldb runtime dependencies, needed to import it
-- Sylvestre Ledru <sylvestre@debian.org> Sun, 26 Aug 2018 14:00:14 +0200
llvm-toolchain-6.0 (1:6.0.1-5exp1) experimental; urgency=medium
* Enable lld on arm64, mips64el
* Enable lldb on mips64el
-- Gianfranco Costamagna <locutusofborg@debian.org> Fri, 17 Aug 2018 17:36:03 +0200
llvm-toolchain-6.0 (1:6.0.1-5) unstable; urgency=medium

30
debian/control vendored
View File

@ -377,8 +377,8 @@ Description: Modular compiler and toolchain technologies, examples
# ------------- lld -------------
Package: lld-6.0
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel
# ia64 mips mipsel hurd powerpc ppc64el have been removed
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
# ia64 hurd powerpc have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm6.0 (= ${binary:Version}), llvm-6.0-dev
Pre-Depends: ${misc:Pre-Depends}
Description: LLVM-based linker
@ -387,8 +387,8 @@ Description: LLVM-based linker
Project.
Package: liblld-6.0
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel
# ia64 mips mipsel hurd powerpc ppc64el have been removed
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
# ia64 hurd powerpc have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm6.0 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
Section: libs
@ -401,8 +401,8 @@ Description: LLVM-based linker, library
Package: liblld-6.0-dev
Section: libdevel
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel
# ia64 mips mipsel hurd powerpc ppc64el have been removed
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32
# ia64 hurd powerpc have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, lld-6.0 (= ${binary:Version}),
liblld-6.0 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
@ -417,8 +417,8 @@ Description: LLVM-based linker, header files
# ------------- lldb -------------
Package: lldb-6.0
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32 mips mipsel arm64 ppc64el
# ia64 mips mipsel hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm6.0 (= ${binary:Version}), llvm-6.0-dev,
python-lldb-6.0
Pre-Depends: ${misc:Pre-Depends}
@ -428,8 +428,8 @@ Description: Next generation, high-performance debugger
Project, such as the Clang expression parser and LLVM disassembler.
Package: liblldb-6.0
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32 mips mipsel arm64 ppc64el
# ia64 mips mipsel hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm6.0 (= ${binary:Version})
Pre-Depends: ${misc:Pre-Depends}
Section: libs
@ -444,9 +444,9 @@ Description: Next generation, high-performance debugger, library
Package: python-lldb-6.0
Section: python
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32 mips mipsel arm64 ppc64el
# ia64 mips mipsel hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, python, python-six
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, liblldb-6.0-dev, python, python-six
Conflicts: python-lldb-3.8, python-lldb-3.9, python-lldb-x.y
Replaces: python-lldb-x.y
Provides: python-lldb-x.y
@ -461,8 +461,8 @@ Description: Next generation, high-performance debugger, python lib
Package: liblldb-6.0-dev
Section: libdevel
Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32 mips mipsel arm64 ppc64el
# ia64 mips mipsel hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Architecture: amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k sh4 x32
# ia64 hurd powerpc powerpcspe ppc64 alpha s390x sparc64 have been removed
Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-6.0 (= ${binary:Version})
Replaces: lldb-6.0-dev (<= 1:6.0~svn215195-2)
Breaks: lldb-6.0-dev (<< 1:6.0~svn215195-2)

65
debian/patches/D51108.diff vendored Normal file
View File

@ -0,0 +1,65 @@
Index: llvm-toolchain-6.0-6.0.1/lib/Target/PowerPC/PPCISelLowering.cpp
===================================================================
--- llvm-toolchain-6.0-6.0.1.orig/lib/Target/PowerPC/PPCISelLowering.cpp
+++ llvm-toolchain-6.0-6.0.1/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -3351,9 +3351,14 @@
// Argument stored in memory.
assert(VA.isMemLoc());
+ // Get the extended size of the argument type in stack
unsigned ArgSize = VA.getLocVT().getStoreSize();
- int FI = MFI.CreateFixedObject(ArgSize, VA.getLocMemOffset(),
- isImmutable);
+ // Get the actual size of the argument type
+ unsigned ObjSize = VA.getValVT().getStoreSize();
+ unsigned ArgOffset = VA.getLocMemOffset();
+ // Stack objects in PPC32 are right justified.
+ ArgOffset += ArgSize - ObjSize;
+ int FI = MFI.CreateFixedObject(ArgSize, ArgOffset, isImmutable);
// Create load nodes to retrieve arguments from the stack.
SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
@@ -5303,10 +5308,11 @@
Arg = PtrOff;
}
- if (VA.isRegLoc()) {
- if (Arg.getValueType() == MVT::i1)
- Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i32, Arg);
+ // Ensure callee will get either 0x00000001 or 0x00000000.
+ if (Arg.getValueType() == MVT::i1)
+ Arg = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i32, Arg);
+ if (VA.isRegLoc()) {
seenFloatArg |= VA.getLocVT().isFloatingPoint();
// Put argument in a physical register.
RegsToPass.push_back(std::make_pair(VA.getLocReg(), Arg));
Index: llvm-toolchain-6.0-6.0.1/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll
===================================================================
--- /dev/null
+++ llvm-toolchain-6.0-6.0.1/test/CodeGen/PowerPC/ppc32-i1-stack-arguments-abi-bug.ll
@@ -0,0 +1,24 @@
+; RUN: llc -verify-machineinstrs < %s -mcpu=ppc32 -mattr=+crbits | FileCheck %s
+target triple = "powerpc-unknown-linux-gnu"
+
+define zeroext i1 @check_callee(
+ i1 zeroext, i1 zeroext, i1 zeroext, i1 zeroext,
+ i1 zeroext, i1 zeroext, i1 zeroext, i1 zeroext,
+ i1 zeroext %s1
+) {
+ call void @check_caller(
+ i1 zeroext true, i1 zeroext true, i1 zeroext true, i1 zeroext true,
+ i1 zeroext true, i1 zeroext true, i1 zeroext true, i1 zeroext true,
+ i1 zeroext %s1)
+ ret i1 true
+}
+
+; CHECK-LABEL: @check_callee
+; CHECK: lbz {{[0-9]+}}, 27(1)
+; CHECK: stw {{[0-9]+}}, 8(1)
+
+declare void @check_caller(
+ i1 zeroext, i1 zeroext, i1 zeroext, i1 zeroext,
+ i1 zeroext, i1 zeroext, i1 zeroext, i1 zeroext,
+ i1 zeroext
+)

View File

@ -60,3 +60,4 @@ D42717-JumpThreading-backport-2.diff
llvm-D49832-SCEVPred.patch
llvm-rL323946-LSRTy.patch
PowerPC-Make-AddrSpaceCast-noop.diff
D51108.diff

6
debian/rules vendored
View File

@ -84,7 +84,7 @@ else
control_vars = '-Vdep:devlibs=libstdc++6-$(GCC_VERSION)-dev'
endif
BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 powerpcspe ppc64 ppc64el sparc sparc64 x32 s390x
BINUTILS_GOLD_ARCHS := amd64 arm64 armhf i386 ppc64 ppc64el sparc sparc64 x32 s390x
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' binutils) ge 2.23.1-1~exp3 ; echo $$?),0)
ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
# -fused-ld=gold enables the gold linker (but is not supported by all archs / distro)
@ -96,7 +96,7 @@ endif
# Enable polly (or not)
POLLY_ENABLE=yes
ifeq (,$(filter-out $(DEB_HOST_ARCH), powerpc s390x))
ifeq (,$(filter-out $(DEB_HOST_ARCH), powerpc powerpcspe s390x))
POLLY_ENABLE=no
endif
@ -145,7 +145,7 @@ else
endif
LLDB_ENABLE=yes
LLDB_DISABLE_ARCHS := hurd-i386 ia64 mips64el powerpc powerpcspe ppc64 s390x sparc64
LLDB_DISABLE_ARCHS := hurd-i386 ia64 powerpc powerpcspe ppc64 s390x sparc64
# hurd has threading issues
ifeq (,$(filter-out $(LLDB_DISABLE_ARCHS), $(DEB_HOST_ARCH)))
# Disable LLDB for this arch.