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
Copy file name to clipboardExpand all lines: generated_codegen.md
+27Lines changed: 27 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,33 @@ Uses of `ExecutableWriterHolder` and `ExecutableWriterHolderNoLog` under `src\co
2
2
3
3
**Collected at hash `9ceb2bfd35ad8edd0342d2b10fef2860ad86ac9b`**
4
4
5
+
## JanV analysis:
6
+
7
+
* Let's ignore the debugger stuff for now, the debugger will need some other way to set breakpoints and step that will be platform specific.
8
+
* The LoaderHeap won't be used by the interpreter, it manages memory for various stubs and we need to decide on what we would do with each of the stub.
9
+
* I believe the Module::FixupVTables is for C++/CLI and we can ignore it
10
+
* We can ignore any COM related stuff
11
+
* CodeFragmentHeap is used by virtual stub lookup, dispatch, resolve and vtable helpers and dynamic helpers for R2R. We need to figure out how to replace these by a mechanism that doesn't need generated code
12
+
* I believe jump stub blocks are only for JIT, so anything related to them should not be needed. I need to double check though if R2R doesn't use them somehow too.
13
+
* EEJitManager::allocCodeFragmentBlock - code fragment heap stuff, see my comment above
14
+
* UMEntryThunk stuff - we will need to figure out how to handle unmanaged calls to managed code without the generated thunks.
15
+
* HostCodeHeap stuff is for JIT only, so we can ignore it
16
+
* GC coverage instruction writing - we can ignore it, as it works with jitted code only.
17
+
* CEEJitInfo::WriteCodeBytes - JIT only, we can ignore it
18
+
* EntryPointSlots::Backpatch_Locked - I don't know yet
19
+
* Precode::Allocate - we need to figure out what to do with the PRECODE_THISPTR_RETBUF
20
+
* Precode::Reset - I am not sure for which precodes it is used, maybe just the PRECODE_THISPTR_RETBUF. It doesn't make sense to be used for stub and fixup precodes.
21
+
* MethodDesc::DoPrestub - This seems to create unboxing stubs, instantiating stubs, array op stub and delegate stubs. These stubs look like some of them are IL stubs and some of them may be IL or native code depending on some defines. For the native ones, we'll need to come up with an alternative plan.
22
+
* StubCacheBase - I think this is used by native code stubs only, so once we replace them by something else, this will not be used anymore
23
+
* StubUnwindInfoSegmentBoundaryReservationList - this goes away, since except for the unwind info that Andrew temporarily added for the interpreter stub, the stub unwind info is not used anywhere.
24
+
* StubLinker::EmitStub - will go away after we replace all native code stubs by some other means
25
+
* Stub::NewStub - ditto
26
+
* Write barrier copy and state update - we will need to figure out how to handle changing write barriers without patching their code
27
+
* VirtualCallStubManager stuff - will go away after we replace the virtual stub lookup, dispatch, resolve and vtable stubs by some other mechanism.
28
+
* DynamicHelpers - I believe these are all dynamically generated R2R helpers. We'll need to come up with an alternative way of doing what R2R needs for their cases.
29
+
* ThisPtrRetBufPrecode - will need to be replaced by some other mechanism
0 commit comments