Open jakobbotsch opened 1 year ago
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch See info in area-owners.md if you want to be subscribed.
Author: | jakobbotsch |
---|---|
Assignees: | - |
Labels: | `area-CodeGen-coreclr` |
Milestone: | - |
My long term plan here is to make FIELD_LIST
a better supported node and start using it for GT_RETURN
as well. That'll allow the JIT to transform to that representation for returns.
Once the work is done for more first-class support for FIELD_LIST
we should also be able to use it to fix the TODO mentioned in https://github.com/dotnet/runtime/pull/78131#issuecomment-2313303662.
I noticed the following diff with physical promotion enabled:
+22 (+733.33%) : 48321.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextStateMap:GetContextForFileStart():Microsoft.CodeAnalysis.CSharp.Syntax.NullableContextState
This is the result of a zero init of the struct + read back + return, with the struct having two padding bytes at the end. We would need to teach the store forwarding optimization in lowering about padding to catch this (or alternatively allow
RETURN(FIELD_LIST)
).Normal promotion just sees a block init with holes and DNERs it.