diff options
| author | Russ Cox <rsc@golang.org> | 2011-04-09 09:44:20 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-04-09 09:44:20 -0400 |
| commit | 1bc84b7e18ae704483ab028bb2030970bbc0b2f3 (patch) | |
| tree | b3cc18d44af119730dd6e8a3a28abd3c5aa24d7b /src/cmd/8l | |
| parent | ebaf01f0526f349dd207798dc5771219e9d8a8ca (diff) | |
| download | go-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.h | 2 |
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, |
