1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
; 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 !{}
|