When Greedy Register Allocator takes a decision whether it makes
sense to split single block it consider multiple uses as must
split condition. However there are instructions which can
accept the operand on stack with the same efficiency as on register.
An example of such instruction is statepoint.
Split single basic block expects that we enter on stack and exit
on stack the basic block. If there are multiple uses it makes sense
to do unsplit before the first use and split after the last use.
If we decide not to split we will do only unsplit before each use
and no spills if there is no defs.
This is exactly a case to cover in this change.
We have only one use which is not a statepoint. So we will do
an unspill before this use and nothing for statepoints.
As a result we avoid to do a redundant spill and reduce the
register preasure in this basic block.
Early exit after the first one?