This is the mail archive of the
mailing list for the GCC project.
Re: Reorder/combine insns on superscalar arch
- From: Bernd Schmidt <bernds_cb1 at t-online dot de>
- To: 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 15:06:29 +0100
- 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>
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.
I had a patch for this... 20 years ago. It was in pgcc for a while but
apparently it had some bookkeeping problems. It would be nice to solve
this at some point.