forked from dotnet/runtime
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
JIT: Support retbuf optimization for non 'lvIsTemp' locals (dotnet#10…
…4467) The retbuf optimization allows us to avoid address exposure for retbuf definitions; instead we consider them to be just defined (and not exposed) by the calls. This optimization was previously only enabled for `lvIsTemp` locals, i.e. the locals created by `lvaGrabTemp(true)`. The reason was that the definition of the actual retbuf happened when we saw the `LCL_ADDR` node; if there were additional uses after the `LCL_ADDR` node, then they would think they were referring to the `LCL_ADDR` definition. The `lvIsTemp` gave us reasonable confidence that there were no such additional uses. This PR fixes the root cause of the problem and enables the optimization for non-`lvIsTemp` locals. To do that it teaches the various liveness phases to ignore the `LCL_ADDR` nodes when it gets to them and to instead handle the definition at the point of the parent `CALL` node.
- Loading branch information
1 parent
048c8ed
commit dd4b757
Showing
5 changed files
with
112 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters