Do not fold (ind (addr (lclVar))) in certain cases.
authorPat Gavlin <pagavlin@microsoft.com>
Fri, 11 Nov 2016 21:41:09 +0000 (13:41 -0800)
committerPat Gavlin <pagavlin@microsoft.com>
Wed, 16 Nov 2016 21:31:04 +0000 (13:31 -0800)
commit52670d32714a2b1f09422d9ca08aab653158a1d6
treeb41ad0bc52dac537c0b25348265be4d1d2df4c9f
parent39cb6bb082430bcec17ba061e0cc9f62972b8029
Do not fold (ind (addr (lclVar))) in certain cases.

Specifically, do not fold these trees into (lclFld) or (lclVar) if the
size of the access is larger than the size of the lclVar. Furthermore,
mark the lclVar as unenregisterable, as the indirection requires the
lclVar to be in memory.
src/jit/emitxarch.cpp
src/jit/morph.cpp
tests/src/JIT/Regression/JitBlue/DevDiv_279396/DevDiv_279396.il [new file with mode: 0644]
tests/src/JIT/Regression/JitBlue/DevDiv_279396/DevDiv_279396.ilproj [new file with mode: 0644]