[llvm] [llvm-readobj][ELF] Remove flush from `GNUELFDumper::printField()` (PR #217602)

Andrew Ng via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 05:24:24 PDT 2026


https://github.com/nga888 created https://github.com/llvm/llvm-project/pull/217602

This dramatically improves the performance of the dumping of ELF symbols. For `llvm-readelf -s UE5Demo.elf > symbols.txt`, example time deltas are:

  Windows: ~32s -> ~1s
  Linux:   ~10s -> ~1s

>From f74e9bd0b0c9985f11d2ab3b4a0fde980259070e Mon Sep 17 00:00:00 2001
From: Andrew Ng <andrew.ng at sony.com>
Date: Thu, 20 Aug 2026 11:48:09 +0100
Subject: [PATCH] [llvm-readobj][ELF] Remove flush from
 `GNUELFDumper::printField()`

This dramatically improves the performance of the dumping of ELF
symbols. For `llvm-readelf -s UE5Demo.elf > symbols.txt`, example time
deltas are:

  Windows: ~32s -> ~1s
  Linux:   ~10s -> ~1s
---
 llvm/tools/llvm-readobj/ELFDumper.cpp | 1 -
 1 file changed, 1 deletion(-)

diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index 8b21b25068ff8..ab81de626e1d3 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -701,7 +701,6 @@ template <typename ELFT> class GNUELFDumper : public ELFDumper<ELFT> {
     if (F.Column != 0)
       OS.PadToColumn(F.Column);
     OS << F.Str;
-    OS.flush();
     return OS;
   }
   void printHashedSymbol(const Elf_Sym *Sym, unsigned SymIndex,



More information about the llvm-commits mailing list