Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[analyzer][HTMLRewriter] Cache partial rewrite results. #80220

Merged

Commits on Feb 1, 2024

  1. [analyzer][HTMLRewriter] Cache partial rewrite results.

    This is a follow-up for 721dd3b [analyzer] NFC: Don't regenerate duplicate
    HTML reports.
    
    Because HTMLRewriter re-runs the Lexer for syntax highlighting and
    macro expansion purposes, it may get fairly expensive when the rewriter
    is invoked multiple times on the same file. In the static analyzer
    (which uses HTMLRewriter for HTML output mode) we only get away with this
    because there are usually very few reports emitted per file.
    But if loud checkers are enabled, such as `webkit.*`, this may explode
    in complexity and even cause the compiler to run over the 32-bit
    SourceLocation addressing limit.
    
    This patch caches intermediate results so that re-lexing only needed
    to happen once.
    
    As the clever __COUNTER__ test demonstrates, "once" is still too many.
    Ideally we shouldn't re-lex anything at all, which remains a TODO.
    
    rdar://120801986
    haoNoQ committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    13fbeb5 View commit details
    Browse the repository at this point in the history
  2. Fix formatting, except the indent inside namespace html.

    Which was already broken.
    haoNoQ committed Feb 1, 2024
    Configuration menu
    Copy the full SHA
    a16035f View commit details
    Browse the repository at this point in the history