-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JIT: Spill newarr into temp #110518
JIT: Spill newarr into temp #110518
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
There are quite a few diffs. Can you investigate?
I would follow the pattern we have for |
This will lead to huge diffs for tier-0 so I will do this later after I investigated the diff. |
Latest diffs look pretty good. Seems like if we're going to allocate and store an array into a static it is generally better to do the array creation before fetching the static's address. Can you look at what happens if we also do this when not optimizing? |
Ah, ok. Let's undo that last commit and just do this when optimizing. Suggests we should probably look into doing the same thing for |
Is a temp not always needed for newobj in order to call the ctor? |
It is today, but you could imagine arranging things so that the ctor returns the object, perhaps. |
Done. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
I think the x86 failure was fixed, going to merge and see if we can get a green CI. |
Extracted from #104906
Spilling newarr into temp and introduce a new block flag for it. This is the prerequisites of escape analysis for arrays.
Question: should we always spill
newarr
instead of only do this when optimizations are enabled?/cc: @AndyAyersMS