This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- From: Alexandre Oliva <aoliva at redhat dot com>
- To: Daniel Berlin <dberlin at dberlin dot org>
- Cc: Michael Matz <matz at suse dot de>, Joern Rennecke <joern dot rennecke at superh dot com>, Herman ten Brugge <hermantenbrugge at home dot nl>, Dale Johannesen <dalej at apple dot com>, <gcc at gcc dot gnu dot org>
- Date: 15 May 2003 21:57:24 -0300
- Subject: Re: new register allocator and HARD_REGNO_CALL_PART_CLOBBERED
- Organization: GCC Team, Red Hat
- References: <18477718-8732-11D7-BF73-000A95A34564@dberlin.org>
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