Hi there. The new porter boxes are now available for use. See:
https://wiki.linaro.org/WorkingGroups/ToolChain/Hardware
for details.
These are PandaBoards with 768 MB of memory, a USB HDD, and a good
internet connection. They can be used for day to day jobs like
building programs, triaging bugs, and running benchmarks.
Use dchroot natty to switch into the chroot. Use sudo apt-get install
yyy to install packages. The build dependences for GCC, GDB, and
binutils should already be installed.
-- Michael
Hi,
* continued bringing patches upstream
- changing default vector size to 128 - resubmitted with changes
according to comments, awaiting review
- if-conversion improvement - committed
* PR 48252 - bug in vzip/vuzp/vtrn implementation - patch submitted
* opened PR 48454 - a test failure with -mvectorize-with-neon-quad
Next week - vacation.
April 18-27 - Passover Holiday, I'll only work half days on April 18
and April 24. And possibly half days on April 20 and 21.
Ira
== GDB ==
* Ongoing work to fix single-stepping over signal handlers (bug #615978).
* Posted patch to support NEON registers in core files (bug #615972).
* Failure to disable address space randomization (bug #616001) is shown
to be a kernel problem; created stand-alone test case and opened bug
against kernel team.
== Schedule ==
* On vacation 04/07 - 04/15.
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand | Phone: +49-7031/16-3727
STSM, GNU compiler and toolchain for Linux on System z and Cell/B.E.
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter | Geschäftsführung: Dirk
Wittkopp
Sitz der Gesellschaft: Böblingen | Registergericht: Amtsgericht
Stuttgart, HRB 243294
On 25/03/11 21:48, Diane Holt wrote:
> I hope you don't mind me sending you mail, but I'm a bit stuck...I've
> been told I need the Linaro 4.5.2 toolchain because it has some "neon
> optimizations" that the CS 4.5.1 doesn't have.
In general, you'd be better addressing these questions on the Linaro
Toolchain mailing list: linaro-toolchain(a)lists.linaro.org (I've copied
it in).
Not least because I'm on vacation for the next week. :)
> Unfortunately, the Linaro
> 4.5.2 that's available for download (already built) won't work in my
> Scratchbox environment, since it was compiled against a glibc that's too
> new. The CS 4.5.1 works fine -- but I'm not allowed to use it, because
> of the neon stuff.
The CS and Linaro compilers are really very similar, but CodeSourcery
has not made a release since the autumn, so Linaro will have some extra
features.
> Do you know whether CS actually does have (or will have) the same neon
> optimizations Linaro has?
It depends which optimizations you are referring to? The existing CS
release had the latest improvements at the time it was released, and I
believe that the upcoming release will probably be very similar to
Linaro (at least, with respect to ARMv7 - there'll be many differences
for other architecture variants), but I'm not promising that.
Sorry if that's a bit vague, but I the contents of the next CS release
is still not finalised.
> If it doesn't (and won't), then I'm going to have to build the Linaro
> one from source. Unfortunately, I've not been able to find any detailed
> information on how to go about doing that. Do you know if that's
> documented anywhere?
Are you talking about building native compiler, or a cross-compiler? The
former is very simple (provided you have all the dependencies), while
the latter is more involved.
Here's the recipe to build a native compiler:
tar xf gcc-linaro.....tar.bz2
mkdir objdir
cd objdir
../gcc-linaro....../configure --prefix=<your-install-path> <opts>
make bootstrap
make install
You can copy the configure <opts> from another compiler using 'gcc -v'
and './configure --help' in the source tree should tell you what they mean.
If you want to build a cross compiler, I suggest you look at crosstool
or crosstool-ng, or OpenEmbedded. Building cross-toolchains is non-trivial.
Hope that helps.
Andrew
== Last week ==
* Finished the patch that I was working on last week to use memory operands
rather than register operands in neon.md. Submitted upstream:
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01996.html
Among other things, this allows the intrinsics to use post-modified
addresses.
* Submitted patches to make the number of rtl generator arguments
(as opposed to insn operands) available to the expand-time code:
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg02227.htmlhttp://gcc.gnu.org/ml/gcc-patches/2011-03/msg02228.htmlhttp://gcc.gnu.org/ml/gcc-patches/2011-03/msg02229.html
This is part of the tree-rtl expansion "cleanups" that I've been
doing in preparation for the vectoriser work.
* More discussion about the handling of type modes vs. per-function
target switching. I've think we've agreed what the right approach is,
although it's probably outside the scope of this project. The discussion
was still useful because it meant I could submit & defend the next patch.
* Submitted a patch to use non-BLK modes for arrays of vectors
(like uint32x2x2_t & co. in arm_neon.h);
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg02192.html
This avoids that stack spilling that was discussed during the week.
Richard Guenther seemed happy with the patch in principle, but
understandably wanted to see how the optabs stuff worked out first.
Also, the testcase he asked me to try exposed another instance of:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46329
so that needs to be fixed first.
* Started writing & testing a fix for that PR (46329).
== This week ==
* Finish fix for PR46329.
* More vld & vst stuff.
Richard
== Last week ==
* PR48250 / CS Issue #9845 / Launchpad #723185. Unaligned DImode reload
under NEON. Went back and forth with Richard Earnshaw on gcc-patches for
most of the week. The issues should finally be clear, and I think it
would be better to modify the significant parts of
arm_legitimize_reload_address() to do the right thing rather than just
fixing the bug. I have a new patch done over the weekend, though it
still shows a few regressions after some testing. I hope this gets done
by this week...
* PR48325 / Launchpad #744754, another NEON ICE in postreload. This
appears to be the IA/DB modes for VLDM/VSTM for NEON struct modes were
not enabled. This ICE actually does not happen currently on upstream
trunk, but sent patch anyways. Pending review.
* Spent some time on Launchpad #736661 (C++ ICE in expr.c), and looked
at upstream testsuite regressions of gcc.dg/pr17957.c and
gcc.dg/torture/pr47975.c under -mfpu=neon (ICE on OImode const0_rtx
assignment).
* Call with Ramana on ARM optimization work.
== This week ==
* Get PR48250/Launchpad #723185 nailed.
* Other pending GCC issues.
* TW Public Holiday, Mon. and Tue. (Apr.4-5)
The Bazaar team have been working on improving the performance of bzr
on the gcc-linaro tree. Here's how long the steps take on my machine
with the current 2.4 development version:
Update tip before branching:
bzr pull 20.4 s (no revisions)
Make the branch:
bzr branch --hardlink 4.5 optspace 26.8 s
Do some work and commit it:
...change two files
bzr status 1:05
(again) bzr status 1.7 s
bzr commit . 3.6 s
Push the changes up:
bzr push lp:~michaelh1/gcc-linaro/optspace 3:47 ~9 MB (~40 kB/s
which is saturating my uplink)
Later, the merge master pulls the branch down and merges:
bzr branch --no-tree lp:~michaelh1/gcc-linaro/optspace 36 s ~900 k
bzr merge ../optspace 3:26
The bzr status and bzr commit are quite good. I've asked them to look
into bzr merge.
-- Michael