Artur Pilipenko 3f96f7b30c Fix getInlineCost with ComputeFullInlineCost enabled
Fix a bug when getInlineCost incorrectly returns a
cost/threshold pair instead of an explicit never inline.

Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D111687
2021-10-14 17:41:41 -07:00

23 lines
626 B
LLVM

; RUN: opt < %s -passes=inline -pass-remarks-missed=inline -inline-cost-full -S 2>&1 | FileCheck %s
; RUN: opt < %s -passes=inline -pass-remarks-missed=inline -S 2>&1 | FileCheck %s
declare void @foo()
declare void @bar()
define void @callee() {
entry:
call void @foo() noduplicate
; Just to inflate the cost
call void @bar() "call-inline-cost"="1000"
ret void
}
define void @caller() {
; CHECK: 'callee' not inlined into 'caller' because it should never be inlined (cost=never): noduplicate
; CHECK: define void @caller()
; CHECK-NEXT: call void @callee()
; CHECK-NEXT: ret void
call void @callee()
ret void
}