Remove some RuntimeExport/RuntimeImport indirections #110437
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We had indirections set up where we'd
RuntimeExport
a method under a symbolic name and thenRuntimeImport
it elsewhere (or call the export from JIT-generated code).Most of this was motivated by the old Redhawk layering where things like casting and interface dispatch were part of Runtime.Base and not part of CoreLib. Since we decided if we ever reintroduce a Runtime.Base, we wouldn't have casting in it, this indirection will no longer be needed.
Motivated by #110267 (and also the reason why I'm only doing it for
RuntimeExport
s used from the JIT right now). Once that PR gets in, calling methods throughRuntimeExport
s would actually become a bigger deoptimization than it is now.Cc @dotnet/ilc-contrib