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][combine][1/2] Try to simplify before substituting





> On Jul 17, 2015, at 7:36 PM, Kyrill Tkachov <kyrylo.tkachov@arm.com> wrote:
> 
> 
>> On 16/07/15 19:28, Segher Boessenkool wrote:
>> On Thu, Jul 16, 2015 at 07:17:54PM +0100, Kyrill Tkachov wrote:
>>>> If you always want to simplify first, does it work to move this whole big
>>>> block behind the simplify just following it?  Or do you want to simplify
>>>> after the transform as well?
>>> You mean move this hunk outside the "if (BINARY_P (x)...)" block it's in?
>>> I think it would work, but I'm not sure if it would affect other cases.
>>> I was also conscious that simplify_rtx might not be a cheap function to call
>>> so frequently (or is it? I didn't profile it), so I tried to avoid calling
>>> it unless I need for the transformation in question here.
>> I mean move the whole "if (BINARY_P ..." block to after the existing
>> simplify calls, to just before the "First see if we can apply" comment,
>> and not do a new simplify_rtx call at all.  Does that work?
> 
> Yes, and here's the patch.
> It just moves the simplification block.
> The effect on codegen in SPEC2006 on aarch64 looks sane in the same
> way as the original patch I posted (i.e. many redundant zero_extends eliminated)
> and together with patch 2/2 this helps in the -abs testcase.
> 
> I'm bootstrapping this on aarch64, arm and x86.
> Any other testing would be appreciated.
> 
> Is this version ok if testing comes clean?

This combined with the other patch looks much better than the original target specific hack. And it goes to show that doing it in a non-target specific way can improve other cases you did not see before. 

Thanks,
Andrew

> 
> Thanks,
> Kyrill
> 
> 2015-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>    * combine.c (combine_simplify_rtx): Move simplification step
>    before various transformations/substitutions.
> 
> 
> <combine-2.patch>


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