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

Investigate performance improvements #125

Open
fitzgen opened this issue Nov 29, 2017 · 0 comments
Open

Investigate performance improvements #125

fitzgen opened this issue Nov 29, 2017 · 0 comments

Comments

@fitzgen
Copy link
Member

fitzgen commented Nov 29, 2017

After #24, and we have some meaningful measures of performance, we should investigate improving those measures.

Filing this now so that I can jot down some ideas floating in the back of my head for posterity:

  • I can imagine some static optimizations that we apply as new passes over the AST after parsing or during parsing. Things like eagerly resolving substitutions table references, or what set of template args are in scope at what part of the AST.

  • Being more lazier about various things. Don't even bother determining which template args are (not) in scope if we aren't dealing with a symbol for some kind of template or has a templated parameter. Don't bother with leaf names if we didn't see any constructor or destructor when parsing. Etc.

  • Remove various uses of dynamic dispatch via trait objects. ArgScope and ArgScopeStack would be pretty easy to devirtualize into an enum. The DemangleAsInner stack would be harder (and result in such a large enum that it likely would not pay for itself).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant