Improve Upper Vector Save/Restore (#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)
commit358d9d2559bd57cee7b2d4d0bc6d03ea252f4da8
tree174cd7f86e2307a3e6677297cfed2b197baf74e9
parentcfb2b5a5b93294a962e92f4e303afc1a5bb7ebb4
Improve Upper Vector Save/Restore (#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 #18144
src/jit/emitfmtsxarch.h
src/jit/emitxarch.cpp
src/jit/emitxarch.h
src/jit/lsra.cpp
src/jit/lsra.h
src/jit/lsra_reftypes.h
src/jit/lsrabuild.cpp
src/jit/simdcodegenxarch.cpp
tests/src/JIT/Regression/JitBlue/GitHub_18144/GitHub_18144.cs [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/GitHub_18144/GitHub_18144.csproj [new file with mode: 0644]