This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Adjust builtin-bswap-6/7
- From: Andreas Krebbel <krebbel at linux dot vnet dot ibm dot com>
- To: Jakub Jelinek <jakub at redhat dot com>, Richard Biener <richard dot guenther at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 08 Apr 2014 10:53:19 +0200
- Subject: Re: [PATCH] Adjust builtin-bswap-6/7
- Authentication-results: sourceware.org; auth=none
- References: <20140404161818 dot GA26795 at bart> <533EF13A dot 8010001 at redhat dot com> <CAFiYyc32Squ0DrZOGKRpsdF--qoxXUM5mgEjeNf_USdgJP+LUQ at mail dot gmail dot com> <20140407162214 dot GA25019 at maggie> <CAFiYyc2AGM9UVmxWi9_rvXfB=1RUV493BG3OCBWTOSg=GN=V0Q at mail dot gmail dot com> <20140408084138 dot GA1817 at tucnak dot redhat dot com>
On 04/08/2014 10:41 AM, Jakub Jelinek wrote:
> On Tue, Apr 08, 2014 at 10:26:30AM +0200, Richard Biener wrote:
>> On Mon, Apr 7, 2014 at 6:22 PM, Andreas Krebbel
>> <krebbel@linux.vnet.ibm.com> wrote:
>>> On Mon, Apr 07, 2014 at 04:19:06PM +0200, Richard Biener wrote:
>>>> The adjusted testcases now fail on x86_64/i?86 at least. See PR60776.
>>>
>>> They seem to require at least -O2 on x86 with that change. Ok to apply?
>>
>> Hmm, they passed before your change. Do you mean that this was
>> by accident (and only because of the special return value)? If so then
>> the patch is ok.
>
> The reason why it worked with the if ... return 1; else return 0; case is
> that in that case it has already been expanded as store flag insn and thus
> in that case ce1 pass didn't discover the conditional move there, thus no
> dead code waiting to be eliminated after ce1 and still present during
> combine pass.
>
> Another alternative for -O2 would be -O -fno-if-conversion I guess.
I could also revert the testcase changes and add -mbranch-cost=2 for s390?!
>
> OT, when touching the testcase, I'd say it would be better if you've
> converted it to single dg-options + /* { dg-additional-options "-march=z900" { target s390*-*-* } } */
Ok.
Bye,
-Andreas-
>
>>> --- a/gcc/testsuite/gcc.dg/builtin-bswap-6.c
>>> +++ b/gcc/testsuite/gcc.dg/builtin-bswap-6.c
>>> @@ -1,7 +1,7 @@
>>> /* { dg-do compile { target arm*-*-* alpha*-*-* i?86-*-* powerpc*-*-* rs6000-*-* x86_64-*-* s390*-*-* } } */
>>> /* { dg-require-effective-target stdint_types } */
>>> -/* { dg-options "-O -fdump-rtl-combine" } */
>>> -/* { dg-options "-O -fdump-rtl-combine -march=z900" { target s390-*-* } } */
>>> +/* { dg-options "-O2 -fdump-rtl-combine" } */
>>> +/* { dg-options "-O2 -fdump-rtl-combine -march=z900" { target s390-*-* } } */
>>>
>>> /* The test intentionally returns 1/2 instead of the obvious 0/1 to
>>> prevent GCC from calculating the return value with arithmetic
>>> diff --git a/gcc/testsuite/gcc.dg/builtin-bswap-7.c b/gcc/testsuite/gcc.dg/builtin-bswap-7.c
>>> index 0eecdd8..98529f2 100644
>>> --- a/gcc/testsuite/gcc.dg/builtin-bswap-7.c
>>> +++ b/gcc/testsuite/gcc.dg/builtin-bswap-7.c
>>> @@ -1,7 +1,7 @@
>>> /* { dg-do compile { target arm*-*-* alpha*-*-* ia64*-*-* x86_64-*-* s390x-*-* powerpc*-*-* rs6000-*-* } } */
>>> /* { dg-require-effective-target stdint_types } */
>>> /* { dg-require-effective-target lp64 } */
>>> -/* { dg-options "-O -fdump-rtl-combine" } */
>>> +/* { dg-options "-O2 -fdump-rtl-combine" } */
>>>
>>> /* The test intentionally returns 1/2 instead of the obvious 0/1 to
>>> prevent GCC from calculating the return value with arithmetic
>>>
>
> Jakub
>