The Linaro Toolchain Working Group is pleased to announce the 2013.04
release of Linaro GCC 4.8, Linaro GCC 4.7 and Linaro GCC 4.6.
Linaro GCC 4.8 2013.04 is the first release in the 4.8 series. Based off the
latest GCC 4.8.0+svn197294 release, it includes performance improvements and
bug fixes.
Interesting changes include:
* Our first 4.8 based release
* Updates to GCC 4.8.0+svn197294
* Initial optimized support for Cortex-A53 for arm*-*-* targets
* Improved support for new ARMv8-A instructions for arm*-*-* and
aarch64*-*-* targets.
* Backport of optimizations concerning whether to use Neon for 64-bit
bitops for arm*-*-* targets.
Linaro GCC 4.7 2013.04 is the thirteenth and last development release in the
4.7 series before entering maintenance. Based off the latest GCC 4.7.2+svn197188
release, it includes ARM-focused performance improvements and bug fixes.
Interesting changes include:
* Updates to GCC 4.7.2+svn197188
* Includes arm/aarch64-4.7-branch up to svn revision 196381
* Backport vectorizer cost model
* Turn off 64-bit Bitops in Neon
Linaro GCC 4.6 2013.04 is the 26th release in the 4.6 series. Based
off the latest GCC 4.6.3+svn197511 release, this is the thirteenth
release after entering maintenance and the last regular one.
Interesting changes include:
* Updates to 4.6.3+svn197511
The source tarballs are available from:
https://launchpad.net/gcc-linaro/+milestone/4.8-2013.04https://launchpad.net/gcc-linaro/+milestone/4.7-2013.04https://launchpad.net/gcc-linaro/+milestone/4.6-2013.04
Downloads are available from the Linaro GCC page on Launchpad:
https://launchpad.net/gcc-linaro
More information on the features and issues are available from the
release pages:
https://launchpad.net/gcc-linaro/4.8/4.8-2013.04https://launchpad.net/gcc-linaro/4.7/4.7-2013.04https://launchpad.net/gcc-linaro/4.6/4.6-2013.04
Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-toolchain
Bugs: https://bugs.launchpad.net/gcc-linaro/
Questions? https://ask.linaro.org/
Interested in commercial support? Inquire at support(a)linaro.org
Hi all,
Currently the binutils job that gets run via cbuild configures with
--enable-gold. I guess this could be useful to ensure the gold build
is not broken, but has the downside of slowing down the build and
causing make check to fail.
I propose we do not enable gold until such a time as we wish to
formally support gold and fix the broken make check.
Does anybody have any objections to doing that?
Thanks,
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Investigated gdb test cases that are failing on
arm-remote gdbserver configuration.
-- Fixed some failures by updating host cross compiler version
-- Fixed some failures by fixing environment issue where not being loaded
properly.
-- All test cases that need to build a shared library and transfer it to
remote target FAIL due to problems which seems like dejaganu limitations.
* Ran GDB test suite on x86_64 remote gdbserver configuration and compared
performance of same configuration on arm.
* Got most documentation ready for Ireland Visa application, still waiting
on invitation letter and hotel booking details.
*** Still No blue-print available to log work in JIRA.
== Plan ==
* Investigate compiler version specific and general failures on arm remote
gdbserver configuration.
* Start on investigation/fixing of arm specific failures in gdb test suite
results.
* Submit Ireland visa application after receiving invitation letter and
hotel booking details.
* Planned Holiday
-- Planned Day off on Friday 12th April 2013 for car checkup in workshop.
== Summary ==
- benchmarking coremark with VRP based extension elimination
* extension elimination in some cases affecting other optimizations
* With this improvements are marginal (details below)
== Plan ==
- study crc where extension elimination is resulting in bad code
- Find a solution
==Details==
If an assignment gimple statement has RHS expression value that can fit
in LHS type, truncation is redundant. Zero/sign extensions are redundant
in this case and rtl statement can be replaced as
from:
(insn 12 11 0 (set (reg:SI 110 [ D.4128 ])
(zero_extend:SI (subreg:HI (reg:SI 117) 0))) c5.c:8 -1
(nil))
to:
(insn 12 11 0 (set (subreg/s/u:HI (reg:SI 110 [ D.4128 ]) 0)
(subreg:HI (reg:SI 117) 0)) c5.c:8 -1
(nil))
With this change, for the following case:
short unPack( unsigned char c )
{
/* Only want lower four bit nibble */
c = c & (unsigned char)0x0F ;
if( c > 7 ) {
/* Negative nibble */
return( ( short )( c - 16 ) ) ;
}
else
{
/* positive nibble */
return( ( short )c ) ;
}
}
asm without elimination
unPack:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
and r0, r0, #15
cmp r0, #7
subhi r0, r0, #16
uxthhi r0, r0
sxth r0, r0
bx lr
.size
asm with elimination
unPack:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
and r0, r0, #15
cmp r0, #7
subhi r0, r0, #16
sxth r0, r0
bx lr
In some cases, changed rtl statement is not eliminated by later passes
and is generated as a mov instruction. Worse, it also seems to affect
the other optimization passes and resulting in worse code for crc. Not
found the cause for it yet.
== Progress ==
* gc sections tests
Completed adding gc-section test cases.
1. TLS and GOT tests.
http://sourceware.org/ml/binutils/2013-03/msg00273.html
2. PLT tests.
http://sourceware.org/ml/binutils/2013-03/msg00273.html
* Evaluate gprof work.
There is one function hook "find_call" which is machine dependent and
is written for i386.c/sparc
Then there are changes in configure.in to add architecture details.
* 1-1 with Matt.
== Plan ==
Continue gprof support work for Aarch64
== Progress ==
* Buildbots
- All ARM build-bots GREEN! Hurray!!! :D
- Improving sort comparison functions makes output reproducible on all
machines
- Fixed fpcmp, which fixes sqlite3 report
- A bad commit broke lots of tests, reverted
- Adding a self-hosting check-all Pandaboard
- In theory, it works, but config is not perfect yet
* Arndale
- Suse image is not stable enough, installed Linaro (325)
- Fathi got GCC bootstrapping with it, should work
- Installed a heat-sink on the board, should reduce problems
- Still got network issues, may be the mac address
- Someone could liaise with Dave Pigott to get a new MAC on the DHCP
* EuroLLVM 2013
- Badges, finishing touches
== Plan ==
* Holidays next week, then
* Check with Galina about Beagle bots
* Finish Panda self-host + test-suite A9 bot
* Gather info and hardware for 3.3 release tests
* Plan for the future!
== Progress ==
* Short week (2 days)
* Tested memcpy on big endian.
* Updated newlib memcpy patch.
* More digging into glibc IFUNC.
== Issues ==
* None.
== Plan ==
* Try and get newlib mempcy patch accepted.
* IFUNC...
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
* Disable-peeling:
- Still waiting for the results from cbuild. Because of many merges
(pre-release week), there are a lot of jobs in the queue :-(
* Libsanitizer:
- tried to understand why isatty(2) returns true when executing the
testsuite via qemu.
* Neon intrinsics codegen:
- benchmarking in bare-machine shows that GCC is actually ~5% faster
than RVCT on this sample codec.
- to be further discussed internally
* Neon intrinsics testsuite:
- looking at FP16 support.
* Turnoff 64bits ops in Neon:
- backport in 4.8 done by Matt during the release merges.
* Arndale: a few attempts to use it, but it's still unstable.
* Internal support
== Next ==
* Disable-peeling: Analyze bench results when available.
* Revert-coalesce-vars: Analyze bench results when available.
* Libsanitizer: contine isatty(2) study wrt qemu/expect.
* Neon intrinsics: check internally for other codecs