PP: Non-functional: Only use string <-> atom mapping when needed.

Also, eliminate the 'atom' field of TPpToken.

Parsing a real 300 line shader, through to making the AST, is about 10% faster.

Memory is slightly reduced (< 1%).

The whole google-test suite, inclusive of all testing overhead, SPIR-V generation,
etc., runs 3% faster.

Since this is a code *simplification* that leads to perf. improvement, I'm not
going to invest too much more in measuring the perf. than this. The PP code is
simply now in a better state to see how to further rationalize/improve it.
This commit is contained in:
John Kessenich 2016-12-20 21:47:30 -07:00
parent 54af2de761
commit 907aabb6b0
7 changed files with 74 additions and 63 deletions

View file

@ -218,7 +218,6 @@ int TPpContext::ReadToken(TokenStream& pTok, TPpToken *ppToken)
switch (ltoken) {
case PpAtomIdentifier:
ppToken->atom = LookUpAddString(ppToken->name);
break;
case PpAtomConstString:
break;