[PATCH]: update to df for mainline.

Michael Matz matz@suse.de
Mon May 15 16:26:00 GMT 2006


Hi,

On Thu, 11 May 2006, Daniel Berlin wrote:

> Based on all of this, it's not actually clear to me that anyone really
> knows all the distinctions that we need to make.

For hardregs everything is easy, because you know exactly which hardregs 
are going to be affected (via subreg_regno_offset()).  For pseudos the 
distinction between a full clobber or only a partial clobber is if the 
size is less or larger than the word_size.

The end-effect is that writes to subregs clobber the whole word(s) where
the outer part is located.  This means if the inner and outer modes need a
different number of words (as per UNITS_PER_WORD) you have a partial
write, i.e. one where parts of the inner reg are live through (namely
those words not affected by the outer subreg).  If both inner and outer
need the same number of words it's a complete clobber.

That's at least how I implemented it once in the new-ra branch, how it's 
currently implemented in GCC, and how it's documented.

Btw: paradoxical subreg writes are of course complete clobbers.


Ciao,
Michael.



More information about the Gcc-patches mailing list