This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Improve things for PR71724, in combine/if_then_else_cond
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>
- Cc: Bernd Schmidt <bschmidt at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 24 Jan 2017 09:38:01 +0100
- Subject: Re: Improve things for PR71724, in combine/if_then_else_cond
- Authentication-results: sourceware.org; auth=none
- References: <889eb12d-a977-de43-22eb-6de0e14183f2@redhat.com> <20170120192414.GY30284@gate.crashing.org>
On 20 January 2017 at 20:24, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> Hi Bernd,
>
> On Fri, Jan 20, 2017 at 01:33:59PM +0100, Bernd Schmidt wrote:
>> So, when looking for situations where we have only one condition, we can
>> try to undo the conversion of a plain REG into a condition, on the
>> grounds that this is probably less helpful.
>>
>> This seems to cure the testcase, but Segher also has a patch in the PR
>> that looks like a good and more direct approach. IMO both should be
>> applied. This one was bootstrapped and tested on x86_64-linux. Ok?
>
> My patch does not cure all problems, it simply simplifies things a bit
> better; but the same is true for your patch if I read it correctly.
>
> Okay for trunk, and I'll do my half as well. Thanks,
>
>
Hi,
It seems that Bernd's patch causes regressions on arm-linux-gnueabihf
--with-cpu=cortex-a5 --with-fpu=vfpv3-d16-fp16:
gcc.target/arm/vselvcdf.c scan-assembler-times vselvs.f64\td[0-9]+ 1
gcc.target/arm/vselvcsf.c scan-assembler-times vselvs.f32\ts[0-9]+ 1
gcc.target/arm/vselvsdf.c scan-assembler-times vselvs.f64\td[0-9]+ 1
gcc.target/arm/vselvssf.c scan-assembler-times vselvs.f32\ts[0-9]+ 1
Maybe the upcoming patch from Segher intends to address this?
Thanks,
Christophe
> Segher
>
>
>> PR rtl-optimization/71724
>> * combine.c (if_then_else_cond): Look for situations where it is
>> beneficial to undo the work of one of the recursive calls.