PATCH - remove 6 pointer fields from C's lang_identifier

Neil Booth neil@daikokuya.co.uk
Mon Jan 6 23:09:00 GMT 2003


Per Bothner wrote:-

> This patch removes 6 pointer fields from C's lang_identifier,
> saving (ideally) 24 bytes per IDENTIFIER_NODE (on 32-bit systems).

Wow!  This *must* speed up a bootstrap, and have an effect on memory
consumption (and therefore how often we GC).  Please let us know how
much.

> +#define IDENTIFIER_FIELD(NODE, INDEX) \
> +  (IDENTIFIER_FIELD_KIND (NODE) == INDEX\
> +   ? IDENTIFIER_FIELD_DIRECT (NODE) \
> +   : IDENTIFIER_FIELD_KIND (NODE) == IDENTIFIER_EXTENSION_INDEX \
> +   ? IDENTIFIER_FIELD_INDIRECT (NODE, INDEX) \
> +   : NULL_TREE)

Mightn't that be nicer in a true function?  I think such things are
not worth "inlining".

Well done,

Neil.



More information about the Gcc-patches mailing list