new register allocator and HARD_REGNO_CALL_PART_CLOBBERED

Alexandre Oliva aoliva@redhat.com
Fri May 16 00:57:00 GMT 2003


On May 15, 2003, Daniel Berlin <dberlin@dberlin.org> wrote:

> You keep using "pollute" like the info shouldn't be there.

I use pollute because I was thinking clobbers in a parallel to a call,
like some patterns I've seen floating around.  The way it should
probably be done is to have reg notes or call insn usage or something
that points at a data structure defining the clobbered set of that
call instruction.  However, since most of the times the calling
conventions are going to be whatever the platform's ABI says, no more
and no less, there's no sense in creating additional rtx and adding to
every call insn: we just look at the targetm data structure or
something and use the default clobber set.

Partial saves added a new twist that rth and I hadn't considered when
we talked about this feature and came up with the design above a few
days ago.  Presumably we could have per-mode bitsets as well (or
instead of) absolute saved/clobbered definitions added to the
call insn clobbered data structure.

None of this, however, changes the fact that the feature has to be
supported by the register allocator, which is what I understand we
were debating in this thread.  The exact way to represent the ABI
requirements is secondary, and the design is definitely open for
discussion.

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer



More information about the Gcc mailing list