This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Adjust builtin-bswap-6/7


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
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]