[PATCH] D83965: MIR Statepoint refactoring. Part 5: Handle non-local relocates in ISEL.

Denis Antrushin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 16 10:02:34 PDT 2020


dantrushin created this revision.
dantrushin added reviewers: reames, skatkov.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.

When gc.relocate is in different basic block from statepoint,
corresponding statepoint result must be exported to register.
Default LLVM mechanism does not work here, because on IR level
statepoint does not produce relocated values.
We have to manually export statepoint results into register and
copy it back at gc.relocate location. We also need a dedicated
map for that because we cannot use FunctionLowering.ValueMap.
Depends On D81648 <https://reviews.llvm.org/D81648>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D83965

Files:
  llvm/include/llvm/CodeGen/FunctionLoweringInfo.h
  llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  llvm/test/CodeGen/X86/statepoint-vreg.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83965.278527.patch
Type: text/x-patch
Size: 22272 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200716/5c85f9df/attachment.bin>


More information about the llvm-commits mailing list