From 396f48fbd926c19188a374c997fcc9a7917c4dce Mon Sep 17 00:00:00 2001 From: Anna Thomas Date: Wed, 1 May 2024 14:17:10 -0400 Subject: [PATCH] [StandardInstrumentation] Annotate loops with the function name When analyzing pass debug output it is helpful to have the function name along with the loop name. --- llvm/lib/Passes/StandardInstrumentations.cpp | 3 ++- .../LoopPredication/invalidate-analyses.ll | 4 ++-- llvm/test/Transforms/LoopRotate/pr35210.ll | 4 ++-- llvm/test/Transforms/LoopUnroll/revisit.ll | 16 ++++++++-------- .../nontrivial-unswitch-markloopasdeleted.ll | 2 +- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/llvm/lib/Passes/StandardInstrumentations.cpp b/llvm/lib/Passes/StandardInstrumentations.cpp index 63490c83e85f05..ab37ab52146441 100644 --- a/llvm/lib/Passes/StandardInstrumentations.cpp +++ b/llvm/lib/Passes/StandardInstrumentations.cpp @@ -245,7 +245,8 @@ std::string getIRName(Any IR) { return C->getName(); if (const auto *L = unwrapIR(IR)) - return L->getName().str(); + return "loop %" + L->getName().str() + " in function " + + L->getHeader()->getParent()->getName().str(); if (const auto *MF = unwrapIR(IR)) return MF->getName().str(); diff --git a/llvm/test/Transforms/LoopPredication/invalidate-analyses.ll b/llvm/test/Transforms/LoopPredication/invalidate-analyses.ll index 7afacd564939b5..3fc836961f2fa3 100644 --- a/llvm/test/Transforms/LoopPredication/invalidate-analyses.ll +++ b/llvm/test/Transforms/LoopPredication/invalidate-analyses.ll @@ -5,10 +5,10 @@ ; please update this test some other analysis that isn't preserved. ; CHECK: Running analysis: LazyValueAnalysis on drop_a_wc_and_leave_early -; CHECK: Running pass: LoopPredicationPass on loop +; CHECK: Running pass: LoopPredicationPass on loop %loop in function drop_a_wc_and_leave_early ; CHECK: Invalidating analysis: LazyValueAnalysis on drop_a_wc_and_leave_early ; CHECK: Running analysis: LazyValueAnalysis on drop_a_wc_and_leave -; CHECK: Running pass: LoopPredicationPass on loop +; CHECK: Running pass: LoopPredicationPass on loop %loop in function drop_a_wc_and_leave ; CHECK: Invalidating analysis: LazyValueAnalysis on drop_a_wc_and_leave diff --git a/llvm/test/Transforms/LoopRotate/pr35210.ll b/llvm/test/Transforms/LoopRotate/pr35210.ll index 12df8f5a33e7e1..c24f5164e532ce 100644 --- a/llvm/test/Transforms/LoopRotate/pr35210.ll +++ b/llvm/test/Transforms/LoopRotate/pr35210.ll @@ -17,7 +17,7 @@ ; CHECK-NEXT: Running analysis: TargetLibraryAnalysis on f ; CHECK-NEXT: Running analysis: ScalarEvolutionAnalysis on f ; CHECK-NEXT: Running analysis: InnerAnalysisManagerProxy{{.*}} on f -; CHECK-NEXT: Running pass: LoopRotatePass on bb +; CHECK-NEXT: Running pass: LoopRotatePass on loop %bb in function f ; CHECK-NEXT: Folding loop latch bb4 into bb ; CHECK-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on f ; CHECK-NEXT: Running pass: ADCEPass on f @@ -36,7 +36,7 @@ ; MSSA-NEXT: Running analysis: TargetLibraryAnalysis on f ; MSSA-NEXT: Running analysis: ScalarEvolutionAnalysis on f ; MSSA-NEXT: Running analysis: InnerAnalysisManagerProxy{{.*}} on f -; MSSA-NEXT: Running pass: LoopRotatePass on bb +; MSSA-NEXT: Running pass: LoopRotatePass on loop %bb in function f ; MSSA-NEXT: Folding loop latch bb4 into bb ; MSSA-NEXT: Invalidating analysis: PostDominatorTreeAnalysis on f ; MSSA-NEXT: Running pass: ADCEPass on f diff --git a/llvm/test/Transforms/LoopUnroll/revisit.ll b/llvm/test/Transforms/LoopUnroll/revisit.ll index de1f02ac997dac..65b690578f9bc1 100644 --- a/llvm/test/Transforms/LoopUnroll/revisit.ll +++ b/llvm/test/Transforms/LoopUnroll/revisit.ll @@ -33,7 +33,7 @@ l0.0.0.ph: l0.0.0: %cond.0.0.0 = load volatile i1, ptr %ptr br i1 %cond.0.0.0, label %l0.0.0, label %l0.0.1.ph -; CHECK: LoopFullUnrollPass on l0.0.0 +; CHECK: LoopFullUnrollPass on loop %l0.0.0 ; CHECK-NOT: LoopFullUnrollPass l0.0.1.ph: @@ -42,29 +42,29 @@ l0.0.1.ph: l0.0.1: %cond.0.0.1 = load volatile i1, ptr %ptr br i1 %cond.0.0.1, label %l0.0.1, label %l0.0.latch -; CHECK: LoopFullUnrollPass on l0.0.1 +; CHECK: LoopFullUnrollPass on loop %l0.0.1 ; CHECK-NOT: LoopFullUnrollPass l0.0.latch: %cmp = icmp slt i32 %iv.next, 2 br i1 %cmp, label %l0.0, label %l0.latch -; CHECK: LoopFullUnrollPass on l0.0 +; CHECK: LoopFullUnrollPass on loop %l0.0 ; CHECK-NOT: LoopFullUnrollPass ; ; Unrolling occurs, so we visit what were the inner loops twice over. First we ; visit their clones, and then we visit the original loops re-parented. -; CHECK: LoopFullUnrollPass on l0.0.1.1 +; CHECK: LoopFullUnrollPass on loop %l0.0.1.1 in function full_unroll ; CHECK-NOT: LoopFullUnrollPass -; CHECK: LoopFullUnrollPass on l0.0.0.1 +; CHECK: LoopFullUnrollPass on loop %l0.0.0.1 in function full_unroll ; CHECK-NOT: LoopFullUnrollPass -; CHECK: LoopFullUnrollPass on l0.0.1 +; CHECK: LoopFullUnrollPass on loop %l0.0.1 in function full_unroll ; CHECK-NOT: LoopFullUnrollPass -; CHECK: LoopFullUnrollPass on l0.0.0 +; CHECK: LoopFullUnrollPass on loop %l0.0.0 in function full_unroll ; CHECK-NOT: LoopFullUnrollPass l0.latch: br label %l0 -; CHECK: LoopFullUnrollPass on l0 +; CHECK: LoopFullUnrollPass on loop %l0 in function full_unroll ; CHECK-NOT: LoopFullUnrollPass exit: diff --git a/llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-markloopasdeleted.ll b/llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-markloopasdeleted.ll index c8e1291b9cd55c..9ab713cc8a4f5b 100644 --- a/llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-markloopasdeleted.ll +++ b/llvm/test/Transforms/SimpleLoopUnswitch/nontrivial-unswitch-markloopasdeleted.ll @@ -17,7 +17,7 @@ ; SimpleLoopUnswitch not marking the Loop as removed, so we missed clearing ; the analysis caches. ; -; CHECK: Running pass: SimpleLoopUnswitchPass on loop_begin +; CHECK: Running pass: SimpleLoopUnswitchPass on loop %loop_begin in function test6 ; CHECK-NEXT: Running analysis: OuterAnalysisManagerProxy ; CHECK-NEXT: Clearing all analysis results for: loop_a_inner