[PATCH] D17339: [SystemZ] Implement conditional returns.

Marcin Koƛcielnicki via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 6 10:12:35 PDT 2016


koriakin updated the summary for this revision.
koriakin set the repository for this revision to rL LLVM.
koriakin updated this revision to Diff 52818.
koriakin added a comment.

New version.  Fused compare-and-branch instructions are emitted for conditional returns now, and the loop problem of the previous version is avoided based on branch probabilities.  I'm now somewhat convinced that's the right way to do it (as opposed to looking at the loop structure) - for a loop with low loop probability (high return probability), like the compare-and-swap retries in atomicrmw-minmax-0[34].ll tests, the transform is actually still a win.


Repository:
  rL LLVM

http://reviews.llvm.org/D17339

Files:
  lib/Target/SystemZ/SystemZAsmPrinter.cpp
  lib/Target/SystemZ/SystemZElimCompare.cpp
  lib/Target/SystemZ/SystemZInstrInfo.cpp
  lib/Target/SystemZ/SystemZInstrInfo.h
  lib/Target/SystemZ/SystemZInstrInfo.td
  lib/Target/SystemZ/SystemZTargetMachine.cpp
  test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
  test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
  test/CodeGen/SystemZ/branch-05.ll
  test/CodeGen/SystemZ/cond-store-01.ll
  test/CodeGen/SystemZ/cond-store-02.ll
  test/CodeGen/SystemZ/cond-store-03.ll
  test/CodeGen/SystemZ/cond-store-04.ll
  test/CodeGen/SystemZ/cond-store-05.ll
  test/CodeGen/SystemZ/cond-store-06.ll
  test/CodeGen/SystemZ/fp-cmp-01.ll
  test/CodeGen/SystemZ/fp-cmp-02.ll
  test/CodeGen/SystemZ/fp-cmp-03.ll
  test/CodeGen/SystemZ/fp-cmp-04.ll
  test/CodeGen/SystemZ/fp-cmp-05.ll
  test/CodeGen/SystemZ/fp-move-09.ll
  test/CodeGen/SystemZ/fp-move-10.ll
  test/CodeGen/SystemZ/fp-sqrt-01.ll
  test/CodeGen/SystemZ/fp-sqrt-02.ll
  test/CodeGen/SystemZ/htm-intrinsics.ll
  test/CodeGen/SystemZ/int-cmp-01.ll
  test/CodeGen/SystemZ/int-cmp-02.ll
  test/CodeGen/SystemZ/int-cmp-03.ll
  test/CodeGen/SystemZ/int-cmp-04.ll
  test/CodeGen/SystemZ/int-cmp-05.ll
  test/CodeGen/SystemZ/int-cmp-06.ll
  test/CodeGen/SystemZ/int-cmp-07.ll
  test/CodeGen/SystemZ/int-cmp-08.ll
  test/CodeGen/SystemZ/int-cmp-09.ll
  test/CodeGen/SystemZ/int-cmp-10.ll
  test/CodeGen/SystemZ/int-cmp-11.ll
  test/CodeGen/SystemZ/int-cmp-12.ll
  test/CodeGen/SystemZ/int-cmp-13.ll
  test/CodeGen/SystemZ/int-cmp-14.ll
  test/CodeGen/SystemZ/int-cmp-15.ll
  test/CodeGen/SystemZ/int-cmp-16.ll
  test/CodeGen/SystemZ/int-cmp-17.ll
  test/CodeGen/SystemZ/int-cmp-18.ll
  test/CodeGen/SystemZ/int-cmp-19.ll
  test/CodeGen/SystemZ/int-cmp-20.ll
  test/CodeGen/SystemZ/int-cmp-21.ll
  test/CodeGen/SystemZ/int-cmp-22.ll
  test/CodeGen/SystemZ/int-cmp-23.ll
  test/CodeGen/SystemZ/int-cmp-24.ll
  test/CodeGen/SystemZ/int-cmp-25.ll
  test/CodeGen/SystemZ/int-cmp-26.ll
  test/CodeGen/SystemZ/int-cmp-27.ll
  test/CodeGen/SystemZ/int-cmp-28.ll
  test/CodeGen/SystemZ/int-cmp-29.ll
  test/CodeGen/SystemZ/int-cmp-30.ll
  test/CodeGen/SystemZ/int-cmp-31.ll
  test/CodeGen/SystemZ/int-cmp-32.ll
  test/CodeGen/SystemZ/int-cmp-33.ll
  test/CodeGen/SystemZ/int-cmp-34.ll
  test/CodeGen/SystemZ/int-cmp-35.ll
  test/CodeGen/SystemZ/int-cmp-36.ll
  test/CodeGen/SystemZ/int-cmp-37.ll
  test/CodeGen/SystemZ/int-cmp-38.ll
  test/CodeGen/SystemZ/int-cmp-39.ll
  test/CodeGen/SystemZ/int-cmp-40.ll
  test/CodeGen/SystemZ/int-cmp-41.ll
  test/CodeGen/SystemZ/int-cmp-42.ll
  test/CodeGen/SystemZ/int-cmp-43.ll
  test/CodeGen/SystemZ/int-cmp-44.ll
  test/CodeGen/SystemZ/int-cmp-46.ll
  test/CodeGen/SystemZ/int-cmp-47.ll
  test/CodeGen/SystemZ/int-cmp-48.ll
  test/CodeGen/SystemZ/memchr-01.ll
  test/CodeGen/SystemZ/memchr-02.ll
  test/CodeGen/SystemZ/memcmp-01.ll
  test/CodeGen/SystemZ/memcmp-02.ll
  test/CodeGen/SystemZ/strcmp-01.ll
  test/CodeGen/SystemZ/strcmp-02.ll
  test/CodeGen/SystemZ/vec-intrinsics.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17339.52818.patch
Type: text/x-patch
Size: 196659 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160406/8e59faef/attachment-0001.bin>


More information about the llvm-commits mailing list