== Progress ==
LTO/IPA
- Committed propagation of nonnull attribute and optimizations
- Committed patch to infer noonull from ADDR_EXPR
- Working on a patch to improve ipa-cp unary expressions pass
through jump-function
* LTO bootstrap is failing in streaming but normal bootstrap working
* Looking into it
== Next ==
- Commit pending patches
- Start LTO benchmarking and analysis
== This Week ==
* TCWG-72 (2/10)
- Updated patch based on Jeff's suggestions.
* Folding optimizations (2/10)
a) PR53979 - fix committed to trunk
b) PR71636 - fix committed to trunk
* TCWG-665 (2/10)
- Rebased patch and done few modifications
- Trying to look for a better solution to workaround a memory leak
issue with patch
with -ffat-lto-objects
* PR35503 (1/10)
- Rebased patch on top of Marek's changes to c-common.c and pinged upstream.
* Validation (1/10)
- Added spec2k and spec2k6 to tcwg-buildapp
- Fixed abe bug 1439
* Misc (2/10)
- Reading up on mod/ref analysis.
- Meetings
== Next Week ==
- TCWG-72, TCWG-665, TCWG-125
- Look into changing user to "benchmark" for tcwg-buildapp job.
== Progress ==
TCWG-610 ARM Exceptions support
Now fully committed upstream. We should now have support for
exceptions in Shared Objects and Executables.
I've diagnosed problems when static linking after staring at a
disassembly for most of a day. With some hacks I've managed to get a
static link working using a recent Linaro sysroot. Next task is to
resolve these in a more principled way.
TCWG-845 Static linking missing linker defined symbols
- lld doesn't use a built in linker script so we need to add in
symbols that libc.a is expecting the default linker script to
generate.
- lld is defining __tls_get_addr as it expects all TLS to be relaxed,
this isn't the case for ARM or Mips so we need to not define it.
TCWG-829 Support for ifunc
For some annoying reason that I can't work out why, ARM requires the
R_ARM_IRELATIVE relocations to be in the .rel.dyn and not .rel.plt
like all the other targets that lld supports including AArch64
TCWG-828 Static linking and TLS
When static linking the TLS dynamic relocations in the .got must be
resolved statically.
- The other architectures that lld supports have the thread control
block (tcb) after the data so the initial-exec relocations don't need
to add the tcb size to the value put into the .got.
- The module index dynamic relocation needs to be 1 and not 0 (LLD
assumes general dynamic is relaxed away at static link-time).
TCWG-683 Support for branches to undefined weak references
LLD doesn't resolve these to the next instruction so they just hang at runtime.
Some feedback and review for Linaro LLVM team processes.
== Plans ==
Work out a proper solution for TCWG-828 then start upstreaming.
TCWG-683 can be worked around by providing an empty definition of the
function, all the others need to be fixed to get a static libc to
link.
# Progress #
* TCWG-333, Fix gdb.base/func-ptrs.exp fails in thumb mode. [4/10]
Get review comments and suggestions. Tried to do what they suggested,
but it doesn't work well due to some reasons. Preparing the the reply to
address their comments.
* TCWG-416, Improve GDB performance in remote debugging. [2/10]
Patches for ARM and AArch64 are ready. Need to measure the
performance improvement.
* OpenOCD. [2/10]
Chat with people working on AArch64 support on irc. Help him
understanding GDB and GDB remote protocol. Patches are there, but
need to figure out how to help to get these patches merged.
* Misc, [2/10]
Meeting, and various discussions.
# Plan #
* Continue all above.
--
Yao Qi
The Linaro Toolchain Working Group (TCWG) is pleased to announce the
2016.10 snapshot of both Linaro GCC 5 and Linaro GCC 6 source
packages.
Linaro GCC 6 monthly snapshot[1] is based on FSF GCC 6.1+svn241214 and
includes performance improvements and bug fixes backported from
mainline GCC. This snapshot contents will be part of the 2016.11
stable[2] quarterly release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/6.2-2016.10/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 6.2+svn241214
* Backport of [Bugfix] PR libgcc/77519: Correct libgcc complex
multiply excess precision handling
* Backport of [Bugfix] PR target/63250: Enable HCmode multiply and
divide (mulhc3/divhc3)
* Backport of [AArch32/AArch64] Add qdf24xx base tuning support
* Backport of [AArch32] [ARMv8.2] 1/17 Add ARMv8.2-A command line
option and profile
* Backport of [AArch32] [ARMv8.2] 2/17 [testsuite] Add a selector for
ARM FP16 alternative format support.
* Backport of [AArch32] [ARMv8.2] 3/17 [testsuite] Add ARM support for
ARMv8.2-A with FP16 arithmetic instructions
* Backport of [AArch32] [ARMv8.2] 4/17 Define feature macros for FP16
* Backport of [AArch32] [ARMv8.2] 5/17 Enable HI mode moves for
floating point values
* Backport of [AArch32] [ARMv8.2] 6/17 Add data processing intrinsics
for float16_t
* Backport of [AArch32] [ARMv8.2] 7/17 Add FP16 data movement instructions
* Backport of [AArch32] [ARMv8.2] 8/17 Add VFP FP16 arithmetic instructions
* Backport of [AArch32] [ARMv8.2] 9/17 Add NEON FP16 arithmetic instructions
* Backport of [AArch32] [ARMv8.2] 10/17 Refactor support code for NEON builtins
* Backport of [AArch32] [ARMv8.2] 11/17 Add builtins for VFP FP16 intrinsics
* Backport of [AArch32] [ARMv8.2] 12/17 Add builtins for NEON FP16 intrinsics
* Backport of [AArch32] [ARMv8.2] 13/17 Add VFP FP16 instrinsics
* Backport of [AArch32] [ARMv8.2] 14/17 Add NEON FP16 instrinsics
* Backport of [AArch32] [ARMv8.2] 15/17 Add tests for ARMv8.2-A FP16 support
* Backport of [AArch32] [ARMv8.2] 16/17 Add tests for VFP FP16 ACLE instrinsics
* Backport of [AArch32] [ARMv8.2] 17/17 Add tests for NEON FP16 ACLE intrinsics
* Backport of [AArch32] [ARMv8.2] Delete one redundant word in
target-supports.exp comment
* Backport of [AArch32] [ARMv8.2] Enable mov[hsd]i_movw tests on ARM
and big endian
* Backport of [AArch32] [ARMv8.2] Fix invalid instructions generated
for data movement.
* Backport of [AArch32] [ARMv8.2] Fix invalid instructions generated
for data movement.
* Backport of [AArch32] [ARMv8.2] Fix new constraints and attributes
of SI/HI data movement patterns
* Backport of [AArch32] [ARMv8-M] Add support for ARMv8-M
* Backport of [AArch32] [ARMv8-M] Add support for CB(N)Z and (U|S)DIV
to ARMv8-M Baseline
* Backport of [AArch32] [ARMv8-M] Add support for MOVT/MOVW to ARMv8-M Baseline
* Backport of [AArch32] [ARMv8-M] Check CLZ availability with ISA
support and architecture level macros
* Backport of [AArch32] [ARMv8-M] Enable atomics for ARMv8-M Mainline
* Backport of [AArch32] [ARMv8-M] Factor out MOVW/MOVT availability
and desirability checks
* Backport of [AArch32] [ARMv8-M] Fix indentation of FL_FOR_ARCH*
definition after adding support for ARMv8-M
* Backport of [AArch32] [ARMv8-M] Fix pr42574.c selector syntax error
* Backport of [AArch32] [ARMv8-M] Fix Thumb-1 only == ARMv6-M &
Thumb-2 only == ARMv7-M assumptions
* Backport of [AArch32] Fix RTL checking failure in Thumb mode
* Backport of [AArch64] Add __artificial__ attribute to Aarch64 NEON intrinsics
* Backport of [AArch64] Add missing attributes to arm_neon.h
* Backport of [AArch64] Add more NEON intrinsics vmaxnm_f64,
vminnm_f64, vmax_f64, vmin_f64
* Backport of [AArch64] Add tunning of ldpw for THunderX
* Backport of [AArch64] Fix __builtin_aarch64_fmindf
* Backport of [AArch64] [ARMv8.2] 1/4 ARMv8.2-A FP16 testsuite selector
* Backport of [AArch64] [ARMv8.2] 2/4 ARMv8.2-A testsuite for new data
movement intrinsics
* Backport of [AArch64] [ARMv8.2] 3/4 ARMv8.2-A testsuite for new
vector intrinsics
* Backport of [AArch64] [ARMv8.2] 4/4 ARMv8.2-A testsuite for new
scalar intrinsics
* Backport of [Misc] Allow simple register subregs in noce_convert_multiple_sets
* Backport of [Misc] Fix native_encode_real for HFmode constants
* Backport of [Misc] Modify extend_mask to extend bits based on signop
* Backport of [Testsuite] [AArch32] Fix prototype in vst1Q_laneu64-1.c
* Backport of [Testsuite] [AArch32] neon-testgen.ml removal
* Backport of [Cleanup] Fix typo in comment in tree-ssa-strlen.c
Linaro GCC 5 monthly snapshot[1] is based on FSF GCC 5.4+svn241215 and
includes performance improvements and bug fixes backported from
mainline GCC. This snapshot contents will be part of the 2016.11
maintenance release.
This snapshot tarball is available on:
http://snapshots.linaro.org/components/toolchain/gcc-linaro/5.4-2016.10/
Interesting changes in this GCC source package snapshot include:
* Updates to GCC 5.4+svn241215
Subscribe to the important Linaro mailing lists and join our IRC
channels to stay on top of Linaro development.
** Linaro Toolchain Development "mailing list":
http://lists.linaro.org/mailman/listinfo/linaro-toolchain
** Linaro Toolchain IRC channel on irc.freenode.net at @#linaro-tcwg@
* Bug reports should be filed in bugzilla against GCC product:
http://bugs.linaro.org/enter_bug.cgi?product=GCC
* Interested in commercial support? inquire at "Linaro support":
mailto:support@linaro.org
[1]. Source package snapshots are defined when the compiler is only
put through unit-testing and full validation is not performed.
[2]. Stable source package releases are defined as releases where the
full Linaro Toolchain validation plan is executed.
Hi all.
I've incorrectly reported a build failure in the support system.
<https://support.linaro.org/hc/en-us/requests/1876>
-But I'm posting a copy to this list, in order to follow Victor's advice.
I've suggested a couple of changes, which makes ABE a little more compatible.
Though I can still not build the toolchain on my PowerBook G4, I think that my two modifications might ease building on Intel based Macs and perhaps other architectures in addition.
In short:
* Use getconf instead of /proc/cpuinfo (you're already using getconf in configure.ac).
* By default use twice as many cores for -jN as usual. (If you have 2 cores, use -j4)
* Change the architecture from 'Power Macintosh' (which contains an offending space) to 'powerpc'.
...And here's "configure.ac.patch":
---8<-----8<-----8<-----
diff --git a/configure.ac b/configure.ac
index 1bf3593..8cc4986 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,9 +49,10 @@ AC_SUBST(DBPASSWD)
DBHOST=${dbhost}
AC_SUBST(DBHOST)
-CPUS="`grep -c proces /proc/cpuinfo`"
+
+let CPUS=2*`getconf _NPROCESSORS_ONLN`
AC_SUBST(CPUS)
-CORES="`grep cores /proc/cpuinfo | tail -1 | cut -d ' ' -f 3`"
+#CORES="`grep cores /proc/cpuinfo | tail -1 | cut -d ' ' -f 3`"
AC_SUBST(CORES)
LIBC="`getconf GNU_LIBC_VERSION`"
AC_SUBST(LIBC)
@@ -59,6 +60,7 @@ KERNEL="`uname -r`"
AC_SUBST(KERNEL)
BUILDHOST="`${srcdir}/config.guess`"
BUILD_ARCH="`uname -m`"
+[[ "`uname -s`" == "Darwin" ]] && BUILD_ARCH="`uname -p`"
AC_SUBST(BUILD_ARCH)
AC_SUBST(BUILDHOST)
HOSTNAME="`uname -n`"
--->8----->8----->8-----
Apart from that, I'd like to report a successful build on Cubieboard2 running Armbian.
I built for the aarch64 architecture, and I'm currently attempting to build Armbian for beelink GT1 using the new shiny Linaro toolchain. :)
...and what a pleasure, there's no fan-noise when building on the Cubieboard2!
Love
Jens
Just been trying to build the Linaro toolchain from source on RHEL 6.5. The ABE configure script fails to detect the packaging system on RHEL as it looks like RPM will only be detected if it's running on a Fedora system. This patch will instead detect RPM if the rpm binary is available (and it's not Debian/Ubuntu), like the test for Arch/pacman.
diff --git a/configure b/configure
index 42f787e..52ddd42 100755
--- a/configure
+++ b/configure
@@ -3639,7 +3639,6 @@ fi
# Figure out which packaging system is in use. Since it's possible to
# install both on a system.
-rpm="`uname -a | grep -ic '\.fc[0-9].\.'`"
deb="`uname -a | grep -ic 'ubuntu'`"
deb=$(($deb + `uname -a | grep -ic 'debian'`))
@@ -3672,7 +3671,9 @@ $as_echo "yes" >&6; }
### RPM Packages ###
else
-if test ${rpm} -eq 1; then
+rpm="`which rpm 2> /dev/null`"
+result=$?
+if test ${result} -eq 0; then
packages="${packages} ncurses-devel python-devel"
for i in ${packages}; do
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $i is installed" >
Regards,
Scott.
Hi Christophe,
Here are the commits, in order, that Adhemerval did to support 48-bit
VMA on AArch64.
r275792: [asan] Enable 48-bit VMA support on aarch64
r277137: tsan: Enable 48-bit VMA support on aarch64
r279752: msan: Enable 48-bit VMA support on aarch64
r279753: dfsan: Enable 48-bit VMA support on aarch64
Currently, all sanitiser tests pass on Ubuntu Xenial on the LLVM side.
cheers,
--renato
== Progress ==
LTO/IPA
- Committed ipa-vrp and early-vrp improvements
- Patches for propagation of nonnull and optimization are accepted;
Will commit after testing (once again)
- Noticed some improvements but full benchmarking not yet done
- Setting up the benchmarking infrastructure
== Next ==
- Commit pending patches
- Start LTO benchmarking and analysis
== Progress ==
o Linaro GCC/Validation (7/10)
- Completed backports for monthly snapshots (dependency tracking).
- Prepared branch merges for branches 5 and 6
- ABE reviews
- New jenkins job to compare toolchains
(goal is to use it for development and to refactor current jobs).
o Misc (3/10)
* Various meetings and discussions.
== Plan ==
o Release 2016.10 snapshots
o On Vacation from Thu 20th to Tue. 24th.