[PATCH] D15122: AArch64FastISel: Use cbz/cbnz to branch on i1

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 2 13:36:02 PST 2015


MatzeB updated the summary for this revision.
MatzeB updated this revision to Diff 41666.
MatzeB added a comment.

After discussing this with Tim, I realized that the "getBooleanContents() properties" are only guaranteed only for the usual boolean inputs of branches/selects/... and only after selection DAG legalization. So we shouldn't rely on that in the FastISel variants and I changed the code to use tbz/tbnz which should be as efficient anyway.

This new version also removes a BrCond(Trunc) special case which was creating more complicated code than the default case now.

(I also see no regressions on the test-suite with this patch).


Repository:
  rL LLVM

http://reviews.llvm.org/D15122

Files:
  lib/Target/AArch64/AArch64FastISel.cpp
  test/CodeGen/AArch64/arm64-fast-isel-br.ll
  test/CodeGen/AArch64/fast-isel-branch-cond-mask.ll
  test/CodeGen/AArch64/fast-isel-branch-cond-split.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15122.41666.patch
Type: text/x-patch
Size: 8012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151202/a789e539/attachment.bin>


More information about the llvm-commits mailing list