Improve Upper Vector Save/Restore (dotnet/coreclr#23344)
authorCarol Eidt <carol.eidt@microsoft.com>
Thu, 4 Apr 2019 16:53:02 +0000 (09:53 -0700)
committerGitHub <noreply@github.com>
Thu, 4 Apr 2019 16:53:02 +0000 (09:53 -0700)
commitdbea1a5610fcf46eeff972f64b3b1503fc064411
treecd488e5955e0125c939a92918928fdada2125e4e
parentece0c8f14d2931811a608a9e666d201f8799cf91
Improve Upper Vector Save/Restore (dotnet/coreclr#23344)

Improve Upper Vector Save/Restore

In order to avoid saving and restore the upper half of large vectors around every
call even if they are not used, separately model the upper half of large vector
lclVars, and track whether the large vector lclVar is partially-spilled, in which
case its upper half resides in its upper half Interval's location.

Fix dotnet/coreclr#18144

Commit migrated from https://github.com/dotnet/coreclr/commit/358d9d2559bd57cee7b2d4d0bc6d03ea252f4da8
src/coreclr/src/jit/emitfmtsxarch.h
src/coreclr/src/jit/emitxarch.cpp
src/coreclr/src/jit/emitxarch.h
src/coreclr/src/jit/lsra.cpp
src/coreclr/src/jit/lsra.h
src/coreclr/src/jit/lsra_reftypes.h
src/coreclr/src/jit/lsrabuild.cpp
src/coreclr/src/jit/simdcodegenxarch.cpp
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_18144/GitHub_18144.cs [new file with mode: 0644]
src/coreclr/tests/src/JIT/Regression/JitBlue/GitHub_18144/GitHub_18144.csproj [new file with mode: 0644]