[PATCH] D18869: AArch64: Use a callee save registers for swiftself parameters

Manman Ren via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 7 20:58:03 PDT 2016


manmanren added a comment.

Thanks for cleaning up the testing case!

Manman


================
Comment at: lib/Target/AArch64/AArch64FrameLowering.cpp:704
@@ -707,1 +703,3 @@
+  bool IsLiveIn = MF.getRegInfo().isLiveIn(Reg);
+  return getKillRegState(!IsLiveIn);
 }
----------------
So if isReturnAddressTaken is true, LRLiveIn will be true as well?
The original check of !(LRLiveIn && MF.getFrameInfo()->isReturnAddressTaken()) is equivalent to !LRLiveIn?

================
Comment at: test/CodeGen/AArch64/swiftself.ll:31
@@ +30,3 @@
+; CHECK: bl {{_?}}take_swiftself
+; CHECK: {{ldp|ldr}} {{.*}}x19{{.*}}sp
+; CHECK: ret
----------------
Are these the spills and reloads you mentioned in the summary?

Currently the generated code is correct but unnecessarily spills and
reloads arguments passed in callee save registers, I will address this
in upcoming patches.


Repository:
  rL LLVM

http://reviews.llvm.org/D18869





More information about the llvm-commits mailing list