xref: /llvm-project/llvm/test/ThinLTO/X86/module_summary_graph_traits.ll (revision 6fa0b6dd5240b2fffddd5e9119c3c4d7cc69b0ef)
1b040fcc6SCharles Saternos; RUN: opt -module-summary %s -o %t1.bc
2b040fcc6SCharles Saternos; RUN: llvm-lto2 run -print-summary-global-ids -dump-thin-cg-sccs %t1.bc -o %t.index.bc \
3b040fcc6SCharles Saternos; RUN:     -r %t1.bc,external,px -r %t1.bc,l2,pl -r %t1.bc,l1,pl \
4b040fcc6SCharles Saternos; RUN:     -r %t1.bc,simple,pl -r %t1.bc,root,pl 2>&1 | FileCheck %s
5b040fcc6SCharles Saternos
6b040fcc6SCharles Saternos; CHECK: 5224464028922159466{{.*}} is external
7b040fcc6SCharles Saternos; CHECK: 765152853862302398{{.*}} is l2
8b040fcc6SCharles Saternos; CHECK: 17000277804057984823{{.*}} is l1
9b040fcc6SCharles Saternos; CHECK: 15440740835768581517{{.*}} is simple
10b040fcc6SCharles Saternos; CHECK: 5800840261926955363{{.*}} is root
11b040fcc6SCharles Saternos
12b040fcc6SCharles Saternos; CHECK: SCC (2 nodes) {
13*6fa0b6ddSStefanos Baziotis; CHECK-NEXT: {{^}} 17000277804057984823 (has cycle)
14*6fa0b6ddSStefanos Baziotis; CHECK-NEXT: {{^}} 765152853862302398 (has cycle)
15b040fcc6SCharles Saternos; CHECK-NEXT: }
16b040fcc6SCharles Saternos
17b040fcc6SCharles Saternos; CHECK: SCC (1 node) {
18b040fcc6SCharles Saternos; CHECK-NEXT: {{^}} 15440740835768581517{{$}}
19b040fcc6SCharles Saternos; CHECK-NEXT: }
20b040fcc6SCharles Saternos
21b040fcc6SCharles Saternos; CHECK: SCC (1 node) {
22b040fcc6SCharles Saternos; CHECK-NEXT: External 5224464028922159466{{$}}
23b040fcc6SCharles Saternos; CHECK-NEXT: }
24b040fcc6SCharles Saternos
25b040fcc6SCharles Saternos; CHECK: SCC (1 node) {
26b040fcc6SCharles Saternos; CHECK-NEXT: {{^}} 5800840261926955363{{$}}
27b040fcc6SCharles Saternos; CHECK-NEXT: }
28b040fcc6SCharles Saternos
29b040fcc6SCharles Saternos; Dummy call graph root that points at all roots of the callgraph.
30b040fcc6SCharles Saternos; CHECK: SCC (1 node) {
31b040fcc6SCharles Saternos; CHECK-NEXT: {{^}} 0{{$}}
32b040fcc6SCharles Saternos; CHECK-NEXT: }
33b040fcc6SCharles Saternos
347b1d7937SAmy Huangtarget datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
35b040fcc6SCharles Saternostarget triple = "x86_64-unknown-linux-gnu"
36b040fcc6SCharles Saternos
37b040fcc6SCharles Saternosdeclare void @external()
38b040fcc6SCharles Saternos
39b040fcc6SCharles Saternosdefine void @l2() {
40b040fcc6SCharles Saternos  call void @l1()
41b040fcc6SCharles Saternos  ret void
42b040fcc6SCharles Saternos}
43b040fcc6SCharles Saternos
44b040fcc6SCharles Saternosdefine void @l1() {
45b040fcc6SCharles Saternos  call void @l2()
46b040fcc6SCharles Saternos  ret void
47b040fcc6SCharles Saternos}
48b040fcc6SCharles Saternos
49b040fcc6SCharles Saternosdefine i32 @simple() {
50b040fcc6SCharles Saternos  ret i32 23
51b040fcc6SCharles Saternos}
52b040fcc6SCharles Saternos
53b040fcc6SCharles Saternosdefine void @root() {
54b040fcc6SCharles Saternos  call void @l1()
55b040fcc6SCharles Saternos  call i32 @simple()
56b040fcc6SCharles Saternos  call void @external()
57b040fcc6SCharles Saternos  ret void
58b040fcc6SCharles Saternos}
59