Jit: fix for broken type equality optimization
The jit relies on a particular tree remaining intact during importation
to optimize type equality tests commonly found in generics.
In dotnet/coreclr#7909 the jit started aggressively spilling the evaluation stack before
calls, which broke up the trees needed for the optimizations.
In the special cases pertaining to type tests the trees can safely remain
intact because we know the calls can't interact with the computations on
the stack. Recognize these cases and selectively suppress spilling.
Closes dotnet/coreclr#9552.
Commit migrated from https://github.com/dotnet/coreclr/commit/
a26e2c670fc7a793794f4a499212a115c5d5a4b3