| ; RUN: opt -module-summary %s -o %t1.bc |
| ; RUN: llvm-lto2 run -print-summary-global-ids -dump-thin-cg-sccs %t1.bc -o %t.index.bc \ |
| ; RUN: -r %t1.bc,external,px -r %t1.bc,l2,pl -r %t1.bc,l1,pl \ |
| ; RUN: -r %t1.bc,simple,pl -r %t1.bc,root,pl 2>&1 | FileCheck %s |
| |
| ; CHECK: 5224464028922159466{{.*}} is external |
| ; CHECK: 765152853862302398{{.*}} is l2 |
| ; CHECK: 17000277804057984823{{.*}} is l1 |
| ; CHECK: 15440740835768581517{{.*}} is simple |
| ; CHECK: 5800840261926955363{{.*}} is root |
| |
| ; CHECK: SCC (2 nodes) { |
| ; CHECK-NEXT: {{^}} 17000277804057984823 (has cycle) |
| ; CHECK-NEXT: {{^}} 765152853862302398 (has cycle) |
| ; CHECK-NEXT: } |
| |
| ; CHECK: SCC (1 node) { |
| ; CHECK-NEXT: {{^}} 15440740835768581517{{$}} |
| ; CHECK-NEXT: } |
| |
| ; CHECK: SCC (1 node) { |
| ; CHECK-NEXT: External 5224464028922159466{{$}} |
| ; CHECK-NEXT: } |
| |
| ; CHECK: SCC (1 node) { |
| ; CHECK-NEXT: {{^}} 5800840261926955363{{$}} |
| ; CHECK-NEXT: } |
| |
| ; Dummy call graph root that points at all roots of the callgraph. |
| ; CHECK: SCC (1 node) { |
| ; CHECK-NEXT: {{^}} 0{{$}} |
| ; CHECK-NEXT: } |
| |
| target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" |
| target triple = "x86_64-unknown-linux-gnu" |
| |
| declare void @external() |
| |
| define void @l2() { |
| call void @l1() |
| ret void |
| } |
| |
| define void @l1() { |
| call void @l2() |
| ret void |
| } |
| |
| define i32 @simple() { |
| ret i32 23 |
| } |
| |
| define void @root() { |
| call void @l1() |
| call i32 @simple() |
| call void @external() |
| ret void |
| } |