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