|
16 | 16 | ; RUN: opt -module-summary %s -o %t.summ0.bc
|
17 | 17 | ; RUN: opt -module-summary %S/Inputs/ipa.ll -o %t.summ1.bc
|
18 | 18 |
|
| 19 | +; RUN: llvm-dis %t.summ0.bc -o - > %t.ids.txt |
| 20 | +; RUN: llvm-dis %t.summ1.bc -o - >> %t.ids.txt |
| 21 | + |
19 | 22 | ; RUN: echo > %t.res.txt \
|
20 | 23 | ; RUN: -r %t.summ0.bc,ExternalCall, \
|
21 | 24 | ; RUN: -r %t.summ0.bc,f1,px \
|
|
86 | 89 | ; RUN: $(cat %t.res.txt) \
|
87 | 90 | ; RUN: 2>&1 | FileCheck %s --check-prefixes=CHECK,GLOBAL,LTO
|
88 | 91 |
|
| 92 | +; RUN: llvm-lto2 run %t.summ0.bc %t.summ1.bc -o %t.lto -stack-safety-run -thinlto-distributed-indexes -thinlto-threads 1 -O0 $(cat %t.res.txt) |
| 93 | +; RUN: (cat %t.ids.txt ; llvm-dis %t.summ1.bc.thinlto.bc -o -) | FileCheck --check-prefixes=INDEX %s |
| 94 | + |
89 | 95 | ; RUN: llvm-lto2 run %t.summ0.bc %t.summ1.bc -o %t-newpm.lto -use-new-pm -stack-safety-print -stack-safety-run -save-temps -thinlto-threads 1 -O0 \
|
90 | 96 | ; RUN: $(cat %t.res.txt) \
|
91 | 97 | ; RUN: 2>&1 | FileCheck %s --check-prefixes=CHECK,GLOBAL,LTO
|
92 | 98 |
|
| 99 | +; RUN: llvm-lto2 run %t.summ0.bc %t.summ1.bc -o %t-newpm.lto -stack-safety-run -thinlto-distributed-indexes -thinlto-threads 1 -O0 $(cat %t.res.txt) |
| 100 | +; RUN: (cat %t.ids.txt ; llvm-dis %t.summ1.bc.thinlto.bc -o -) | FileCheck --check-prefixes=INDEX %s |
| 101 | + |
93 | 102 | target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
|
94 | 103 | target triple = "aarch64-unknown-linux"
|
95 | 104 |
|
@@ -615,3 +624,99 @@ entry:
|
615 | 624 | ; CHECK-NEXT: allocas uses:
|
616 | 625 | ; CHECK-NEXT: x[8]: full-set
|
617 | 626 | ; CHECK-EMPTY:
|
| 627 | + |
| 628 | +; INDEX-LABEL: ^0 = module: |
| 629 | +; INDEX-DAG: name: "ReturnDependent"{{.*}} guid = [[ReturnDependent:[-0-9]+]] |
| 630 | +; INDEX-DAG: name: "Private"{{.*}} guid = [[Private:[-0-9]+]] |
| 631 | +; INDEX-DAG: name: "TwoArgumentsOOBOther"{{.*}} guid = [[TwoArgumentsOOBOther:[-0-9]+]] |
| 632 | +; INDEX-DAG: name: "Rec2"{{.*}} guid = [[Rec2:[-0-9]+]] |
| 633 | +; INDEX-DAG: name: "f1"{{.*}} guid = [[f1:[-0-9]+]] |
| 634 | +; INDEX-DAG: name: "PrivateWrite1"{{.*}} guid = [[PrivateWrite1:[-0-9]+]] |
| 635 | +; INDEX-DAG: name: "TestRecursiveNoOffset"{{.*}} guid = [[TestRecursiveNoOffset:[-0-9]+]] |
| 636 | +; INDEX-DAG: name: "f8left"{{.*}} guid = [[f8left:[-0-9]+]] |
| 637 | +; INDEX-DAG: name: "Write4"{{.*}} guid = [[Write4:[-0-9]+]] |
| 638 | +; INDEX-DAG: name: "f7"{{.*}} guid = [[f7:[-0-9]+]] |
| 639 | +; INDEX-DAG: name: "Write1SameModule"{{.*}} guid = [[Write1SameModule:[-0-9]+]] |
| 640 | +; INDEX-DAG: name: "Write8"{{.*}} guid = [[Write8:[-0-9]+]] |
| 641 | +; INDEX-DAG: name: "TwoArgumentsOOBOne"{{.*}} guid = [[TwoArgumentsOOBOne:[-0-9]+]] |
| 642 | +; INDEX-DAG: name: "f3"{{.*}} guid = [[f3:[-0-9]+]] |
| 643 | +; INDEX-DAG: name: "f8right"{{.*}} guid = [[f8right:[-0-9]+]] |
| 644 | +; INDEX-DAG: name: "Write4_2"{{.*}} guid = [[Write4_2:[-0-9]+]] |
| 645 | +; INDEX-DAG: name: "RecursiveWithOffset"{{.*}} guid = [[RecursiveWithOffset:[-0-9]+]] |
| 646 | +; INDEX-DAG: name: "Weak"{{.*}} guid = [[Weak:[-0-9]+]] |
| 647 | +; INDEX-DAG: name: "Write1Private"{{.*}} guid = [[Write1Private:[-0-9]+]] |
| 648 | +; INDEX-DAG: name: "TestUpdateArg"{{.*}} guid = [[TestUpdateArg:[-0-9]+]] |
| 649 | +; INDEX-DAG: name: "TestCrossModuleTwice"{{.*}} guid = [[TestCrossModuleTwice:[-0-9]+]] |
| 650 | +; INDEX-DAG: name: "TestCrossModuleWeak"{{.*}} guid = [[TestCrossModuleWeak:[-0-9]+]] |
| 651 | +; INDEX-DAG: name: "f2"{{.*}} guid = [[f2:[-0-9]+]] |
| 652 | +; INDEX-DAG: name: "PrivateCall"{{.*}} guid = [[PrivateCall:[-0-9]+]] |
| 653 | +; INDEX-DAG: name: "TestRecursiveWithOffset"{{.*}} guid = [[TestRecursiveWithOffset:[-0-9]+]] |
| 654 | +; INDEX-DAG: name: "f8oobleft"{{.*}} guid = [[f8oobleft:[-0-9]+]] |
| 655 | +; INDEX-DAG: name: "InterposableWrite1"{{.*}} guid = [[InterposableWrite1:[-0-9]+]] |
| 656 | +; INDEX-DAG: name: "f4"{{.*}} guid = [[f4:[-0-9]+]] |
| 657 | +; INDEX-DAG: name: "TestCrossModuleConflict"{{.*}} guid = [[TestCrossModuleConflict:[-0-9]+]] |
| 658 | +; INDEX-DAG: name: "RecursiveNoOffset"{{.*}} guid = [[RecursiveNoOffset:[-0-9]+]] |
| 659 | +; INDEX-DAG: name: "TwoArgumentsOOBBoth"{{.*}} guid = [[TwoArgumentsOOBBoth:[-0-9]+]] |
| 660 | +; INDEX-DAG: name: "f5"{{.*}} guid = [[f5:[-0-9]+]] |
| 661 | +; INDEX-DAG: name: "f6"{{.*}} guid = [[f6:[-0-9]+]] |
| 662 | +; INDEX-DAG: name: "Write1Weak"{{.*}} guid = [[Write1Weak:[-0-9]+]] |
| 663 | +; INDEX-DAG: name: "Write1"{{.*}} guid = [[Write1:[-0-9]+]] |
| 664 | +; INDEX-DAG: name: "PreemptableWrite1"{{.*}} guid = [[PreemptableWrite1:[-0-9]+]] |
| 665 | +; INDEX-DAG: name: "f8oobright"{{.*}} guid = [[f8oobright:[-0-9]+]] |
| 666 | +; INDEX-DAG: name: "InterposableCall"{{.*}} guid = [[InterposableCall:[-0-9]+]] |
| 667 | +; INDEX-DAG: name: "TestCrossModuleOnce"{{.*}} guid = [[TestCrossModuleOnce:[-0-9]+]] |
| 668 | +; INDEX-DAG: name: "WriteAndReturn8"{{.*}} guid = [[WriteAndReturn8:[-0-9]+]] |
| 669 | +; INDEX-DAG: name: "TwoArguments"{{.*}} guid = [[TwoArguments:[-0-9]+]] |
| 670 | +; INDEX-DAG: name: "Write1Module0"{{.*}} guid = [[Write1Module0:[-0-9]+]] |
| 671 | +; INDEX-DAG: name: "PreemptableCall"{{.*}} guid = [[PreemptableCall:[-0-9]+]] |
| 672 | +; INDEX-DAG: name: "Write1DiffModule"{{.*}} guid = [[Write1DiffModule:[-0-9]+]] |
| 673 | +; INDEX-DAG: name: "ExternalCall"{{.*}} guid = [[ExternalCall:[-0-9]+]] |
| 674 | +; INDEX-LABEL: = blockcount: |
| 675 | + |
| 676 | +; INDEX-LABEL: ^0 = module: |
| 677 | +; INDEX-DAG: name: "ReturnDependent"{{.*}} guid = [[ReturnDependent:[-0-9]+]] |
| 678 | +; INDEX-DAG: name: "Rec0"{{.*}} guid = [[Rec0:[-0-9]+]] |
| 679 | +; INDEX-DAG: name: "Rec2"{{.*}} guid = [[Rec2:[-0-9]+]] |
| 680 | +; INDEX-DAG: name: "Write4"{{.*}} guid = [[Write4:[-0-9]+]] |
| 681 | +; INDEX-DAG: name: "Write1SameModule"{{.*}} guid = [[Write1SameModule:[-0-9]+]] |
| 682 | +; INDEX-DAG: name: "Write8"{{.*}} guid = [[Write8:[-0-9]+]] |
| 683 | +; INDEX-DAG: name: "Write4_2"{{.*}} guid = [[Write4_2:[-0-9]+]] |
| 684 | +; INDEX-DAG: name: "RecursiveWithOffset"{{.*}} guid = [[RecursiveWithOffset:[-0-9]+]] |
| 685 | +; INDEX-DAG: name: "Weak"{{.*}} guid = [[Weak:[-0-9]+]] |
| 686 | +; INDEX-DAG: name: "Write1Private"{{.*}} guid = [[Write1Private:[-0-9]+]] |
| 687 | +; INDEX-DAG: name: "InterposableWrite1"{{.*}} guid = [[InterposableWrite1:[-0-9]+]] |
| 688 | +; INDEX-DAG: name: "Private"{{.*}} guid = [[Private:[-0-9]+]] |
| 689 | +; INDEX-DAG: name: "Rec1"{{.*}} guid = [[Rec1:[-0-9]+]] |
| 690 | +; INDEX-DAG: name: "RecursiveNoOffset"{{.*}} guid = [[RecursiveNoOffset:[-0-9]+]] |
| 691 | +; INDEX-DAG: name: "Write1Weak"{{.*}} guid = [[Write1Weak:[-0-9]+]] |
| 692 | +; INDEX-DAG: name: "Write1"{{.*}} guid = [[Write1:[-0-9]+]] |
| 693 | +; INDEX-DAG: name: "PreemptableWrite1"{{.*}} guid = [[PreemptableWrite1:[-0-9]+]] |
| 694 | +; INDEX-DAG: name: "WriteAndReturn8"{{.*}} guid = [[WriteAndReturn8:[-0-9]+]] |
| 695 | +; INDEX-DAG: name: "Write1Module0"{{.*}} guid = [[Write1Module0:[-0-9]+]] |
| 696 | +; INDEX-DAG: name: "Write1DiffModule"{{.*}} guid = [[Write1DiffModule:[-0-9]+]] |
| 697 | +; INDEX-DAG: name: "ExternalCall"{{.*}} guid = [[ExternalCall:[-0-9]+]] |
| 698 | +; INDEX-DAG: name: "ReturnAlloca"{{.*}} guid = [[ReturnAlloca:[-0-9]+]] |
| 699 | +; INDEX-LABEL: = blockcount: |
| 700 | + |
| 701 | +; INDEX-LABEL: ^0 = module: |
| 702 | +; INDEX-DAG: guid: [[ReturnDependent]], {{.*}}, funcFlags: ({{.*}})))) |
| 703 | +; INDEX-DAG: guid: [[Rec0]], {{.*}}, params: ((param: 0, offset: [2, 5]))))) |
| 704 | +; INDEX-DAG: guid: [[Rec2]], {{.*}}, params: ((param: 0, offset: [-2, 1]))))) |
| 705 | +; INDEX-DAG: guid: [[Write4]], {{.*}}, params: ((param: 0, offset: [0, 3]))))) |
| 706 | +; INDEX-DAG: guid: [[Write1SameModule]], {{.*}}, params: ((param: 0, offset: [0, 0]))))) |
| 707 | +; INDEX-DAG: guid: [[Write8]], {{.*}}, params: ((param: 0, offset: [0, 7]))))) |
| 708 | +; INDEX-DAG: guid: [[Write4_2]], {{.*}}, params: ((param: 0, offset: [0, 3]), (param: 1, offset: [0, 3]))))) |
| 709 | +; INDEX-DAG: guid: [[RecursiveWithOffset]], {{.*}}, params: ((param: 1, offset: [-1, 9223372036854775807]))))) |
| 710 | +; INDEX-DAG: guid: [[Weak]], {{.*}}, funcFlags: ({{.*}})))) |
| 711 | +; INDEX-DAG: guid: [[Write1Private]], {{.*}}, params: ((param: 0, offset: [-1, -1]))))) |
| 712 | +; INDEX-DAG: guid: [[InterposableWrite1]], {{.*}}, params: ((param: 0, offset: [0, 0]))))) |
| 713 | +; INDEX-DAG: guid: [[Private]], {{.*}}, params: ((param: 0, offset: [-1, -1]))))) |
| 714 | +; INDEX-DAG: guid: [[Rec1]], {{.*}}, params: ((param: 0, offset: [3, 6]))))) |
| 715 | +; INDEX-DAG: guid: [[RecursiveNoOffset]], {{.*}}, params: ((param: 0, offset: [-1, 9223372036854775807]), (param: 2, offset: [0, 3]))))) |
| 716 | +; INDEX-DAG: guid: [[Write1Weak]], {{.*}}, params: ((param: 0, offset: [-1, 9223372036854775807]))))) |
| 717 | +; INDEX-DAG: guid: [[Write1]], {{.*}}, params: ((param: 0, offset: [0, 0]))))) |
| 718 | +; INDEX-DAG: guid: [[PreemptableWrite1]], {{.*}}, funcFlags: ({{.*}})))) |
| 719 | +; INDEX-DAG: guid: [[WriteAndReturn8]], {{.*}}, funcFlags: ({{.*}})))) |
| 720 | +; INDEX-DAG: guid: [[Write1DiffModule]], {{.*}}, params: ((param: 0, offset: [-1, 9223372036854775807]))))) |
| 721 | +; INDEX-DAG: guid: [[ReturnAlloca]], {{.*}}, insts: 2))) |
| 722 | +; INDEX-LABEL: blockcount: |
0 commit comments