aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/8l
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2011-04-09 09:44:20 -0400
committerRuss Cox <rsc@golang.org>2011-04-09 09:44:20 -0400
commit1bc84b7e18ae704483ab028bb2030970bbc0b2f3 (patch)
treeb3cc18d44af119730dd6e8a3a28abd3c5aa24d7b /src/cmd/8l
parentebaf01f0526f349dd207798dc5771219e9d8a8ca (diff)
downloadgo-1bc84b7e18ae704483ab028bb2030970bbc0b2f3.tar.xz
ld: 25% faster
The ld time was dominated by symbol table processing, so * increase hash table size * emit fewer symbols in gc (just 1 per string, 1 per type) * add read-only lookup to avoid creating spurious symbols * add linked list to speed whole-table traversals Breaks dwarf generator (no idea why), so disable dwarf. Reduces time for 6l to link godoc by 25%. R=ken2 CC=golang-dev https://golang.org/cl/4383047
Diffstat (limited to 'src/cmd/8l')
-rw-r--r--src/cmd/8l/l.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cmd/8l/l.h b/src/cmd/8l/l.h
index 62f4702573..ac0f3953f0 100644
--- a/src/cmd/8l/l.h
+++ b/src/cmd/8l/l.h
@@ -139,6 +139,7 @@ struct Sym
int32 plt;
int32 got;
Sym* hash; // in hash table
+ Sym* allsym; // in all symbol list
Sym* next; // in text or data list
Sym* sub; // in sub list
Sym* outer; // container of sub
@@ -169,7 +170,6 @@ struct Optab
enum
{
- NHASH = 10007,
MINSIZ = 4,
STRINGSZ = 200,
MINLC = 1,