blob: 0887f5e29187d35dfd50bd4f3bb33c4e148052f2 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; REQUIRES: llvm_inliner_model_autogenerated && asserts
; RUN: opt -passes='default<O3>' -enable-ml-inliner=release -ml-inliner-skip-policy=if-caller-not-cold -S %s -o - | FileCheck %s
; RUN: opt -passes='default<O3>' -ml-inliner-stop-immediately -enable-ml-inliner=release -ml-inliner-skip-policy=if-caller-not-cold -S %s -o - | FileCheck %s
declare ptr @f()
define void @e() #0 {
; CHECK-LABEL: define void @e(
; CHECK-SAME: ) local_unnamed_addr #[[ATTR0:[0-9]+]] {
; CHECK-NEXT: tail call void @d()
; CHECK-NEXT: tail call void @g()
; CHECK-NEXT: tail call void @d()
; CHECK-NEXT: tail call void @g()
; CHECK-NEXT: tail call void @d()
; CHECK-NEXT: tail call void @g()
; CHECK-NEXT: ret void
;
call void @h()
call void @h()
call void @h()
ret void
}
define void @d() {
; CHECK-LABEL: define void @d() local_unnamed_addr {
; CHECK-NEXT: tail call void @f()
; CHECK-NEXT: ret void
;
call void @f()
ret void
}
define void @g() {
; CHECK-LABEL: define void @g() local_unnamed_addr {
; CHECK-NEXT: tail call void @f()
; CHECK-NEXT: ret void
;
call void @f()
ret void
}
define void @h() #0 {
; CHECK-LABEL: define void @h(
; CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {
; CHECK-NEXT: tail call void @d()
; CHECK-NEXT: tail call void @g()
; CHECK-NEXT: ret void
;
call void @d()
call void @g()
ret void
}
attributes #0 = { "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" }