[Statepoint Lowering] Consider dead deopt gc values together with other gc values
authorSerguei Katkov <serguei.katkov@azul.com>
Thu, 25 Feb 2021 09:28:50 +0000 (16:28 +0700)
committerSerguei Katkov <serguei.katkov@azul.com>
Mon, 1 Mar 2021 10:23:02 +0000 (17:23 +0700)
commit65fb706231df51b18d3a76bc083395c08924e991
tree26d500acd167f65c2365d62786e9f846b3de9a13
parent99c24f7aa8ccb84abde1672255439a2b2730ccc1
[Statepoint Lowering] Consider dead deopt gc values together with other gc values

Currently dead gc value mentioned in the deopt section are not listed in gc section
and so are processed separately.
With this CL all deopt gc values are considered as base pointers and processed in the
same way as other gc values.

The fact that deopt gc pointer is a base pointer was used all the time but
it is explicitly documented here by putting the value in SI.Base.

The idea of the patch comes from Philip Reames.

Reviewers: reames, dantrushin
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D97554
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/test/CodeGen/X86/statepoint-vreg-details.ll
llvm/test/CodeGen/X86/statepoint-vreg-invoke.ll
llvm/test/CodeGen/X86/statepoint-vreg.ll