Skip to content

M7 The JIT, Part VI #16

Description

@tamnd

Eleven weeks, or twelve if the M0 probe came back badly. Part VI, fourteen lessons on the compiler that runs while the program does.

Exit criterion. Fourteen lessons green on the declared configurations, and a reader can take a method they have not seen, predict which tier it will be compiled at and roughly what the generated code will look like, and check themselves without asking anybody.

Content

  • J01 through J14: tiering and the call counter, on stack replacement, the phase list, inlining, physical promotion, escape analysis and stack allocation, block layout, the .NET 10 codegen work, and an arm64 comparison that is not decoration

Blueprints

  • BP-JITEE, BP-TIERING, BP-PHASES, BP-GCINFO

Artifacts

  • The disassembly diff view and the tier ladder
  • Three animations

Standing decision

The tier of this part was decided in M0 by #4, fourteen months earlier. If the checked JIT does not drop into a stock runtime, the build lesson is written here rather than at M10, this milestone is a week longer, and the front page claim about the build lesson changes from 97 of 99 to 49 of 99. That is stated on the page rather than quietly adjusted.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/jitRyuJIT, tiering, OSR, codegen and the IL interpreterkind/lessonA lesson: prose, runnable code, prediction gate, boss fightkind/milestoneA milestone checklist, tracking the issues that close itpriority/p1Needed for the current milestone but not blocking today

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions