brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · aa20735 Raw
45 lines · plain
1; RUN: opt -passes='cgscc(function(instcombine))' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s2 3; We want to run passes on every SCC in a RefSCC without bailing even if one of the SCCs becomes a child SCC.4 5; This prevents explosive behavior on huge RefSCCs where a non-trivial amount of6; SCCs in the RefSCC become their own RefSCC as passes run on them. Otherwise we7; end up visiting the huge RefSCC the number of times that an SCC is split out8; rather than just twice.9 10; CHECK: Running pass: InstCombinePass on f111; CHECK-NOT: InstCombinePass12; CHECK: Running pass: InstCombinePass on f213; CHECK-NOT: InstCombinePass14; CHECK: Running pass: InstCombinePass on f315; CHECK-NOT: InstCombinePass16; CHECK: Running pass: InstCombinePass on f417; CHECK-NOT: InstCombinePass18 19@a1 = alias void (), ptr @f120@a2 = alias void (), ptr @f221@a3 = alias void (), ptr @f322@a4 = alias void (), ptr @f423 24define void @f1() {25  call void @a2()26  call void @a3()27  call void @a4()28  ret void29}30 31define void @f2() {32  call void @a1() readnone nounwind willreturn33  ret void34}35 36define void @f3() {37  call void @a1() readnone nounwind willreturn38  ret void39}40 41define void @f4() {42  call void @a1() readnone nounwind willreturn43  ret void44}45