-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Closed
Labels
area-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/additionshard-problem
Milestone
Description
Similar to #10873 but about GT_ADDR
nodes. Like GT_ASG
nodes, GT_ADDR
nodes have one fundamental issue: they change the semantics of their operand nodes.
A GT_LCL_VAR
that is used by GT_ADDR
is no longer a node that produces a value, it's a node that represents a location. It also affects GT_FIELD
so you can have a chain like GT_FIELD(GT_ADDR(GT_FIELD(GT_ADDR(GT_FIELD(…)))))
where the outer GT_FIELD
is an indirection that produces a value while the inner ones just represent locations.
This approach results in various code complications, inefficiencies and bugs.
category:implementation
theme:ir
skill-level:expert
cost:extra-large
fiigii, GSPP, vcsjones and shushanhf
Metadata
Metadata
Assignees
Labels
area-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/additionshard-problem