brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.4 KiB · c24f516 Raw
99 lines · plain
1;RUN: opt %s -aa-pipeline= -passes='adce,loop(loop-rotate),adce' -S -verify-analysis-invalidation=0 -debug-pass-manager -debug-only=loop-rotate 2>&1 | FileCheck %s2;RUN: opt %s -aa-pipeline= -passes='adce,loop-mssa(loop-rotate),adce' -S -verify-analysis-invalidation=0 -debug-pass-manager -debug-only=loop-rotate -verify-memoryssa 2>&1 | FileCheck %s --check-prefix=MSSA3;REQUIRES: asserts4 5; This test is to make sure we invalidate the post dominator pass after loop rotate simplifies the loop latch.6; The adce passes are here to make sure post dominator analysis is required.7 8; CHECK: Running pass: ADCEPass on f9; CHECK-NEXT: Running analysis: PostDominatorTreeAnalysis on f10; CHECK-NEXT: Running pass: LoopSimplifyPass on f11; CHECK-NEXT: Running analysis: LoopAnalysis on f12; CHECK-NEXT: Running analysis: DominatorTreeAnalysis on f13; CHECK-NEXT: Running analysis: AssumptionAnalysis on f14; CHECK-NEXT: Running analysis: TargetIRAnalysis on f15; CHECK-NEXT: Running pass: LCSSAPass on f16; CHECK-NEXT: Running analysis: AAManager on f17; CHECK-NEXT: Running analysis: TargetLibraryAnalysis on f18; CHECK-NEXT: Running analysis: ScalarEvolutionAnalysis on f19; CHECK-NEXT: Running analysis: InnerAnalysisManagerProxy{{.*}} on f20; CHECK-NEXT: Running pass: LoopRotatePass on loop %bb in function f21; CHECK-NEXT: Folding loop latch bb4 into bb22; CHECK-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on f23; CHECK-NEXT: Running pass: ADCEPass on f24; CHECK-NEXT: Running analysis: PostDominatorTreeAnalysis on f25 26; MSSA: Running pass: ADCEPass on f27; MSSA-NEXT: Running analysis: PostDominatorTreeAnalysis on f28; MSSA-NEXT: Running pass: LoopSimplifyPass on f29; MSSA-NEXT: Running analysis: LoopAnalysis on f30; MSSA-NEXT: Running analysis: DominatorTreeAnalysis on f31; MSSA-NEXT: Running analysis: AssumptionAnalysis on f32; MSSA-NEXT: Running analysis: TargetIRAnalysis on f33; MSSA-NEXT: Running pass: LCSSAPass on f34; MSSA-NEXT: Running analysis: MemorySSAAnalysis on f35; MSSA-NEXT: Running analysis: AAManager on f36; MSSA-NEXT: Running analysis: TargetLibraryAnalysis on f37; MSSA-NEXT: Running analysis: ScalarEvolutionAnalysis on f38; MSSA-NEXT: Running analysis: InnerAnalysisManagerProxy{{.*}} on f39; MSSA-NEXT: Running pass: LoopRotatePass on loop %bb in function f40; MSSA-NEXT: Folding loop latch bb4 into bb41; MSSA-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on f42; MSSA-NEXT: Running pass: ADCEPass on f43; MSSA-NEXT: Running analysis: PostDominatorTreeAnalysis on f44 45; CHECK-LABEL: define i8 @f() {46; CHECK-NEXT:  entry:47; CHECK-NEXT:    br label %bb48; CHECK:       bb:                                               ; preds = %bb, %entry49; CHECK-NEXT:    %mode.0 = phi i8 [ 0, %entry ], [ %indvar.next, %bb ]50; CHECK-NEXT:    %tmp5 = icmp eq i8 %mode.0, 151; CHECK-NEXT:    %indvar.next = add i8 %mode.0, 152; CHECK-NEXT:    br i1 %tmp5, label %bb5, label %bb53; CHECK:       bb5:                                              ; preds = %bb54; CHECK-NEXT:    tail call void @raise_exception() #055; CHECK-NEXT:    unreachable56; CHECK-NEXT:  }57; CHECK:       ; Function Attrs: noreturn58; CHECK:       declare void @raise_exception() #059; CHECK:       attributes #0 = { noreturn }60 61; MSSA-LABEL: define i8 @f() {62; MSSA-NEXT:  entry:63; MSSA-NEXT:    br label %bb64; MSSA:       bb:                                               ; preds = %bb, %entry65; MSSA-NEXT:    %mode.0 = phi i8 [ 0, %entry ], [ %indvar.next, %bb ]66; MSSA-NEXT:    %tmp5 = icmp eq i8 %mode.0, 167; MSSA-NEXT:    %indvar.next = add i8 %mode.0, 168; MSSA-NEXT:    br i1 %tmp5, label %bb5, label %bb69; MSSA:       bb5:                                              ; preds = %bb70; MSSA-NEXT:    tail call void @raise_exception() #071; MSSA-NEXT:    unreachable72; MSSA-NEXT:  }73; MSSA:       ; Function Attrs: noreturn74; MSSA:       declare void @raise_exception() #075; MSSA:       attributes #0 = { noreturn }76 77define i8 @f() {78entry:79  br label %bb80 81bb:                                               ; preds = %bb4, %entry82  %mode.0 = phi i8 [ 0, %entry ], [ %indvar.next, %bb4 ]83  %tmp5 = icmp eq i8 %mode.0, 184  br i1 %tmp5, label %bb5, label %bb485 86bb4:                                              ; preds = %bb287  %indvar.next = add i8 %mode.0, 188  br label %bb89 90bb5:                                              ; preds = %bb291  tail call void @raise_exception() #092  unreachable93}94 95; Function Attrs: noreturn96declare void @raise_exception() #097 98attributes #0 = { noreturn }99