[PATCH] D16315: [ppc64] Enable sibling call optimization on ppc64 ELFv1/ELFv2 abi

Chuang-Yu Cheng via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 23 07:39:16 PST 2016


cycheng updated this revision to Diff 48780.
cycheng marked 6 inline comments as done.
cycheng added a comment.

Fix all issues mentioned in http://reviews.llvm.org/D16315#342919

- [OK] Use std::any_of
- [OK] Source Format
- [OK] Implement Caller/Callee Argument Checking, If Callee and Caller have the same arguments, we can apply SCO on it.
- [OK] Delete struct return checking code because llvm has guaranteed it.

This patch passed llvm bootstrap test, we also used the bootstrap result to build/run/validate SPEC2006 INT benchmark, and it passed SPEC2006 INT test. The llvm version we use is "r251575" (Oct 28 2015)

But we found the latest revision of llvm (r257864) with our patch can crash in bootstrap test stage 3, we are investigating it now.

About struct return: Originally, we worried if Callee and Caller can use different struct return pointer. But llvm has check it for us (SelectionDAGBuilder::LowerCallTo), so we delete the code.


http://reviews.llvm.org/D16315

Files:
  lib/Target/PowerPC/PPCISelLowering.cpp
  lib/Target/PowerPC/PPCISelLowering.h
  test/CodeGen/PowerPC/ppc64-calls.ll
  test/CodeGen/PowerPC/ppc64-sibcall.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16315.48780.patch
Type: text/x-patch
Size: 19056 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160223/0dfb5580/attachment.bin>


More information about the llvm-commits mailing list