[llvm] [LLVM] InstCount pass implemented when enabling stats (PR #171658)
IƱaki V Arrechea via llvm-commits
llvm-commits at lists.llvm.org
Fri Dec 12 09:17:55 PST 2025
https://github.com/InakiVA updated https://github.com/llvm/llvm-project/pull/171658
>From 8618bf0d0cad36b5b875a0dd4f33a09eeb71c853 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Wed, 10 Dec 2025 17:12:00 +0000
Subject: [PATCH 01/13] Inst Count implemented for metrics pass
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 7 ++-
llvm/test/Other/instcount.ll | 74 ++++++++++++++++++++++++
2 files changed, 80 insertions(+), 1 deletion(-)
create mode 100644 llvm/test/Other/instcount.ll
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index c6beb3fdf09bd..865f24802af4b 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -21,6 +21,7 @@
#include "llvm/Analysis/CtxProfAnalysis.h"
#include "llvm/Analysis/GlobalsModRef.h"
#include "llvm/Analysis/InlineAdvisor.h"
+#include "llvm/Analysis/InstCount.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/Analysis/ScopedNoAliasAA.h"
#include "llvm/Analysis/TypeBasedAliasAnalysis.h"
@@ -1701,6 +1702,11 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
// Emit annotation remarks.
addAnnotationRemarksPass(MPM);
+
+ // Count the types of instructions used
+ if (AreStatisticsEnabled())
+ MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
+
if (isLTOPreLink(Phase))
addRequiredLTOPreLinkPasses(MPM);
return MPM;
@@ -1813,7 +1819,6 @@ PassBuilder::buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level) {
addAnnotationRemarksPass(MPM);
addRequiredLTOPreLinkPasses(MPM);
-
return MPM;
}
diff --git a/llvm/test/Other/instcount.ll b/llvm/test/Other/instcount.ll
new file mode 100644
index 0000000000000..b043f26b28837
--- /dev/null
+++ b/llvm/test/Other/instcount.ll
@@ -0,0 +1,74 @@
+; RUN: opt -stats -passes=instcount < %s 2>&1 | FileCheck %s --check-prefix=UNOPT
+; RUN: opt -stats -O3 < %s 2>&1 | FileCheck %s --check-prefix=OPT
+
+; --- FIRST RUN (UNOPTIMIZED) ---
+; UNOPT-DAG: 8 instcount - Number of Br insts
+; UNOPT-DAG: 6 instcount - Number of Call insts
+; UNOPT-DAG: 2 instcount - Number of ICmp insts
+; UNOPT-DAG: 1 instcount - Number of Ret insts
+; UNOPT-DAG: 1 instcount - Number of Switch insts
+; UNOPT-DAG: 10 instcount - Number of basic blocks
+; UNOPT-DAG: 1 instcount - Number of non-external functions
+; UNOPT-DAG: 18 instcount - Number of instructions (of all types)
+
+; --- SECOND RUN (OPTIMIZED) ---
+; OPT-DAG: 8 instcount - Number of Br insts
+; OPT-DAG: 6 instcount - Number of Call insts
+; OPT-DAG: 2 instcount - Number of ICmp insts
+; OPT-DAG: 1 instcount - Number of Ret insts
+; OPT-DAG: 1 instcount - Number of Switch insts
+; OPT-DAG: 10 instcount - Number of basic blocks
+; OPT-DAG: 1 instcount - Number of non-external functions
+; OPT-DAG: 18 instcount - Number of instructions (of all types)
+
+
+define dso_local void @foo(i32 noundef %i, i32 noundef %j, i32 noundef %n) {
+entry:
+ %cmp = icmp slt i32 %i, %j
+ br i1 %cmp, label %if.then, label %if.end
+
+if.then:
+ call void @f()
+ br label %if.end
+
+if.end:
+ switch i32 %i, label %sw.default [
+ i32 1, label %sw.bb
+ i32 2, label %sw.bb1
+ i32 3, label %sw.bb1
+ ]
+
+sw.bb:
+ call void @g()
+ br label %sw.epilog
+
+sw.bb1:
+ call void @h()
+ br label %sw.epilog
+
+sw.default:
+ call void @k()
+ br label %sw.epilog
+
+sw.epilog:
+ %cmp2 = icmp sgt i32 %i, %n
+ br i1 %cmp2, label %if.then3, label %if.else
+
+if.then3:
+ call void @l()
+ br label %if.end4
+
+if.else:
+ call void @m()
+ br label %if.end4
+
+if.end4:
+ ret void
+}
+
+declare void @f()
+declare void @g()
+declare void @h()
+declare void @k()
+declare void @l()
+declare void @m()
>From c43bd804d6622e49d6febcfeb917f93b65915a36 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Wed, 10 Dec 2025 17:36:16 +0000
Subject: [PATCH 02/13] Whitespace fix
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 865f24802af4b..cf9c3075ce9f2 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -1702,13 +1702,13 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
// Emit annotation remarks.
addAnnotationRemarksPass(MPM);
-
// Count the types of instructions used
if (AreStatisticsEnabled())
MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
if (isLTOPreLink(Phase))
addRequiredLTOPreLinkPasses(MPM);
+
return MPM;
}
>From 777eb40adefd877a825b670c4f5b62c71adffc20 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Wed, 10 Dec 2025 17:37:49 +0000
Subject: [PATCH 03/13] Whitespace fix
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index cf9c3075ce9f2..0632858813dd3 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -1708,7 +1708,7 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
if (isLTOPreLink(Phase))
addRequiredLTOPreLinkPasses(MPM);
-
+
return MPM;
}
@@ -1819,6 +1819,7 @@ PassBuilder::buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level) {
addAnnotationRemarksPass(MPM);
addRequiredLTOPreLinkPasses(MPM);
+
return MPM;
}
>From 77deef83a99020d4963f98b3c042b3d793756e52 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Wed, 10 Dec 2025 17:52:17 +0000
Subject: [PATCH 04/13] Format
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 8e5d6b368c5b5..edafde9f68279 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -1855,7 +1855,7 @@ PassBuilder::buildThinLTOPreLinkDefaultPipeline(OptimizationLevel Level) {
addAnnotationRemarksPass(MPM);
addRequiredLTOPreLinkPasses(MPM);
-
+
return MPM;
}
>From 9fd9380180a24683dd600bbc15b932a47928cc7e Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 16:42:22 +0000
Subject: [PATCH 05/13] One check on test fix
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 7 +++--
llvm/test/Other/instcount.ll | 33 ++++++++----------------
2 files changed, 14 insertions(+), 26 deletions(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index edafde9f68279..24221d8ddf6f2 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -412,6 +412,9 @@ void PassBuilder::invokePipelineEarlySimplificationEPCallbacks(
// Helper to add AnnotationRemarksPass.
static void addAnnotationRemarksPass(ModulePassManager &MPM) {
MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
+ // Count the types of instructions used
+ if (AreStatisticsEnabled())
+ MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
}
// Helper to check if the current compilation phase is preparing for LTO
@@ -1738,10 +1741,6 @@ PassBuilder::buildPerModuleDefaultPipeline(OptimizationLevel Level,
// Emit annotation remarks.
addAnnotationRemarksPass(MPM);
- // Count the types of instructions used
- if (AreStatisticsEnabled())
- MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
-
if (isLTOPreLink(Phase))
addRequiredLTOPreLinkPasses(MPM);
diff --git a/llvm/test/Other/instcount.ll b/llvm/test/Other/instcount.ll
index b043f26b28837..c45ccc0bc4daa 100644
--- a/llvm/test/Other/instcount.ll
+++ b/llvm/test/Other/instcount.ll
@@ -1,25 +1,14 @@
-; RUN: opt -stats -passes=instcount < %s 2>&1 | FileCheck %s --check-prefix=UNOPT
-; RUN: opt -stats -O3 < %s 2>&1 | FileCheck %s --check-prefix=OPT
-
-; --- FIRST RUN (UNOPTIMIZED) ---
-; UNOPT-DAG: 8 instcount - Number of Br insts
-; UNOPT-DAG: 6 instcount - Number of Call insts
-; UNOPT-DAG: 2 instcount - Number of ICmp insts
-; UNOPT-DAG: 1 instcount - Number of Ret insts
-; UNOPT-DAG: 1 instcount - Number of Switch insts
-; UNOPT-DAG: 10 instcount - Number of basic blocks
-; UNOPT-DAG: 1 instcount - Number of non-external functions
-; UNOPT-DAG: 18 instcount - Number of instructions (of all types)
-
-; --- SECOND RUN (OPTIMIZED) ---
-; OPT-DAG: 8 instcount - Number of Br insts
-; OPT-DAG: 6 instcount - Number of Call insts
-; OPT-DAG: 2 instcount - Number of ICmp insts
-; OPT-DAG: 1 instcount - Number of Ret insts
-; OPT-DAG: 1 instcount - Number of Switch insts
-; OPT-DAG: 10 instcount - Number of basic blocks
-; OPT-DAG: 1 instcount - Number of non-external functions
-; OPT-DAG: 18 instcount - Number of instructions (of all types)
+; RUN: opt -stats -passes=instcount < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -O3 < %s 2>&1 | FileCheck %s
+
+; CHECK-DAG: 8 instcount - Number of Br insts
+; CHECK-DAG: 6 instcount - Number of Call insts
+; CHECK-DAG: 2 instcount - Number of ICmp insts
+; CHECK-DAG: 1 instcount - Number of Ret insts
+; CHECK-DAG: 1 instcount - Number of Switch insts
+; CHECK-DAG: 10 instcount - Number of basic blocks
+; CHECK-DAG: 1 instcount - Number of non-external functions
+; CHECK-DAG: 18 instcount - Number of instructions (of all types)
define dso_local void @foo(i32 noundef %i, i32 noundef %j, i32 noundef %n) {
>From 3c8722d6b6cad52d54146ded6aa340184e9b81a5 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 17:40:46 +0000
Subject: [PATCH 06/13] Test case simplified
---
llvm/test/Other/instcount.ll | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/test/Other/instcount.ll b/llvm/test/Other/instcount.ll
index c45ccc0bc4daa..3df4346382258 100644
--- a/llvm/test/Other/instcount.ll
+++ b/llvm/test/Other/instcount.ll
@@ -11,7 +11,7 @@
; CHECK-DAG: 18 instcount - Number of instructions (of all types)
-define dso_local void @foo(i32 noundef %i, i32 noundef %j, i32 noundef %n) {
+define void @foo(i32 %i, i32 %j, i32 %n) {
entry:
%cmp = icmp slt i32 %i, %j
br i1 %cmp, label %if.then, label %if.end
>From 5f8a6690e7dbff40dda798dd8f43cb53fcc0f308 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 17:43:29 +0000
Subject: [PATCH 07/13] Clang format applied
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 24221d8ddf6f2..fce302754256a 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -191,9 +191,9 @@ static cl::opt<bool> EnablePostPGOLoopRotation(
"enable-post-pgo-loop-rotation", cl::init(true), cl::Hidden,
cl::desc("Run the loop rotation transformation after PGO instrumentation"));
-static cl::opt<bool> EnableGlobalAnalyses(
- "enable-global-analyses", cl::init(true), cl::Hidden,
- cl::desc("Enable inter-procedural analyses"));
+static cl::opt<bool>
+ EnableGlobalAnalyses("enable-global-analyses", cl::init(true), cl::Hidden,
+ cl::desc("Enable inter-procedural analyses"));
static cl::opt<bool> RunPartialInlining("enable-partial-inlining",
cl::init(false), cl::Hidden,
@@ -412,7 +412,7 @@ void PassBuilder::invokePipelineEarlySimplificationEPCallbacks(
// Helper to add AnnotationRemarksPass.
static void addAnnotationRemarksPass(ModulePassManager &MPM) {
MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
- // Count the types of instructions used
+ // Count the types of instructions used
if (AreStatisticsEnabled())
MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
}
@@ -1181,11 +1181,10 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
// and prior to optimizing globals.
// FIXME: This position in the pipeline hasn't been carefully considered in
// years, it should be re-analyzed.
- MPM.addPass(IPSCCPPass(
- IPSCCPOptions(/*AllowFuncSpec=*/
- Level != OptimizationLevel::Os &&
- Level != OptimizationLevel::Oz &&
- !isLTOPreLink(Phase))));
+ MPM.addPass(IPSCCPPass(IPSCCPOptions(/*AllowFuncSpec=*/
+ Level != OptimizationLevel::Os &&
+ Level != OptimizationLevel::Oz &&
+ !isLTOPreLink(Phase))));
// Attach metadata to indirect call sites indicating the set of functions
// they may target at run-time. This should follow IPSCCP.
>From 378d928704c1610c3964097196eda5b786aafdd2 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 18:25:36 +0000
Subject: [PATCH 08/13] Format retry
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index fce302754256a..24221d8ddf6f2 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -191,9 +191,9 @@ static cl::opt<bool> EnablePostPGOLoopRotation(
"enable-post-pgo-loop-rotation", cl::init(true), cl::Hidden,
cl::desc("Run the loop rotation transformation after PGO instrumentation"));
-static cl::opt<bool>
- EnableGlobalAnalyses("enable-global-analyses", cl::init(true), cl::Hidden,
- cl::desc("Enable inter-procedural analyses"));
+static cl::opt<bool> EnableGlobalAnalyses(
+ "enable-global-analyses", cl::init(true), cl::Hidden,
+ cl::desc("Enable inter-procedural analyses"));
static cl::opt<bool> RunPartialInlining("enable-partial-inlining",
cl::init(false), cl::Hidden,
@@ -412,7 +412,7 @@ void PassBuilder::invokePipelineEarlySimplificationEPCallbacks(
// Helper to add AnnotationRemarksPass.
static void addAnnotationRemarksPass(ModulePassManager &MPM) {
MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
- // Count the types of instructions used
+ // Count the types of instructions used
if (AreStatisticsEnabled())
MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
}
@@ -1181,10 +1181,11 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
// and prior to optimizing globals.
// FIXME: This position in the pipeline hasn't been carefully considered in
// years, it should be re-analyzed.
- MPM.addPass(IPSCCPPass(IPSCCPOptions(/*AllowFuncSpec=*/
- Level != OptimizationLevel::Os &&
- Level != OptimizationLevel::Oz &&
- !isLTOPreLink(Phase))));
+ MPM.addPass(IPSCCPPass(
+ IPSCCPOptions(/*AllowFuncSpec=*/
+ Level != OptimizationLevel::Os &&
+ Level != OptimizationLevel::Oz &&
+ !isLTOPreLink(Phase))));
// Attach metadata to indirect call sites indicating the set of functions
// they may target at run-time. This should follow IPSCCP.
>From 8e04b3b2bae40eb76edcf50ffc00ca4fe3023943 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 19:36:43 +0000
Subject: [PATCH 09/13] Passes test implementation successful
---
llvm/test/Other/instcount.ll | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/llvm/test/Other/instcount.ll b/llvm/test/Other/instcount.ll
index 3df4346382258..7422403bdc031 100644
--- a/llvm/test/Other/instcount.ll
+++ b/llvm/test/Other/instcount.ll
@@ -1,5 +1,10 @@
; RUN: opt -stats -passes=instcount < %s 2>&1 | FileCheck %s
; RUN: opt -stats -O3 < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -O0 < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='thinlto<O3>' < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='thinlto-pre-link<O2>' < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='lto<O1>' < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='lto-pre-link<Os>' < %s 2>&1 | FileCheck %s
; CHECK-DAG: 8 instcount - Number of Br insts
; CHECK-DAG: 6 instcount - Number of Call insts
>From 8b303b26c2e6252ba824a00a8a8202b81fad467a Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 19:36:51 +0000
Subject: [PATCH 10/13] Passes test implementation successful
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 2 ++
llvm/test/Other/instcount.ll | 14 +++++++-------
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 24221d8ddf6f2..bb679bc8b5552 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -2427,6 +2427,8 @@ PassBuilder::buildO0DefaultPipeline(OptimizationLevel Level,
MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
+ MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
+
return MPM;
}
diff --git a/llvm/test/Other/instcount.ll b/llvm/test/Other/instcount.ll
index 7422403bdc031..66e3081405aea 100644
--- a/llvm/test/Other/instcount.ll
+++ b/llvm/test/Other/instcount.ll
@@ -1,10 +1,10 @@
-; RUN: opt -stats -passes=instcount < %s 2>&1 | FileCheck %s
-; RUN: opt -stats -O3 < %s 2>&1 | FileCheck %s
-; RUN: opt -stats -O0 < %s 2>&1 | FileCheck %s
-; RUN: opt -stats -passes='thinlto<O3>' < %s 2>&1 | FileCheck %s
-; RUN: opt -stats -passes='thinlto-pre-link<O2>' < %s 2>&1 | FileCheck %s
-; RUN: opt -stats -passes='lto<O1>' < %s 2>&1 | FileCheck %s
-; RUN: opt -stats -passes='lto-pre-link<Os>' < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes=instcount -disable-output < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='thinlto<O3>' -disable-output < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='thinlto-pre-link<O2>' -disable-output < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='lto<O1>' -disable-output < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -passes='lto-pre-link<Os>' -disable-output < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -O3 -disable-output < %s 2>&1 | FileCheck %s
+; RUN: opt -stats -O0 -disable-output < %s 2>&1 | FileCheck %s
; CHECK-DAG: 8 instcount - Number of Br insts
; CHECK-DAG: 6 instcount - Number of Call insts
>From 7d96aa42366bdc8c14201670ff1367e3acb47560 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 19:51:46 +0000
Subject: [PATCH 11/13] Clang format my change
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index bb679bc8b5552..3763f4e312557 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -412,7 +412,7 @@ void PassBuilder::invokePipelineEarlySimplificationEPCallbacks(
// Helper to add AnnotationRemarksPass.
static void addAnnotationRemarksPass(ModulePassManager &MPM) {
MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
- // Count the types of instructions used
+ // Count the types of instructions used
if (AreStatisticsEnabled())
MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
}
>From 388cbc55a50a6d865568d9ccbeff6c742d39adc5 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 20:42:01 +0000
Subject: [PATCH 12/13] PassBuilderPipelines pass updated
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index 3763f4e312557..c1acf131dd927 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -2427,7 +2427,8 @@ PassBuilder::buildO0DefaultPipeline(OptimizationLevel Level,
MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
- MPM.addPass(createModuleToFunctionPassAdaptor(InstCountPass()));
+ // Emit annotation remarks.
+ addAnnotationRemarksPass(MPM);
return MPM;
}
>From b319de5b01c7f7b1970688fd6f354be40377b870 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Thu, 11 Dec 2025 22:11:50 +0000
Subject: [PATCH 13/13] Use of correct method substitution
---
llvm/lib/Passes/PassBuilderPipelines.cpp | 2 --
1 file changed, 2 deletions(-)
diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
index c1acf131dd927..a814743edd666 100644
--- a/llvm/lib/Passes/PassBuilderPipelines.cpp
+++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
@@ -2425,8 +2425,6 @@ PassBuilder::buildO0DefaultPipeline(OptimizationLevel Level,
if (isLTOPreLink(Phase))
addRequiredLTOPreLinkPasses(MPM);
- MPM.addPass(createModuleToFunctionPassAdaptor(AnnotationRemarksPass()));
-
// Emit annotation remarks.
addAnnotationRemarksPass(MPM);
More information about the llvm-commits
mailing list