[PATCH] D24228: [Thumb] Save/restore high registers in Thumb1 pro/epilogues

Oliver Stannard via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 15 02:23:15 PDT 2016


olista01 marked 2 inline comments as done.
olista01 added a comment.

> I think it would be nice to factor out the duplicated code into some helpers though.


I don't think there is enough common code to actually factor any of it out - there are plenty of small differences between saving and restoring, such as different treatment of lr, and checking argument or return registers.


================
Comment at: lib/Target/ARM/Thumb1FrameLowering.cpp:314
@@ -313,3 @@
-    for (int i = 2, e = MI.getNumOperands() - 2; i != e; ++i)
-      if (!isCalleeSavedRegister(MI.getOperand(i).getReg(), CSRegs))
-        return false;
----------------
rovka wrote:
> Can't you update this check rather than delete it?
We can now use r0-r3 as part of restoring the high registers (when they are not used as arguments), so any valid register for the tPOP instruction could appear here.


Repository:
  rL LLVM

https://reviews.llvm.org/D24228





More information about the llvm-commits mailing list