OSDN Git Service

[Statepoint] Handle `undef` operands in statepoint.
authorDenis Antrushin <dantrushin@gmail.com>
Thu, 14 Jan 2021 19:35:18 +0000 (22:35 +0300)
committerDenis Antrushin <dantrushin@gmail.com>
Mon, 18 Jan 2021 12:20:54 +0000 (15:20 +0300)
commitf7443905af1e06eaacda1e437fff8d54dc89c487
treeff460cd48d42c315a01cb4c843d18164256f1393
parent689aaba7acf5778bfe96bfd7bc4f1f3ceed20dc8
[Statepoint] Handle `undef` operands in statepoint.

Currently when spilling statepoint register operands in FixupStatepoints
we do not pay attention that it might be `undef`. We just generate a
spill, which may lead to verifier error because we have a use without def.

To handle it, let FixupStateponts ignore `undef` register operands
completely and change them to some constant value when generating
stack map. Use same value as used by ISel for this purpose (0xFEFEFEFE).

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D94703
llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp
llvm/lib/CodeGen/StackMaps.cpp
llvm/test/CodeGen/X86/statepoint-fixup-undef.mir [new file with mode: 0644]