[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