This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Improve DOM's ability to derive equivalences when traversing edges
- From: Jeff Law <law at redhat dot com>
- To: Christophe Lyon <christophe dot lyon at linaro dot org>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 29 Aug 2017 09:28:50 -0600
- Subject: Re: Improve DOM's ability to derive equivalences when traversing edges
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=law at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 20BA481DE3
- References: <6eee6bd5-cb64-925f-dfcd-e0dbdfbb835d@redhat.com> <CAKdteObUstu_dnzqEPEQBdbP6M9g1xEYzxkvwCv3+fX5Tc4K=g@mail.gmail.com>
On 08/29/2017 03:13 AM, Christophe Lyon wrote:
> Hi Jeff,
[ ... ]
>>
>> commit a370df2c52074abbb044d1921a0c7df235758050
>> Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
>> Date: Tue Aug 29 05:03:36 2017 +0000
>>
>> * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
>> derive_equivalences.
>> (derive_equivalences_from_bit_ior, record_temporary_equivalences):
>> Code moved into....
>> (edge_info::derive_equivalences): New private member function
>>
>> * gcc.dg/torture/pr57214.c: Fix type of loop counter.
>> * gcc.dg/tree-ssa/ssa-sink-16.c: Disable DOM.
>> * gcc.dg/tree-ssa/ssa-dom-thread-11.c: New test.
>> * gcc.dg/tree-ssa/ssa-dom-thread-12.c: New test.
>> * gcc.dg/tree-ssa/ssa-dom-thread-13.c: New test.
>> * gcc.dg/tree-ssa/ssa-dom-thread-14.c: New test.
>> * gcc.dg/tree-ssa/ssa-dom-thread-15.c: New test.
>> * gcc.dg/tree-ssa/ssa-dom-thread-16.c: New test.
>> * gcc.dg/tree-ssa/ssa-dom-thread-17.c: New test.
>>
>> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251397 138bc75d-0d04-0410-961f-82ee72b054a4
>>
>
> 3 of the new tests fail on arm-none-linux-gnueabihf
> --with-cpu=cortex-a15 --with-fpu=vfpv3-d16-fp16
>
> FAIL: gcc.dg/tree-ssa/ssa-dom-thread-11.c scan-tree-dump-times dom2
> "Threaded" 1
> FAIL: gcc.dg/tree-ssa/ssa-dom-thread-14.c scan-tree-dump-times dom2
> "Threaded" 1
> FAIL: gcc.dg/tree-ssa/ssa-dom-thread-16.c scan-tree-dump-times dom2
> "Threaded" 1
>
> they do pass when configuring for cpu cortex-a9/a15 and fpu neon-fp16/neon-vfpv4
>
> I do not have the dumps since it's automated testing; let me know if
> you need me to
> reproduce it manually and extract the dumps.
Strange. I can't reproduce this.
/home/law/gcc-testing/gcc2/configure --target=arm-none-linux-gnueabihf
--with-cpu=cortex-a15 --with-fpu=vfpv3-d16-fp16
[ Wait for build... ]
make check-gcc RUNTESTFLAGS=tree-ssa.exp=ssa-dom-thread-11.c
Gets me 2 passes. If I run it manually and look at the dumps it
produces exactly the code I would expect.
Is something perhaps passing down a -mtune or other option?
./cc1 -quiet -v -iprefix
/opt/notnfs/law/gcc-testing/arm/gcc/../lib/gcc/arm-none-linux-gnueabihf/8.0.0/
-isystem ./include -isystem ./include-fixed j.c -quiet -dumpbase j.c
-mcpu=cortex-a15 -mfpu=vfpv3-d16-fp16 -mtls-dialect=gnu -marm
-march=armv7ve -auxbase j -O2 -version -o /tmp/cc6vzJl6.s
-fdump-tree-all-blocks-details
GNU C11 (GCC) version 8.0.0 20170829 (experimental)
(arm-none-linux-gnueabihf)
compiled by GNU C version 6.3.1 20161221 (Red Hat 6.3.1-1), GMP
version 6.1.1, MPFR version 3.1.5, MPC version 1.0.2, isl version none
I'm happy to dig further and make sure we get the selectors right, but I
have to be able to reproduce the problem first :-)
jeff