This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: rs6000 fused multiply-add patch [+ patchlet]
- From: Zack Weinberg <zack at codesourcery dot com>
- To: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Cc: segher at koffie dot nl, gcc-patches at gcc dot gnu dot org
- Date: Sun, 05 Jan 2003 15:23:52 -0800
- Subject: Re: rs6000 fused multiply-add patch [+ patchlet]
- References: <10212311201.AA11307@vlsi1.ultra.nyu.edu>
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