summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2016-12-09 20:51:33 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2016-12-09 20:51:33 +0000
commitfa7f39371447cd8c0a50c4764e60c01b5c336122 (patch)
treec48a2956ed7e35d660b95621fc584d72dc90f232
parent8fafb8d37861378bfc7432891edd8c75a3589f71 (diff)
downloadbcm5719-llvm-fa7f39371447cd8c0a50c4764e60c01b5c336122.tar.gz
bcm5719-llvm-fa7f39371447cd8c0a50c4764e60c01b5c336122.zip
COFF: Move a call to toString() out of the hot path.
Profiling revealed that we were spending 5% of our time linking chrome_child.dll just in this call to toString(). Differential Revision: https://reviews.llvm.org/D27628 llvm-svn: 289270
-rw-r--r--lld/COFF/InputFiles.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp
index 087d7e2614d..d2146c2f97c 100644
--- a/lld/COFF/InputFiles.cpp
+++ b/lld/COFF/InputFiles.cpp
@@ -171,8 +171,10 @@ void ObjectFile::initializeSymbols() {
int32_t LastSectionNumber = 0;
for (uint32_t I = 0; I < NumSymbols; ++I) {
// Get a COFFSymbolRef object.
- COFFSymbolRef Sym =
- check(COFFObj->getSymbol(I), "broken object file: " + toString(this));
+ ErrorOr<COFFSymbolRef> SymOrErr = COFFObj->getSymbol(I);
+ if (!SymOrErr)
+ fatal(SymOrErr.getError(), "broken object file: " + toString(this));
+ COFFSymbolRef Sym = *SymOrErr;
const void *AuxP = nullptr;
if (Sym.getNumberOfAuxSymbols())
OpenPOWER on IntegriCloud