[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