Delete obsolete CORINFO_TYPE_... entries#128243
Conversation
Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/a500bed6-9554-4294-97e7-7aa5d4f2242e Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the CoreCLR JIT/EE CorInfoType contract by removing legacy STRING/REFANY enum entries and reclassifying string as CLASS and typed references as VALUECLASS, with corresponding JIT, VM, interpreter, and SuperPMI cleanup.
Changes:
- Remaps
CORINFO_TYPE_CLASSandCORINFO_TYPE_VALUECLASSenum values and regenerates the JIT/EE version GUID. - Removes obsolete
CORINFO_TYPE_STRINGandCORINFO_TYPE_REFANYswitch cases across JIT, VM, interpreter, and SuperPMI code. - Adjusts typed-reference handling to flow through value-class paths.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
src/coreclr/inc/corinfo.h |
Updates the canonical CorInfoType enum values. |
src/coreclr/inc/jiteeversionguid.h |
Bumps the JIT/EE interface version GUID. |
src/coreclr/vm/jitinterface.cpp |
Maps string to class and typedref to valueclass in VM-to-JIT type conversion. |
src/coreclr/tools/Common/JitInterface/CorInfoTypes.cs |
Mirrors the updated CorInfoType enum for managed JIT interface tooling. |
src/coreclr/jit/ee_il_dll.hpp |
Updates CorInfoType-to-var_type lookup tables for the new enum layout. |
src/coreclr/jit/ee_il_dll.cpp |
Removes obsolete refany-specific size assertion. |
src/coreclr/jit/compiler.cpp |
Removes obsolete refany size special case. |
src/coreclr/jit/importer.cpp |
Updates tailcall argument constraint checks for removed refany type. |
src/coreclr/jit/lclvars.cpp |
Removes obsolete refany pointer classification. |
src/coreclr/interpreter/compiler.cpp |
Removes string/refany cases from interpreter type and async return handling. |
src/coreclr/interpreter/naming.cpp |
Removes string/refany cases from interpreter method-name type formatting. |
src/coreclr/tools/superpmi/superpmi-shared/typeutils.cpp |
Updates SuperPMI type utility helpers for removed enum entries. |
src/coreclr/tools/superpmi/superpmi-shared/methodcontext.cpp |
Updates SuperPMI type string/size helpers. |
src/coreclr/tools/superpmi/mcs/verbildump.cpp |
Removes obsolete string/refany IL-dump cases. |
Agent-Logs-Url: https://github.com/dotnet/runtime/sessions/b65149ad-246d-477c-bdc2-c15809e4080f Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
|
@copilot Address build breaks: /__w/1/s/src/mono/browser/emsdk/emscripten/em++ -DBUILDENV_CHECKED=1 -DCOMPILER_SUPPORTS_W_RESERVED_IDENTIFIER -DDEBUG -DDEBUGGING_SUPPORTED -DDISABLE_CONTRACTS -DFEATURE_BASICFREEZE -DFEATURE_COLLECTIBLE_TYPES -DFEATURE_CORECLR -DFEATURE_CORECLR_FLUSH_INSTRUCTION_CACHE_TO_PROTECT_STUB_READS -DFEATURE_DBGIPC_TRANSPORT_DI -DFEATURE_DBGIPC_TRANSPORT_VM -DFEATURE_DEFAULT_INTERFACES -DFEATURE_INTERPRETER -DFEATURE_JAVAMARSHAL -DFEATURE_MULTICOREJIT -DFEATURE_PAL_ANSI -DFEATURE_PORTABLE_ENTRYPOINTS -DFEATURE_PORTABLE_HELPERS -DFEATURE_READYTORUN -DFEATURE_REMOTE_PROC_MEM -DFEATURE_STATICALLY_LINKED -DFEATURE_SYMDIFF -DFEATURE_USE_ASM_GC_WRITE_BARRIERS -DFEATURE_WEBCIL -DHOST_32BIT=1 -DHOST_BROWSER -DHOST_UNIX -DHOST_WASM -DTARGET_32BIT -DTARGET_BROWSER -DTARGET_UNIX -DTARGET_WASM -DTARGET_WASM32 -DUNICODE -DURTBLDENV_FRIENDLY=Checked -D_DBG -D_DEBUG -D_FILE_OFFSET_BITS=64 -D_SECURE_SCL=0 -D_TIME_BITS=64 -D_UNICODE -I/__w/1/s/artifacts/obj/coreclr/browser.wasm.Checked/interpreter -I/__w/1/s/src/coreclr/interpreter -I/__w/1/s/src/native -I/__w/1/s/src/native/inc -I/__w/1/s/src/coreclr/pal/prebuilt/inc -I/__w/1/s/artifacts/obj -I/__w/1/s/src/coreclr/pal/inc -I/__w/1/s/src/coreclr/pal/inc/rt -I/__w/1/s/src/coreclr/pal/src/safecrt -I/__w/1/s/src/coreclr/inc -I/__w/1/s/src/coreclr/debug/inc -I/__w/1/s/src/coreclr/debug/inc/wasm -I/__w/1/s/src/coreclr/debug/inc/dump -I/__w/1/s/src/coreclr/md/inc -I/__w/1/s/artifacts/obj/coreclr/browser.wasm.Checked/inc -I/__w/1/s/src/coreclr/hosts/inc -I/__w/1/s/src/coreclr/interpreter/inc -I/__w/1/s/src/coreclr/minipal -I/__w/1/s/src/coreclr/interpreter/../jitshared -std=gnu++17 -fwasm-exceptions -mbulk-memory -msimd128 -O2 -Wall -Wno-null-conversion -glldb -Wno-unused-parameter -Wno-alloca -Wno-implicit-int-float-conversion -fno-omit-frame-pointer -fno-strict-overflow -fno-strict-aliasing -Werror -Wno-unused-variable -Wno-unused-value -Wno-unused-function -Wno-tautological-compare -Wno-unknown-pragmas -Wimplicit-fallthrough -Wvla -Wno-invalid-offsetof -Wno-unused-but-set-variable -ffp-contract=off -fno-rtti -Wno-unknown-warning-option -ferror-limit=4096 -Wno-unused-private-field -Wno-constant-logical-operand -Wno-pragma-pack -Wno-incompatible-ms-struct -Wno-reserved-identifier -Wno-unsafe-buffer-usage -Wno-single-bit-bitfield-constant-conversion -Wno-cast-function-type-strict -Wno-switch-default -Wno-nontrivial-memaccess -fsigned-char -fvisibility=hidden -ffunction-sections -MD -MT interpreter/CMakeFiles/clrinterpreter_objects.dir/naming.cpp.o -MF interpreter/CMakeFiles/clrinterpreter_objects.dir/naming.cpp.o.d -o interpreter/CMakeFiles/clrinterpreter_objects.dir/naming.cpp.o -c /__w/1/s/src/coreclr/interpreter/naming.cpp |
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
|
|
||
| // Generic type variables only appear when we're doing | ||
| // verification of generic code, in which case we're running | ||
| // in "import only" mode. Annoyingly the "import only" |
There was a problem hiding this comment.
We do not have import only mode in the JIT for verification anymore.
There was a problem hiding this comment.
Addressed in e239d06: I removed the obsolete import-only/verification comment block in ee_il_dll.hpp along with the CORINFO_TYPE_VAR mapping cleanup.
|
@copilot Merge from main and resolve conflicts |
| { | ||
| sigSize = info.compCompHnd->getClassSize(clsHnd); | ||
| } | ||
| else if (cit == CORINFO_TYPE_REFANY) |
There was a problem hiding this comment.
The JIT handles TypedReference as a regular byref-like type. We do not need to special case it in the CORINFO_TYPE_... enum.
…o-types # Conflicts: # src/coreclr/inc/jiteeversionguid.h Co-authored-by: jkotas <6668460+jkotas@users.noreply.github.com>
|
@EgorBo PTLA. JIT/EE interface cleanup. |
Delete
CORINFO_TYPE_STRING, legacyCORINFO_TYPE_REFANY, andCORINFO_TYPE_VARenum slots from the JIT/EE