[PATCH] D127357: [pseudo] wip/prototype: use LR0 instead of SLR1 table
Sam McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 21 09:32:24 PDT 2022
sammccall added a comment.
Current numbers from my machine:
Parse time (`ClangPseudoBenchmark SemaCodeComplete.cpp --benchmark_filter=glrParse --benchmark_min_time=10`)
old: glrParse 167033209 ns 167026892 ns 84 bytes_per_second=2.24031M/s
new: glrParse 192320371 ns 192305530 ns 72 bytes_per_second=1.94582M/s
13% slowdown
LR Table (`clang-pseudo -source SemaCodeComplete.cpp -strip-directives -print-statistics`):
old:
Statistics of the LR parsing table:
number of states: 1480
number of actions: 84136
size of the table (bytes): 342564
new:
Statistics of the LR parsing table:
number of actions: shift=13741 reduce=1115 goto=14789
size of the table (bytes): 401538
20% increase presumably due to sparseness of the shift/goto hashtables, i'll dig into it
Forest (`clang-pseudo -source SemaCodeComplete.cpp -strip-directives -print-statistics`):
old:
Forest bytes: 11055328 nodes: 651678
GSS bytes: 20640 nodes: 574449
new:
Forest bytes: 16747864 nodes: 989322
GSS bytes: 28832 nodes: 882916
52% increase due to incorrect reductions performed
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127357/new/
https://reviews.llvm.org/D127357
More information about the cfe-commits
mailing list