This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: hard register reload patch
- To: bernds at balti dot cygnus dot co dot uk
- Subject: Re: hard register reload patch
- From: "David S. Miller" <davem at redhat dot com>
- Date: Mon, 13 Dec 1999 05:56:34 -0800
- CC: law at cygnus dot com, amylaar at cygnus dot co dot uk, gcc-patches at gcc dot gnu dot org
- References: <Pine.LNX.4.10.9912131303370.8843-100000@balti.cygnus.co.uk>
Date: Mon, 13 Dec 1999 13:17:55 +0000 (GMT)
From: Bernd Schmidt <bernds@balti.cygnus.co.uk>
On Mon, 13 Dec 1999, Jeffrey A Law wrote:
> Don't we usually write this loop using a "while" so that we strip off any
> nested SUBREGs?
Are nested SUBREGs allowed? I've never seen any, and I do believe I've seen
code that tries to avoid making them.
Technically no. But it can happen when, for example, a TFmode move
splits into DFmode moves which splits into SFmode moves on targets
which can only move values one SFmode register at a time due to some
restriction.
However, the best thing to do in those cases is to just compute and
generate the splits post reload and gen up the hard registers
directly.
Or, one can use alter_subreg, etc.
So what I'm saying is that ports can/do create them sometimes, and
this is probably a bug.
Later,
David S. Miller
davem@redhat.com