aboutsummaryrefslogtreecommitdiff
path: root/lld
diff options
context:
space:
mode:
authorDaniel Bertalan <dani@danielbertalan.dev>2022-07-21 11:26:09 +0200
committerDaniel Bertalan <dani@danielbertalan.dev>2022-07-21 15:36:56 +0200
commit888d0a5ef2590f9f3e4c6820dfacb800db029d97 (patch)
tree81f929665000b716e1e20bb6d010d1ad0a36d411 /lld
parent6542cb55a3eb115b1c3592514590a19987ffc498 (diff)
downloadllvm-888d0a5ef2590f9f3e4c6820dfacb800db029d97.zip
llvm-888d0a5ef2590f9f3e4c6820dfacb800db029d97.tar.gz
llvm-888d0a5ef2590f9f3e4c6820dfacb800db029d97.tar.bz2
[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
Diffstat (limited to 'lld')
-rw-r--r--lld/MachO/InputFiles.cpp3
1 files changed, 1 insertions, 2 deletions
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<typename LP::section> 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<typename LP::section> sectionHeaders,
} else if (isUndef(sym)) {
undefineds.push_back(i);
} else {
- symbols[i] = parseNonSectionSymbol(sym, name);
+ symbols[i] = parseNonSectionSymbol(sym, StringRef(strtab + sym.n_strx));
}
}