-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
JitUntriagedCLR JIT issues needing additional triageCLR JIT issues needing additional triagearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIenhancementProduct code improvement that does NOT require public API changes/additionsProduct code improvement that does NOT require public API changes/additions
Milestone
Description
Some IR nodes require a variable number of operands and the current implementation uses linked lists of GT_LIST (or similar) nodes.
IR nodes knows to use such lists:
GT_CALL- has a dedicatedthisargument operand and a list of operands for all other argumentsGT_PHI- this is aGTK_UNOPnode and its sole operand is a listGT_HWINTRINSIC- this is aGTK_BINOPnode but if needs 3 operands or more the first operand is a list and the second is nullGT_FIELD_LIST- aGTK_BINOPthat acts both like an actual IR node or like a list node- Anything else?
From the above only GT_CALL is reasonable, though it could probably be improved as well. The rest suffer from various issues:
GT_PHI- this looks similar toGT_CALLon the surface but it lacks the special handling of calls throughout the JIT. Its list nodes end up in the linear order and they are visited by tree walking facilities likeGenTreeVisitor. This is nonsense - these list nodes are an internal implementation detail of theGT_PHInode and they should not appear anywhere. They have no type, no VN, no nothing. They simply do not exists as far as the IR is concerned.GT_HWINTRINSICsuffers from the same problem asGT_PHI. It just makes it worse by sometimes using lists and sometimes not. And unlikeGT_PHI, this lacks special handling ingtDispTreeand dumps its list nodes.GT_FIELD_LISTIMO it would be better have aGT_PACKnode with a list ofGT_FIELD_LISTnodes.
- Stop using
GT_LISTinGT_PHI([Feedback] Can not update to .NETCore 1.1.0 after upgrading to Microsoft.NETCore.UniversalWindowsPlatform v5.3.0 #20266) - Stop using
GT_LISTinGT_CALL(dotnet-runtime-2.0.0 installation fails in centos 7.3 #26392) - Stop using
GT_LISTinGT_FIELD_LIST(Calling 3rd party DLL that makes calls out to the internet from .Net core fails proxy authentication despite configuring or coding the required settings #26800) - Stop using
GT_LISTinGT_SIMD([WIP] Stop using LIST nodes for SIMD operand lists #1141) - Stop using
GT_LISTinGT_HWINTRINSIC - Remove all the remaining
GT_LISTcode
category:implementation
theme:ir
skill-level:expert
cost:extra-large
Metadata
Metadata
Assignees
Labels
JitUntriagedCLR JIT issues needing additional triageCLR JIT issues needing additional triagearea-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMICLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIenhancementProduct code improvement that does NOT require public API changes/additionsProduct code improvement that does NOT require public API changes/additions