Uh oh!
There was an error while loading. Please reload this page.
ARM32: stop allocating a register for null checks on instance calls - #68100
ARM32: stop allocating a register for null checks on instance calls#68100jakobbotsch wants to merge 2 commits into
Conversation
For interface tail calls we currently end up allocating two internal registers where one of them is forced into R12. LSRA currently does not always handle the low amount of freedom, in particular with some jitstressregs scenarios. Since LR is always free going into a call we can just stop allocating a register for the null check and use LR always to avoid the problem and also give LSRA a little less work to do. Fixdotnet#66563
ghost
commented
Apr 16, 2022
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsFor interface tail calls we currently end up allocating two internal Since LR is always free going into a call we can just stop allocating a Fix #66563 cc @dotnet/jit-contrib
|
jakobbotsch
commented
Apr 16, 2022
This reasoning is right only for tailcalls since for regular calls we could have allocated the target into |
jakobbotsch
commented
Apr 16, 2022
Replaced by #68107 |
For interface tail calls we currently end up allocating two internal
registers where one of them is forced into R12. LSRA currently does not
always handle the low amount of freedom, in particular with some
jitstressregs scenarios.
Since LR is always free going into a call we can just stop allocating a
register for the null check and use LR always to avoid the problem and
also give LSRA a little less work to do.
Fix#66563
cc @dotnet/jit-contrib