25 lines
457 B
LLVM
25 lines
457 B
LLVM
|
; RUN: opt -passes=inline -inline-threshold=10 -S < %s | FileCheck %s
|
||
|
|
||
|
declare void @foo()
|
||
|
|
||
|
; CHECK-LABEL: @caller
|
||
|
; CHECK-NOT: %res = call i64 @callee(ptr %p)
|
||
|
define i64 @caller(ptr %p) {
|
||
|
%res = call i64 @callee(ptr %p)
|
||
|
ret i64 %res
|
||
|
}
|
||
|
|
||
|
define i64 @callee(ptr %p) {
|
||
|
%null_check = icmp eq ptr %p, null
|
||
|
br i1 %null_check, label %is_null, label %non_null, !make.implicit !0
|
||
|
|
||
|
is_null:
|
||
|
call void @foo()
|
||
|
ret i64 0
|
||
|
|
||
|
non_null:
|
||
|
ret i64 1
|
||
|
}
|
||
|
|
||
|
!0 = !{}
|