This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC 2.7.2.3 good, EGCS 1.0.3 bad for x86 subtract then test
- To: law at cygnus dot com
- Subject: Re: GCC 2.7.2.3 good, EGCS 1.0.3 bad for x86 subtract then test
- From: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>
- Date: Sun, 27 Dec 1998 22:01:46 +1300 (NZDT)
- Cc: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>, Richard Henderson <rth at cygnus dot com>, Jamie Lokier <egcs at tantalophile dot demon dot co dot uk>, Marc Lehmann <pcg at goof dot com>, egcs at cygnus dot com
- References: <"13956.46052.667366.129757"@ongaonga.elec.canterbury.ac.nz><19157.914746295@hurl.cygnus.com>
Jeffrey A Law writes:
> Even if those problems are fixed, consider:
>
> (set (reg1) (mem (blah))
> (set (reg2) (mem (oof))
> (set (reg1) (minus (reg1) (reg2)
> (set (mem (blah)) (reg1))
>
> We would like to be able to convert that into:
>
> (set (reg2) (mem (oof))
> (set (mem (blah)) (minus (mem (blah)) (reg2)
OK, I understand now. I've been weaned off these architectures with
read-modify-write instructions.
I suppose ideally the combiner should be able to handle this kind of
transformation rather than having to pretend that we can support more
esoteric operand combinations that we have to fix up afterwards.
Michael.