aboutsummaryrefslogtreecommitdiff
path: root/include/lld
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2018-04-25 21:44:37 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2018-04-25 21:44:37 +0000
commit36a5c1470ecb669b5298c2289f238d6d6518544b (patch)
treeac0438c00f86dbcbe55a9294f6a510c288463317 /include/lld
parent8ac7b40138620ec16d69a152b2670c4fb31f30c7 (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.h3
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);