[llvm] [LLVM] Successor count added to InstCount (PR #171670)

IƱaki V Arrechea via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 12 11:11:54 PST 2025


https://github.com/InakiVA updated https://github.com/llvm/llvm-project/pull/171670

>From 897837e890e095577e7eb696d60eac0c89478f77 Mon Sep 17 00:00:00 2001
From: Inaki Arrechea <inakiarrechea at google.com>
Date: Fri, 12 Dec 2025 19:06:19 +0000
Subject: [PATCH] Added Block Successor Count to InstCount

---
 llvm/lib/Analysis/InstCount.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/llvm/lib/Analysis/InstCount.cpp b/llvm/lib/Analysis/InstCount.cpp
index b43c9cd074b9d..da40a00571189 100644
--- a/llvm/lib/Analysis/InstCount.cpp
+++ b/llvm/lib/Analysis/InstCount.cpp
@@ -14,6 +14,7 @@
 #include "llvm/ADT/Statistic.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/InstVisitor.h"
+#include "llvm/IR/Instruction.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/raw_ostream.h"
@@ -24,6 +25,7 @@ using namespace llvm;
 STATISTIC(TotalInsts, "Number of instructions (of all types)");
 STATISTIC(TotalBlocks, "Number of basic blocks");
 STATISTIC(TotalFuncs, "Number of non-external functions");
+STATISTIC(TotalBlockSuccs, "Number of basic block successors");
 
 #define HANDLE_INST(N, OPCODE, CLASS)                                          \
   STATISTIC(Num##OPCODE##Inst, "Number of " #OPCODE " insts");
@@ -35,7 +37,11 @@ class InstCount : public InstVisitor<InstCount> {
   friend class InstVisitor<InstCount>;
 
   void visitFunction(Function &F) { ++TotalFuncs; }
-  void visitBasicBlock(BasicBlock &BB) { ++TotalBlocks; }
+  void visitBasicBlock(BasicBlock &BB) { 
+    Instruction *TI = BB.getTerminator();
+    TotalBlockSuccs += TI->getNumSuccessors();
+    ++TotalBlocks; 
+  }
 
 #define HANDLE_INST(N, OPCODE, CLASS)                                          \
   void visit##OPCODE(CLASS &) {                                                \



More information about the llvm-commits mailing list