This is the mail archive of the
mailing list for the GCC project.
Re: Reorder/combine insns on superscalar arch
- From: Richard Henderson <rth at redhat dot com>
- To: Bernd Schmidt <bernds_cb1 at t-online dot de>, Jeff Law <law at redhat dot com>, Igor Shevlyakov <igor dot shevlyakov at gmail dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 15 Jan 2016 12:16:23 -0800
- Subject: Re: Reorder/combine insns on superscalar arch
- Authentication-results: sourceware.org; auth=none
- References: <CAB=oy58R6YVSgFjXC12fS+zQ1MX1Xa9SE84hUOyEAxYEMoUjRA at mail dot gmail dot com> <56987BDB dot 1060105 at redhat dot com> <CAB=oy5--6qyYuz7DKLqjmSyAfLBe1g5uqAEuS-PEQc872FF_5g at mail dot gmail dot com> <56988C36 dot 7060908 at redhat dot com> <5698FCE5 dot 2040907 at t-online dot de>
On 01/15/2016 06:06 AM, Bernd Schmidt wrote:
> On 01/15/2016 07:05 AM, Jeff Law wrote:
>> Well, you have to write the pattern and a splitter. But these days
>> there's define_insn_and_split to help with that. Reusing Bernd's work
>> may ultimately be easier though.
> Maybe, but maybe also not in the way you think. I've always wanted the ability
> to combine 2->2 insns, for cases like this. The parallel would be split into
> two separate insns if it doesn't match. This would allow more complicated forms
> to be used if they are equally cheap, and can lead to elimination of
> instructions if it triggers more combinations.
Maybe it's the same thing in the end, but I was thinking more in terms of 2->1
or 3->1, but without deleting some of the input instructions if their outputs
are still used.