Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / Other / cgscc-refscc-mutation-order.ll
blob13a46503c1f4c9c42e26cfe2cc474807a782de39
1 ; RUN: opt -passes='cgscc(function(instcombine))' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s
3 ; We want to run passes on every SCC in a RefSCC without bailing even if one of the SCCs becomes a child SCC.
5 ; This prevents explosive behavior on huge RefSCCs where a non-trivial amount of
6 ; SCCs in the RefSCC become their own RefSCC as passes run on them. Otherwise we
7 ; end up visiting the huge RefSCC the number of times that an SCC is split out
8 ; rather than just twice.
10 ; CHECK: Running pass: InstCombinePass on f1
11 ; CHECK-NOT: InstCombinePass
12 ; CHECK: Running pass: InstCombinePass on f2
13 ; CHECK-NOT: InstCombinePass
14 ; CHECK: Running pass: InstCombinePass on f3
15 ; CHECK-NOT: InstCombinePass
16 ; CHECK: Running pass: InstCombinePass on f4
17 ; CHECK-NOT: InstCombinePass
18 ; CHECK: Running pass: InstCombinePass on f1
19 ; CHECK-NOT: InstCombinePass
21 @a1 = alias void (), ptr @f1
22 @a2 = alias void (), ptr @f2
23 @a3 = alias void (), ptr @f3
24 @a4 = alias void (), ptr @f4
26 define void @f1() {
27   call void @a2()
28   call void @a3()
29   call void @a4()
30   ret void
33 define void @f2() {
34   call void @a1() readnone nounwind willreturn
35   ret void
38 define void @f3() {
39   call void @a1() readnone nounwind willreturn
40   ret void
43 define void @f4() {
44   call void @a1() readnone nounwind willreturn
45   ret void