You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JIT: Update overview document and rename a few methods (#119762)
- Update list of phases in the overview to include some more phases
- Rename one of the `compCompile` overloads to `compCompileAfterInit`.
Keep `compCompile` as the method that runs the phases.
- Rename local morph to actually be called local morph
- Leave a note in the ryujit tutorial that the phase information and
details are out of date, and point into the overview instead
Copy file name to clipboardExpand all lines: docs/design/coreclr/jit/ryujit-tutorial.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -55,8 +55,7 @@ Finally, while the original JIT was quite x86-oriented, we now have a broader se
55
55
- Inherits from ICorDynamicInfo (corinfo.h)
56
56
57
57
#### Notes
58
-
In this talk and elsewhere, you will see the .NET runtime often referred to as the VM, for virtual machine, the EE, for execution engine, or the CLR, for common language runtime. They are largely used interchangeably, though some might argue the terms have subtle differences.
59
-
.NET is somewhat unique in that it currently has a single-tier JIT – no interpreter, and no re-optimizing JIT. While an interpreter exists, and experimentation has been done on re-jitting, the current model remains single-tier.
58
+
In this document and elsewhere, you will see the .NET runtime often referred to as the VM, for virtual machine, the EE, for execution engine, or the CLR, for common language runtime. They are largely used interchangeably, though some might argue the terms have subtle differences.
60
59
61
60
The JIT and the VM each implement an interface that abstracts the dependencies they share. The VM invokes methods on the ICorJitCompiler interface to compile methods, and the JIT calls back on the ICorJitInfo interface to get information about types and methods.
62
61
@@ -68,6 +67,10 @@ The JIT and the VM each implement an interface that abstracts the dependencies t
68
67
This is the 10,000 foot view of RyuJIT. It takes in MSIL (aka CIL) in the form of byte codes, and the Importer phase transforms these to the intermediate representation used in the JIT. The IR operations are called "GenTrees", as in "trees for code generation". This format is preserved across the bulk of the JIT, with some changes in form and invariants along the way. Eventually, the code generator produces a low-level intermediate called InstrDescs, which simply capture the instruction encodings while the final mappings are done to produce the actual native code and associated tables.
69
68
70
69
### RyuJIT Phases
70
+
71
+
Note: Various details in what follows are outdated and should be mostly taken to be of historical interest.
72
+
For more up-to-date information about the phases and their details, please see [the overview document](ryujit-overview.md).
0 commit comments