Inliner: Do zero-cost inlines even if above a negative threshold (PR24851)

Differential Revision: http://reviews.llvm.org/D14499

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252595 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hans Wennborg 2015-11-10 09:47:48 +00:00
parent fcb6d5f29c
commit be73ba8c82
2 changed files with 18 additions and 1 deletions

View File

@ -1296,7 +1296,7 @@ bool CallAnalyzer::analyzeCall(CallSite CS) {
else if (NumVectorInstructions <= NumInstructions / 2)
Threshold -= (FiftyPercentVectorBonus - TenPercentVectorBonus);
return Cost < Threshold;
return Cost <= std::max(0, Threshold);
}
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)

View File

@ -0,0 +1,17 @@
; RUN: opt -inline -S %s | FileCheck %s
define void @f() {
entry:
tail call void @g()
unreachable
; CHECK-LABEL: @f
; CHECK-NOT: call
; CHECK: unreachable
}
define void @g() {
entry:
unreachable
}