[PATCH] D81647: MIR Statepoint refactoring. Part 3: Spill GC Ptr regs.

Denis Antrushin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 6 12:54:09 PDT 2020


dantrushin marked 2 inline comments as done.
dantrushin added inline comments.


================
Comment at: llvm/lib/CodeGen/FixupStatepointCallerSaved.cpp:506
+
+    for (Register Reg : RegsToReload)
+      insertReloads(Reg);
----------------
skatkov wrote:
> Don't you want to separate reload loads into separate function?
> So we'll have:
> spill registers
> rewrite statepoint
> insertReloads/unspill registers
`insertReloads` uses local vector `RegsToReload` and `MI` (statepoint instruction).
To call `insertReloads` outside of `rewriteStatepoint` I will have to make that local vector and new statepoint instruction
available to `insertReloads()`.

I don't think that making `RegsToReload` member variable or something like that:


```
SmallVector<Register, 8> RegsToReload;
SS.spillRegisters();
MachineInstr *NewStatepoint = SS.rewriteStatepoint(RegsToReload); // out parameter
SS.insertReloads(RegsToReload, NewStatepoint);

```
will be much cleaner.
But I can do that if you want.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81647/new/

https://reviews.llvm.org/D81647





More information about the llvm-commits mailing list