This is the mail archive of the
mailing list for the GCC project.
Re: cr logical insn implementation for rs6000
- To: Geoff Keating <geoffk at cygnus dot com>
- Subject: Re: cr logical insn implementation for rs6000
- From: Michael Meissner <meissner at cygnus dot com>
- Date: Wed, 6 Sep 2000 15:43:07 -0400
- Cc: gcc-patches at gcc dot gnu dot org
- References: <200009060608.XAA03845@localhost.cygnus.com>
On Tue, Sep 05, 2000 at 11:08:25PM -0700, Geoff Keating wrote:
> This patch represents the CR logical operations for rs6000
> in RTL, explains them (well, somewhat) to the scheduler,
> and changes the branch-emitting logic and sCOND-emitting logic to use
> There are still a few pieces to do:
> - Remove the %D output_operand modifier
> - Update the call architecture to use the new insns
> - Perhaps even try to make combine use the new insns
> to reduce the number of branches.
> I hope even this much is a significant improvement.
Have you tested the changes on real machines to make sure that it is indeed a
win? I'm not trying to be a grump or anything, but when I was doing the
original 750 work, I was surprised to find that cror and friends (on the 750
and 604 varients, but not on the 603 IIRC) were serializing instructions, while
branches were not, so you could have sequences that were slower in real life
than what they replaced. Of course given the horrid code that is generated
when BRANCH_COST is > 1 (generate two SCC instructions, & or | them together,
and then do another comparison), it might still be a win.
You might want to look at finishing up the -foptimize-comparisons work and
enable it for the rs/6000 as well.
Michael Meissner, Red Hat, Inc.
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work: email@example.com phone: +1 978-486-9304
Non-work: firstname.lastname@example.org fax: +1 978-692-4482