Skip to content

Compiler perf infrastructure #12518

@En3Tho

Description

@En3Tho

I'm going to have some free time soon and I would like to try contributing some more to F# (my last contributions were quite small, but well..). And the space I'm interested in is compiler perf. Mainly because:

  1. I personally like tinkering with perfview, optimizations (not too hardcore ones) and stuff
  2. We have a big mono solution with 158 projects (the projects are not that big themselves) and compiler speed is becoming more of a problem.

So we basically either have to start cutting our solution in more specific parts or try to contribute to compiler perf infrastructure. Personally I'd like to do the latter (but maybe former is a thing to consider anyway).

Is there a document describing a long term plan/vision of making such a thing an important part of every release (making sure there are perf improvements/controlled regressions e.t.c). If there is no such document, maybe there is a somewhat clearish goal of how to build this up or someone already tried to do this kind of thing and the work can be continued from there?

So, I would like to know what's the state of compiler perf infrastructure?

Do compiler stages have clear boundaries and can they be separately timed? I guess the scariest perf wise thing is type checking but which concrete part of it? So basically I would like to time stages and substages to know what's making me wait actually.

How can I start and what are my first steps here?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions