[PATCH] D24044: CodeGen: Tail-duplicate longer blocks that end with indirect branches.
David Li via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 27 16:37:37 PDT 2016
davidxl added a comment.
Need a test case.
Also do you have any performance data?
================
Comment at: lib/CodeGen/BranchFolding.cpp:709
+ MachineBasicBlock &Block1 = *CurMPIter->getBlock();
+ if (Block1.empty())
+ // Look for indirect local branches, and try to avoid merging them
----------------
!empty()
================
Comment at: lib/CodeGen/BranchFolding.cpp:713
+ // branches allows for better branch prediction.
+ if (Block1.back().isIndirectBranch() && Block1.succ_size() != 0)
+ MinCommonTailLengthInside = TailDupIndirectBranchSize + 1;
----------------
This basically disabled tailMerging for blocks with indirect branch. Is there a way to override that? If not, why not simply disable TailMerge for such blocks directly?
Repository:
rL LLVM
https://reviews.llvm.org/D24044
More information about the llvm-commits
mailing list