This is the mail archive of the gcc@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]

Re: PATCH: extra machine-dependent passes



> 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/


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