Skip to content

Commit 055eecb

Browse files
vitalybukamemfrob
authored andcommitted
[NFC][StackSafety] Add index test
This directly covers generateParamAccessSummary
1 parent f5d7d5a commit 055eecb

File tree

1 file changed

+105
-0
lines changed
  • llvm/test/Analysis/StackSafetyAnalysis

1 file changed

+105
-0
lines changed

llvm/test/Analysis/StackSafetyAnalysis/ipa.ll

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
; RUN: opt -module-summary %s -o %t.summ0.bc
1717
; RUN: opt -module-summary %S/Inputs/ipa.ll -o %t.summ1.bc
1818

19+
; RUN: llvm-dis %t.summ0.bc -o - > %t.ids.txt
20+
; RUN: llvm-dis %t.summ1.bc -o - >> %t.ids.txt
21+
1922
; RUN: echo > %t.res.txt \
2023
; RUN: -r %t.summ0.bc,ExternalCall, \
2124
; RUN: -r %t.summ0.bc,f1,px \
@@ -86,10 +89,16 @@
8689
; RUN: $(cat %t.res.txt) \
8790
; RUN: 2>&1 | FileCheck %s --check-prefixes=CHECK,GLOBAL,LTO
8891

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+
8995
; 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 \
9096
; RUN: $(cat %t.res.txt) \
9197
; RUN: 2>&1 | FileCheck %s --check-prefixes=CHECK,GLOBAL,LTO
9298

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+
93102
target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
94103
target triple = "aarch64-unknown-linux"
95104

@@ -615,3 +624,99 @@ entry:
615624
; CHECK-NEXT: allocas uses:
616625
; CHECK-NEXT: x[8]: full-set
617626
; 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

Comments
 (0)