Devang Patel <dpatel at apple dot com> writes:
This patch gives 10% or more compile time speed up for real life
projects I used to measure compile time. It adds use of hash table
for tags lookup.
I was just meaning to respond to the draft patch you sent last week.
I think use of a hash table per binding level is overkill. All you
need to do is add a field to struct lang_identifier (call it
tag_value), create an IDENTIFIER_TAG_VALUE macro to get at it given
an IDENTIFIER_NODE, and then manage it the same way that
IDENTIFIER_LOCAL_VALUE is currently managed -- look at poplevel.
This is essentially the approach that I took doing the same thing, but
if you restrict yourself to this change you shouldn't run into the
headaches that I did. We will get the memory back when I do finish my
symbol lookup patch, so don't worry about bloating lang_identifier.
zw