[Statepoint] Enable cross block relocates w/vreg lowering
authorPhilip Reames <listmail@philipreames.com>
Wed, 29 Jul 2020 20:28:26 +0000 (13:28 -0700)
committerPhilip Reames <listmail@philipreames.com>
Wed, 29 Jul 2020 20:32:51 +0000 (13:32 -0700)
commit755f91f12cf08da9c6553de901135945f2c6083a
tree7f7c71e86cff0aca74b40055601dabb004fd74b5
parent13978643b678e226500d9d1ae8a003c8ed4b05ef
[Statepoint] Enable cross block relocates w/vreg lowering

This change is mechanical, it just removes the restriction and updates tests.  The key building blocks were submitted in 31342eb and 8fe2abc.

Note that this (and preceeding changes) entirely subsumes D83965.  I did includes a couple of it's tests.

From the codegen changes, an interesting observation: this doesn't actual reduce spilling, it just let's the register allocator do it's job.  That results in a slightly different overall result which has both pros and cons over the eager spill lowering.  (i.e. We'll have some perf tuning to do once this is stable.)
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/test/CodeGen/X86/statepoint-vreg-details.ll
llvm/test/CodeGen/X86/statepoint-vreg.ll