This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Allow passing arrays in registers on AArch64
- From: Matthias Klose <doko at debian dot org>
- To: Yufeng Zhang <Yufeng dot Zhang at arm dot com>, Michael Hudson-Doyle <michael dot hudson at linaro dot org>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>, Marcus Shawcroft <Marcus dot Shawcroft at arm dot com>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>, Ian Lance Taylor <iant at golang dot org>
- Date: Fri, 24 Jan 2014 12:54:27 +0100
- Subject: Re: Allow passing arrays in registers on AArch64
- Authentication-results: sourceware.org; auth=none
- References: <87ha93nhl1 dot fsf at canonical dot com> <52D97B6C dot 8010107 at arm dot com>
Am 17.01.2014 19:50, schrieb Yufeng Zhang:
> Hi Michael,
>
> Thanks for the fix. The patch looks OK to me in general, although I have some
> minor comments below.
>
> On 01/17/14 08:22, Michael Hudson-Doyle wrote:
>> Hi, as discussed inhttp://gcc.gnu.org/bugzilla/show_bug.cgi?id=59799
>> GCC currently gets a detail of the AArch64 ABI wrong: arrays are not
>> always passed by reference. Fortunately the fix is rather easy...
>
> Can you please indicate what kind of testing you have run, e.g. regtest on
> aarch64-none-abi?
Test with the trunk (all languages except Ada) with and without this patch:
Running target unix
FAIL: math
FAIL: net
-FAIL: reflect
FAIL: runtime
=== libgo Summary ===
-# of expected passes 118
-# of unexpected failures 4
+# of expected passes 119
+# of unexpected failures 3
/home/doko/gcc/gcc-4.9-4.9-20140122/build/./gcc/gccgo version 4.9.0 20140122
(experimental) [trunk revision 206940] (Ubuntu 4.9-20140122-1ubuntu1)
no other changes for the tests.
I did test with the Linaro 4.8 branch, including FSF changes up to r206935, with
and without this patch:
-FAIL: io
-FAIL: os
-FAIL: reflect
-FAIL: sync
-FAIL: time
-FAIL: archive/zip
-FAIL: database/sql
-FAIL: encoding/base64
-FAIL: go/doc
-FAIL: go/printer
-FAIL: log/syslog
-FAIL: net/http/cgi
-FAIL: net/http/httputil
-FAIL: net/rpc
-FAIL: net/rpc/jsonrpc
-FAIL: old/template
-FAIL: os/exec
-FAIL: os/signal
-FAIL: sync/atomic
-FAIL: text/template
-# of expected passes 99
-# of unexpected failures 23
+# of expected passes 119
+# of unexpected failures 3
there are some XPASS's for quality tests, and FAIL's for the pr36728 quality
tests, however in the past these were always a bit noisy, succeeding or failing
for various builds.
I do see additional fails for:
+FAIL: gcc.dg/simulate-thread/atomic-other-int.c -O0 -g thread simulation test
+FAIL: gcc.dg/simulate-thread/atomic-other-int.c -O2 -g thread simulation test
+FAIL: gcc.dg/simulate-thread/atomic-other-int.c -O3 -g thread simulation test
+FAIL: gcc.dg/simulate-thread/atomic-other-short.c -O0 -g thread simulation test
+FAIL: gcc.dg/simulate-thread/atomic-other-short.c -O2 -g thread simulation test
+FAIL: gcc.dg/simulate-thread/atomic-other-short.c -O3 -g thread simulation test