[PATCH] D80999: [ARM][CodeGen] Enabling spilling of high registers in RegAllocFast for Thumb1

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 2 17:35:13 PDT 2020


efriedma added a comment.

This is intentionally not addressing greedy regalloc, I guess.

I think ConstantIslands currently assumes LR is never live in Thumb1 mode.  Have you looked at that at all?  (Last time I looked at this, there was also ThumbRegisterInfo::saveScavengerRegister, but that's gone now.)



================
Comment at: llvm/lib/CodeGen/RegAllocFast.cpp:346
+    MCPhysReg SpillReg =
+        getFreeRegForAllocation(*Before, *SpillRC, Register(), Register());
+    BuildMI(*MBB, Before, Before->getDebugLoc(), TII->get(TargetOpcode::COPY),
----------------
Is it possible to spuriously run out of registers?  Say you have an inline asm that requires r0-r8.  You allocate r0-r7, then try to allocate r8, then we run out of registers because r0-r7 were already reserved.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D80999





More information about the llvm-commits mailing list