mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-19 17:37:24 +00:00
Disable tail duplication of call instructions. The cost
metric is way off for these in general, and this works around buggy code like that in PR1764. we'll see if there is a big performance impact of this. If so, I'll revert it tomorrow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43668 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e719831b1c
commit
0647ebf1dc
@ -115,6 +115,11 @@ bool TailDup::shouldEliminateUnconditionalBranch(TerminatorInst *TI) {
|
||||
|
||||
for (unsigned Size = 0; I != Dest->end(); ++I) {
|
||||
if (Size == Threshold) return false; // The block is too large.
|
||||
|
||||
// Don't tail duplicate call instructions. They are very large compared to
|
||||
// other instructions.
|
||||
if (isa<CallInst>(I) || isa<InvokeInst>(I)) return false;
|
||||
|
||||
// Only count instructions that are not debugger intrinsics.
|
||||
if (!isa<DbgInfoIntrinsic>(I)) ++Size;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user