Start migrating away from statepoint's inline length prefixed argument bundles
authorPhilip Reames <listmail@philipreames.com>
Wed, 27 May 2020 16:14:54 +0000 (09:14 -0700)
committerPhilip Reames <listmail@philipreames.com>
Wed, 27 May 2020 16:16:10 +0000 (09:16 -0700)
commit1af3705c7fe23db9d5308bfdf07bfbd04398b895
treec3351c4aceec4ef3dc0b6dc68142d6a6001579e8
parent495f18292b2bc90a162b79d187c6d14ecfbe98f9
Start migrating away from statepoint's inline length prefixed argument bundles

In the current statepoint design, we have four distinct groups of operands to the call: call args, gc transition args, deopt args, and gc args. This format prexisted the support in IR for operand bundles and was in fact one of the inspirations for the extension. However, we never went back and rearchitected statepoints to fully leverage bundles.

This change is the first in a small sequence to do so. All this does is extend the SelectionDAG lowering code to allow deopt and gc transition operands to be specified in either inline argument bundles or operand bundles.

Differential Revision: https://reviews.llvm.org/D8059
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/lib/IR/Verifier.cpp
llvm/test/CodeGen/X86/statepoint-gctransition-call-lowering.ll
llvm/test/CodeGen/X86/statepoint-regs.ll