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
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Unit Tests
Event Timeline
Comment Actions
JFYI, I've posted (and now landed after review) the subset of this patch which is mostly NFC here: https://reviews.llvm.org/D84692
I plan to reimplement the functional change (i.e. the rest of it) shortly.
I ended up duplicating Denis's work here by accident, but we at least arrived at a common solution (modulo style), so that's a good sign.
Marking as Request Changes to indicate need to either close or rebase if there's anything left.