From: Daniel Bertalan Date: Thu, 21 Jul 2022 09:26:09 +0000 (+0200) Subject: [lld-macho][NFC] Remove redundant StringRef construction X-Git-Tag: upstream/15.0.7~963 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=888d0a5ef2590f9f3e4c6820dfacb800db029d97;p=platform%2Fupstream%2Fllvm.git [lld-macho][NFC] Remove redundant StringRef construction It's only used in one branch, so we were unnecessarily calculating the length of many symbol names. Tiny speedup when linking chromium_framework on my M1 Mac mini: x before.txt + after.txt N Min Max Median Avg Stddev x 10 3.9917109 4.0418 4.0318099 4.0203902 0.021459873 + 10 3.944725 4.053988 3.9708955 3.9825602 0.037257609 Difference at 95.0% confidence -0.03783 +/- 0.0285663 -0.940953% +/- 0.710536% (Student's t, pooled s = 0.0304028) Differential Revision: https://reviews.llvm.org/D130234 --- diff --git a/lld/MachO/InputFiles.cpp b/lld/MachO/InputFiles.cpp index 93cde5f..5bc333f 100644 --- a/lld/MachO/InputFiles.cpp +++ b/lld/MachO/InputFiles.cpp @@ -903,7 +903,6 @@ void ObjFile::parseSymbols(ArrayRef sectionHeaders, if (sym.n_type & N_STAB) continue; - StringRef name = strtab + sym.n_strx; if ((sym.n_type & N_TYPE) == N_SECT) { Subsections &subsections = sections[sym.n_sect - 1]->subsections; // parseSections() may have chosen not to parse this section. @@ -913,7 +912,7 @@ void ObjFile::parseSymbols(ArrayRef sectionHeaders, } else if (isUndef(sym)) { undefineds.push_back(i); } else { - symbols[i] = parseNonSectionSymbol(sym, name); + symbols[i] = parseNonSectionSymbol(sym, StringRef(strtab + sym.n_strx)); } }