[RyuJit] fix the inconsistency between setContained and isContained. (#13991)
authorSergey Andreenko <seandree@microsoft.com>
Sat, 16 Sep 2017 00:13:03 +0000 (17:13 -0700)
committerGitHub <noreply@github.com>
Sat, 16 Sep 2017 00:13:03 +0000 (17:13 -0700)
commit08053aef66b1bf1d61de4ee744181ec265718327
tree6a0d50492359bd31fb6b7b5d309f995c89b627d8
parenta74094c0c086e5e58c64b1b091a2aa4a70abc5b0
[RyuJit] fix the inconsistency between setContained and isContained. (#13991)

* show the problem with contained arg_place

We set contained on PUTARG_REG, but it doesn't pass IsContained check.

* Fix problem with gtControlExpr

* fix problem with ARGPLACE

* additional improvements1

We should never have a contained node that is the last node in the
execution order.

* additional impovement2 for xarch.

It is redundant, do not need to set as contained.

* additional improvement2 for arm

`GenTree* ctrlExpr = call->gtControlExpr;` was unused.

* additional improvement3: unify CheckLir.
src/jit/gentree.cpp
src/jit/gtlist.h
src/jit/lir.cpp
src/jit/lower.cpp
src/jit/lowerarmarch.cpp
src/jit/lowerxarch.cpp