Fix eager reloads of dead registers
Summary: When we find a register that covers the beginning of a
range, but which is unused for the latter part of that range,
we would spill at the latest possible point - usually the middle
of a block. So any incoming edges to that block would need to
shuffle the registers into place, or reload them from the stack;
even though the registers will never be used.
By splitting the range at a block boundary after the last use,
we can avoid doing that.
With this change we no longer load every xmm register, and all the
caller save gprs immediately prior to the call to loadClassConstantTv
in hphp/test/slow/compilation/regalloc.php
Reviewed By: @edwinsmith
Differential Revision:
D2085623