[PATCH] D103072: [llvm-readobj] Optimize printing stack sizes to linear time.

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 25 01:16:09 PDT 2021


jhenderson added inline comments.


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:5747-5748
+    return None;
+  for (auto Index : Symbols->second) {
+
+    const Elf_Sym &Sym = *cantFail(Obj.getSymbol(this->DotSymtabSec, Index));
----------------
Nit: add a blank line before the start of the loop and remove the one inside the loop.


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:5750-5751
+    const Elf_Sym &Sym = *cantFail(Obj.getSymbol(this->DotSymtabSec, Index));
+    if (Sym.st_shndx == ELF::SHN_UNDEF || Sym.getType() != ELF::STT_FUNC)
+      continue;
+
----------------
Based on the function name, can't this clause be moved inside the earlier loop, where it was before? That would avoid adding unnecessary symbols to the table.


================
Comment at: llvm/tools/llvm-readobj/ELFDumper.cpp:6724-6731
+  bool IsRelocatable = this->Obj.getHeader().e_type == ELF::ET_REL;
   for (const Elf_Shdr &Sec : cantFail(this->Obj.sections())) {
     if (Sec.sh_type != SHT_LLVM_BB_ADDR_MAP)
       continue;
+    Optional<const Elf_Shdr *> FunctionSec = None;
+    if (IsRelocatable)
+      FunctionSec =
----------------
Seems like this change is unrelated?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D103072/new/

https://reviews.llvm.org/D103072



More information about the llvm-commits mailing list