This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH]: update to df for mainline.


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]