[Statepoint lowering] Require spill of deopt value in case its type is not legal
authorSerguei Katkov <serguei.katkov@azul.com>
Fri, 26 Feb 2021 10:27:03 +0000 (17:27 +0700)
committerSerguei Katkov <serguei.katkov@azul.com>
Mon, 1 Mar 2021 03:23:53 +0000 (10:23 +0700)
commit06c5119c76e9fa4f8be6728ae26832d3ebc70244
treed5fba3090766ff7037aee17f3c06b5b49a7a2614
parentd49270b087e85191057925ce00c19378caeee5b2
[Statepoint lowering] Require spill of deopt value in case its type is not legal

If the type of the deopt operand has an illegal type and we want to use
register for it then it needs to be legalized.
This is not supported currently by legalizer and it is not actually clear how to
legalize this type of values.

Instead we just spill such values and use spill slot location in statepoint.

Originally tests were created by Philip Reames.

Reviewers: reames, dantrushin
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D97541
llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
llvm/test/CodeGen/X86/statepoint-deopt-lowering.ll [new file with mode: 0644]