> Should UNITS_PER_WORD here be POINTER_SIZE/BITS_PER_UNIT right?

Hmm, yes, presumably, it's the size of the static chain and so a pointer.

> Another UNITS_PER_WORD that I think ought to be
> POINTER_SIZE/BITS_PER_UNIT.  Probably worth a pass over the patch to
> look for this throughout.

Yes, it was very likely enabled only on platforms with word-sized pointers.

> > +ftrampolines
> > +Common Report Var(flag_trampolines) Init(0)
> > +Always generate trampolines for pointers to nested functions
> 
> Even for targets that use procedure descriptors natively?  I'm not sure
> what's the best choice for them -- I could argue either way on this issue.

For targets that use procedure descriptors natively, it's a no-op because the 
entire patch is supposed to be a no-op for them.  I'm going to rephrase.

> I'm probably not well versed enough in this aspect of the various
> targets's ABIs to review the target stuff.  We'll want/need the target
> maintainers to chime in.  That might be easier if the target bits were
> split out into their own patches.

Good idea, I'll do that.

> "number of bytes", don't you mean "number of bits" in the last paragraph?

Yes, that's confused, I'll rephrase too.

> > Index: tree-nested.c
> > ===================================================================
> > --- tree-nested.c   (revision 237789)
> > +++ tree-nested.c   (working copy)
> > @@ -21,6 +21,7 @@
> > 
> >  #include "system.h"
> >  #include "coretypes.h"
> >  #include "backend.h"
> > 
> > +#include "target.h"
> 
> Not real happy to see target stuff getting into tree-*.  Is this really
> needed?

It's the target hook mentioned earlier, e.g. for targets that use procedure 
descriptors natively we don't want to create generic descriptors but use the 
regular "degenerated" trampolines.

> I think the biggest issues are the ABI concerns and getting the target
> maintainers to take a looksie.  Everything else looks pretty good.

Thanks for the review.

-- 
Eric Botcazou

Reply via email to