[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