[binutils-gdb] gprof: speed up line-by-line for MIPS/PowerPC/RISCV/SuperH

Alan Modra amodra@sourceware.org
Sat Mar 1 00:47:53 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b6539282a9378cc2587b480c3fc5c75adabf6301

commit b6539282a9378cc2587b480c3fc5c75adabf6301
Author: Richard Allen <rsaxvc@gmail.com>
Date:   Sun Feb 16 16:50:02 2025 -0600

    gprof: speed up line-by-line for MIPS/PowerPC/RISCV/SuperH
    
    Roughly halves the number of bfd_find_nearest_line() calls,
    about 40% less time for a few different large ELF files.
    
    Signed-off-by: Richard Allen <rsaxvc@gmail.com>

Diff:
---
 gprof/corefile.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gprof/corefile.c b/gprof/corefile.c
index bd8e60d4e68..6ecb55d62f4 100644
--- a/gprof/corefile.c
+++ b/gprof/corefile.c
@@ -255,6 +255,13 @@ core_init (const char * aout_name)
       offset_to_code = 2;
       break;
 
+    case bfd_arch_mips:/* and microMIPS */
+    case bfd_arch_powerpc:/* and VLE */
+    case bfd_arch_riscv:/* and RVC */
+    case bfd_arch_sh:
+      insn_boundary = 2;
+      break;
+
     case bfd_arch_alpha:
       insn_boundary = 4;
       break;


More information about the Binutils-cvs mailing list