diff options
| author | Peter Collingbourne <peter@pcc.me.uk> | 2016-12-09 20:51:33 +0000 |
|---|---|---|
| committer | Peter Collingbourne <peter@pcc.me.uk> | 2016-12-09 20:51:33 +0000 |
| commit | fa7f39371447cd8c0a50c4764e60c01b5c336122 (patch) | |
| tree | c48a2956ed7e35d660b95621fc584d72dc90f232 | |
| parent | 8fafb8d37861378bfc7432891edd8c75a3589f71 (diff) | |
| download | bcm5719-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.cpp | 6 |
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()) |

