On 07/17/2015 05:36 AM, Kyrill Tkachov 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?
Thanks,
Kyrill
2015-07-17 Kyrylo Tkachov <kyrylo.tkac...@arm.com>
* combine.c (combine_simplify_rtx): Move simplification step
before various transformations/substitutions.
OK.
jeff