The change introduces the usage of physical registers for non-gc deopt values.
This require runtime support to know how to take a value from register.
By default usage is off and can be switched on by option.
The change also introduces additional fix-up patch which forces the spilling
of caller saved registers (clobbered after the call) and re-writes statepoint
to use spill slots instead of caller saved registers.
A suggestion on how to rephrase this comment.
The key fact we need to encode is that might be a "late read" of the deopt value up to the moment the call returns. If the register allocator could describe such a fact, it would produce the right form for us. The need to fixup (i.e. this pass) is specifically handling the fact that we can't describe such a late read for the register allocator.
I'm using the term "late read" as an analogy to the "early clobber" concept that does exist.