[Bug 214433] projects/clang390-import: powerpc and powerpc64 support needs to pick up two fixes from llvm (ABI fix for ppc; softfloat enabled for ppc64)
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Nov 25 18:13:15 UTC 2016
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214433
--- Comment #2 from commit-hook at freebsd.org ---
A commit references this bug:
Author: dim
Date: Fri Nov 25 18:12:14 UTC 2016
New revision: 309149
URL: https://svnweb.freebsd.org/changeset/base/309149
Log:
Pull in r283060 from upstream llvm trunk (by Hal Finkel):
[PowerPC] Refactor soft-float support, and enable PPC64 soft float
This change enables soft-float for PowerPC64, and also makes
soft-float disable all vector instruction sets for both 32-bit and
64-bit modes. This latter part is necessary because the PPC backend
canonicalizes many Altivec vector types to floating-point types, and
so soft-float breaks scalarization support for many operations. Both
for embedded targets and for operating-system kernels desiring
soft-float support, it seems reasonable that disabling hardware
floating-point also disables vector instructions (embedded targets
without hardware floating point support are unlikely to have Altivec,
etc. and operating system kernels desiring not to use floating-point
registers to lower syscall cost are unlikely to want to use vector
registers either). If someone needs this to work, we'll need to
change the fact that we promote many Altivec operations to act on
v4f32. To make it possible to disable Altivec when soft-float is
enabled, hardware floating-point support needs to be expressed as a
positive feature, like the others, and not a negative feature,
because target features cannot have dependencies on the disabling of
some other feature. So +soft-float has now become -hard-float.
Fixes PR26970.
Pull in r283061 from upstream clang trunk (by Hal Finkel):
[PowerPC] Enable soft-float for PPC64, and +soft-float -> -hard-float
Enable soft-float support on PPC64, as the backend now supports it.
Also, the backend now uses -hard-float instead of +soft-float, so set
the target features accordingly.
Fixes PR26970.
Reported by: Mark Millard
PR: 214433
Changes:
head/contrib/llvm/lib/Target/PowerPC/PPC.td
head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h
head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp
head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-toolchain
mailing list