diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-04-25 21:44:37 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-04-25 21:44:37 +0000 |
commit | 36a5c1470ecb669b5298c2289f238d6d6518544b (patch) | |
tree | ac0438c00f86dbcbe55a9294f6a510c288463317 /include/lld | |
parent | 8ac7b40138620ec16d69a152b2670c4fb31f30c7 (diff) |
Pack symbols a bit more.
Before this patch:
Symbol 56
Defined 80
Undefined 56
SharedSymbol 88
LazyArchive 72
LazyObject 56
With this patch
Symbol 48
Defined 72
Undefined 48
SharedSymbol 80
LazyArchive 64
LazyObject 48
The result is that peak allocation when linking chromium (according to
heaptrack) goes from 578 to 568 MB.
git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@330874 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/lld')
-rw-r--r-- | include/lld/Common/Strings.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/lld/Common/Strings.h b/include/lld/Common/Strings.h index 3be5eb952..9b1469a3b 100644 --- a/include/lld/Common/Strings.h +++ b/include/lld/Common/Strings.h @@ -45,6 +45,9 @@ public: /*implicit*/ StringRefZ(llvm::StringRef S) : Start(S.data()), Size(S.size()) {} + const char *data() const { return Start; } + size_t rawSize() const { return Size; }; + operator llvm::StringRef() const { if (Size == (size_t)-1) Size = strlen(Start); |