Consolidate importer spilling code (#72291)
authorSingleAccretion <62474226+SingleAccretion@users.noreply.github.com>
Sat, 23 Jul 2022 17:59:35 +0000 (20:59 +0300)
committerGitHub <noreply@github.com>
Sat, 23 Jul 2022 17:59:35 +0000 (10:59 -0700)
commitc624626419e125cdd3cd1f3814da92a54e416b25
tree4b5c865a861d8ad5bf3fbe2fe55fe035bb69f29c
parent2bcf0f79d5d40f2ca92636c48f06f77d686f7946
Consolidate importer spilling code (#72291)

* Add tests

* Fix losing GLOB_REF on the LHS

The comment states we don't need it, which is incorrect.

Diffs are improvements because we block forward substitution of
calls into "ASG(BLK(ADDR(LCL_VAR<field>, ...)))", which allows
morph to leave the "can be replaced with its field" local alone.

* Prospective fix

Spill "glob refs" on stores to "aliased" locals.

* Delete now-not-necessary code

* Fix up asserts

* Clean out '(unsigned)CHECK_SPILL_ALL/NONE' casts

* Don't manually spill for 'st[s]fld'

* Revert 'Clean out '(unsigned)CHECK_SPILL_ALL/NONE' casts'
src/coreclr/jit/compiler.h
src/coreclr/jit/importer.cpp
src/tests/JIT/Regression/JitBlue/Runtime_72133/Runtime_72133.il [new file with mode: 0644]
src/tests/JIT/Regression/JitBlue/Runtime_72133/Runtime_72133.ilproj [new file with mode: 0644]