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: rs6000 fused multiply-add patch [+ patchlet]


kenner@vlsi1.ultra.nyu.edu (Richard Kenner) writes:

>     Without it, lots of simplifications don't ever get applied.
>     This results in worse code.  For example, with the patch
>     applied, bootstrap time goes down by a few percent
>     (powerpc-unknown-linux-gnu), as well as code size.
>
>     One common example is, without the patch, computations involving
>     bitfields use mfcr insns; with it, they use logic instructions.
>
> But that's not what combine is supposed to do!  The purpose of
> combine is what it's name says, to *combine* insns.

That's what it has historically done, but that is not adequate reason
to refuse to make it do something else, if the something else is a
more effective optimization.  It sounds like you are reacting
negatively to this patch without even considering what merit it might
have.

The alternative you and others have suggested -- adding splitters to
the machine description -- neglects to consider that this change
potentially benefits *all* architectures, and without requiring
backend authors to jump through even more hoops than they already do.

I am not saying that this patch should definitely be applied; I just
think it is worthy of serious consideration on its technical merits,
rather than being blown off because it makes the name "combine.c"
marginally inaccurate.

zw


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