blob: 89176348eef9da60d7ab9c680359ba9682150519 [file] [log] [blame]
; RUN: opt -passes=strip-dead-cg-profile %s -S -o - | FileCheck %s --check-prefix=NOOP
; RUN: llvm-extract %s -func=a -S -o - | FileCheck %s --check-prefix=EXTRACT-A
; RUN: llvm-extract %s -func=a --func=b -S -o - | FileCheck %s --check-prefix=EXTRACT-AB
; RUN: llvm-extract %s -func=solo -S -o - | FileCheck %s --check-prefix=NOTHING-LEFT
define void @a() {
call void @b()
ret void
}
define void @b() {
call void @c()
ret void
}
define void @c() {
call void @d()
ret void
}
define void @d() {
ret void
}
define void @solo() {
ret void
}
!llvm.module.flags = !{!0}
!0 = !{i32 5, !"CG Profile", !1}
!1 = !{!2, !3, !4}
!2 = !{ptr @a, ptr @b, i64 42}
!3 = !{ptr @b, ptr @c, i64 20}
!4 = !{ptr @c, ptr @d, i64 101}
; NOOP: !0 = !{i32 5, !"CG Profile", !1}
; NOOP-NEXT: !1 = distinct !{!2, !3, !4}
; NOOP-NEXT: !2 = !{ptr @a, ptr @b, i64 42}
; NOOP-NEXT: !3 = !{ptr @b, ptr @c, i64 20}
; NOOP-NEXT: !4 = !{ptr @c, ptr @d, i64 101}
; EXTRACT-A: !0 = !{i32 5, !"CG Profile", !1}
; EXTRACT-A-NEXT: !1 = distinct !{!2}
; EXTRACT-A-NEXT: !2 = !{ptr @a, ptr @b, i64 42}
; EXTRACT-AB: !0 = !{i32 5, !"CG Profile", !1}
; EXTRACT-AB-NEXT: !1 = distinct !{!2, !3}
; EXTRACT-AB-NEXT: !2 = !{ptr @a, ptr @b, i64 42}
; EXTRACT-AB-NEXT: !3 = !{ptr @b, ptr @c, i64 20}
; NOTHING-LEFT: !0 = !{i32 5, !"CG Profile", !1}
; NOTHING-LEFT-NEXT: !1 = distinct !{}