mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
Don't merge tiny functions.
It's silly to merge functions like these: define void @foo(i32 %x) { ret void } define void @bar(i32 %x) { ret void } to get define void @bar(i32) { tail call void @foo(i32 %0) ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191786 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -836,6 +836,18 @@ bool MergeFunctions::insert(ComparableFunction &NewF) {
|
||||
|
||||
const ComparableFunction &OldF = *Result.first;
|
||||
|
||||
// Don't merge tiny functions, since it can just end up making the function
|
||||
// larger.
|
||||
// FIXME: Should still merge them if they are unnamed_addr and produce an
|
||||
// alias.
|
||||
if (NewF.getFunc()->size() == 1) {
|
||||
if (NewF.getFunc()->front().size() <= 2) {
|
||||
DEBUG(dbgs() << NewF.getFunc()->getName()
|
||||
<< " is to small to bother merging\n");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Never thunk a strong function to a weak function.
|
||||
assert(!OldF.getFunc()->mayBeOverridden() ||
|
||||
NewF.getFunc()->mayBeOverridden());
|
||||
|
Reference in New Issue
Block a user