This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: extra machine-dependent passes
- To: law at redhat dot com
- Subject: Re: PATCH: extra machine-dependent passes
- From: DJ Delorie <dj at redhat dot com>
- Date: Mon, 18 Jun 2001 11:29:12 -0400
- CC: gcc at gcc dot gnu dot org
- References: <3129.992876405@localhost.localdomain>
> If we really need something like this, then let's write a pass to do it,
Can we do this?
Create a function
rtx gen_reg_initial_hard_value (int regno);
This function returns a pseudo that corresponds to the initial value
hard register `regno' had at the beginning of the function. It will
coordinate any mark/sweep logic needed for GC. Inline integration
will "magically happen". A SET rtx is automatically added to
functions that need it, for each such pseudo.
This function would be used by any port needing to keep track of a RA
register, PIC/GP registers, or whatnot.
Question: Can you create a pseudo globally? I.e. call gen_reg_rtx and
store the value in a global, to be reused for multiple functions.
init_emit() would need to be modified to bump reg_rtx_no. Otherwise,
we'd need to keep track of such pseudos on a per-function basis, and
have inline integration stitch them together.
> which is big enough to drive a mac truck through.
What's wrong with Mack Trucks? http://www.macktrucks.com/