Hi folks,
I found an issue while fixing a test using the wrong VMUL.f32, and I'd like
to know what should be our choice on this topic that is slightly
controversial.
Basically, LLVM chooses to lower single-precision FMUL to NEON's VMUL.f32
instead of VFP's version because, on some cores (A8, A5 and Apple's Swift),
the VFP variant is really slow.
This is all cool and dandy, but NEON is not IEEE 754 compliant, so the
result is slightly different. So slightly that only one test, that was
really pushing the boundaries (ie. going below FLT_MIN) did catch it.
There are two ways we can go here:
1. Strict IEEE compatibility and *only* lower NEON's VMUL if unsafe-math is
on. This will make generic single-prec. code slower but you can always turn
unsafe-math on if you want more speed.
2. Continue using NEON for f32 by default and put a note somewhere that
people should turn this option (FeatureNEONForFP) off on A5/A8 if they
*really* care about maximum IEEE compliance.
Apple already said that for Darwin, 2 is still the option of choice. Do we
agree and ignore this issue? Or for GNU/EABI we want strict conformance by
default?
GCC uses fmuls...
cheers,
--renato
Hello,
I am having an issue with using the gcc toolchain for armv8. I am trying to
cross compile a simple program (helloworld.c) as suggested in the link :
https://wiki.linaro.org/HowTo/HelloAarch64.
But when I try executing the binary on the simulated armv8 (using
foundation model), I am getting error in GLIBC, specifically
"/lib/libc.so.6: version `GLIBC_2.16' not found" . Could you please help me
as to what could be wrong here?
Thanks,
Pavan
== Progress ==
* Analyzed Android kernel linker issue and created LP #1154165 to track it.
* Triaged remaining binutils Launchpad tickets.
* Setup my Pandaboard with Linaro 13.01 (13.02 oopses on boot) to run tests.
* binutils: Committed fix for LP #517081 (Floating-point assembly and
disassembly bugs on armel) upstream.
* binutils: Committed a fix for ARM EABI tests upstream.
* Lots of admin stuff.
== Plan ==
* Get binutils testsuite green in a native configuration (fix LP #812276).
* Investigate getting binutils testuite automated via cbuild/Lava.
* More bugs...
--
Will Newton
Toolchain Working Group, Linaro
== Progress ==
Reviewing GDB tests that FAIL due to timeout problems in remote
configuration.
Made some changes to some of the GDB tests that FAIL on arm targets to
check if they work by minor modifications.
Sick Days: Had been sick due to cough n fever and a drop in blood pressure
made me take most part of Thursday and Friday off.
== Plan ==
Get with Matt for Post- Connect work targets.
Review remaining GDB tests that FAIL due to timeout problems in remote
configuration.
Further experiments with GDB test suite to check support for unsupported
tests on arm.
The Linaro Toolchain and Platform Working Groups are pleased to announce
the 2013.03 release of the Linaro Toolchain Binaries, a pre-built version
of Linaro GCC and Linaro GDB that runs on generic Linux or Windows and
targets the glibc Linaro Evaluation Build.
Uses include:
* Cross compiling ARM applications from your laptop
* Remote debugging
* Build the Linux kernel for your board
What's included:
* Linaro GCC 4.7 2013.03
* Linaro GDB 7.5 2012.12
* A statically linked gdbserver
* A system root
* Manuals under share/doc/
The system root contains the basic header files and libraries to link your
programs against.
Interesting changes include:
* gcc updated to 4.7-2013.03:
* Updates to GCC 4.7.2+svn196272
* Includes arm/aarch64-4.7-branch up to svn revision 196225
* A fix for LP #1135633: [linaro regression] alsa-tools FTBFS with error
"unable to find a register to spill in class ‘AREG’"
The Linux version is supported on Ubuntu 10.04.3 and 12.04, Debian 6.0.2,
Fedora 16, openSUSE 12.1, Red Hat Enterprise Linux Workstation 5.7 and
later, and should run on any Linux Standard Base 3.0 compatible
distribution. Please see the README about running on x86_64 hosts.
The Windows version is supported on Windows XP Pro SP3, Windows Vista
Business SP2, and Windows 7 Pro SP1.
The binaries and build scripts are available from:
https://launchpad.net/linaro-toolchain-binaries/trunk/2013.03
Need help? Ask a question on https://ask.linaro.org/
Already on Launchpad? Submit a bug at
https://bugs.launchpad.net/linaro-toolchain-binaries
On IRC? See us on #linaro on Freenode.
Other ways that you can contact us or get involved are listed at
https://wiki.linaro.org/GettingInvolved.
Short week to ...
== Progress ==
* Configured GCC testsuite to run on the Foundation model.
* Boehm GC AArch64 support:
- Submitted gc integration patch in GCC upstream for review.
- libatomic_ops AArch64 support branch re-tested and merged in mainline.
== Next ==
* AArch64 libunwind support.
== Progress ==
- Closed the blue print for gc-sections implementation since the patch
got upstreamed.
- Opened new blue print for adding more test coverage to gc-sections tests.
- Submitted a patch to enable missed out gc-sections test cases from
ld-elf group.
- Wrote gc-sections test cases for few GOT related relocs.
== Plan ==
- Understand equivalences created during CFG traversal for jump threading.
- Look at GCC code for a simple test case where jump threading is missed out.
- Continue writing gc-sections test cases for remaining relocs.
== Progress ==
- Monday was a public holiday
- Studied benchmarks and analysed the rtl/asm for redundant sign extensions
- Came up with simple test cases based on this (have 6 test cases now)
- Looked at gcc tree documentations and helper macros; tried it by
adding more debug dumps for types at tree level
== Plan ==
- Start with the algorithm for sign extension elimination
- Skipping manual changes at source level/asm level to see the
performance improvement for now.
Short week...
== Progress ==
* Catch up on internal tasks / email that piled up during holidays + Connect
* Resumed work on disable-peeling:
- local benchmarking on snowball
- restarting benchmarks via cbuild for an additional check
== Next ==
* Check benchmark results on disable-peeling
* Have a look at how to dejagnu-ize my Neon intrinsic tests
* Check results of libsanitizer branch
* Check results of 'revert-coalesce' branch
* Check bench results of '4.7-backport-vect-cost-model'
* Check bench results of '4.7-turnoff-64bits-ops'
* Investigate why cbuild did not generate all the comparisons I
expected (*-diff.txt files)
* Check whether 2013.03 release process exposed the same problems I
observed with 2013.02.
Progress (in a 1 day week...):
* qemu maintenance:
** released qemu-linaro 2013.03
** arm-devs pullreq
* VIRT-4 [Guest migration support for KVM]
** audited vexpress code for migration issues: there are a few
devices needing minor cleanup, and one (pflash_cfi01) which
has no migration support at all and needs it writing
* KVM other:
** reviewed virtio-blk refactoring patchset
-- PMM