aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/ld
diff options
context:
space:
mode:
authorDmitriy Vyukov <dvyukov@google.com>2011-07-21 13:57:13 -0400
committerRuss Cox <rsc@golang.org>2011-07-21 13:57:13 -0400
commit6b2ec065871019d07dcbe6ca527fbd4c600e1c19 (patch)
treeec8664ae376c9fab705f6dfd359fd6af8100070a /src/cmd/ld
parent17d9093bf214f3461815410c298006bac8427c0e (diff)
downloadgo-6b2ec065871019d07dcbe6ca527fbd4c600e1c19.tar.xz
runtime: faster select
Make selectsend() accept pointer to the element, it makes it possible to make Scase fixed-size and allocate/free Select, all Scase's and all SudoG at once. As a consequence SudoG freelist die out. benchmark old,ns/op new,ns/op BenchmarkSelectUncontended 1080 558 BenchmarkSelectUncontended-2 675 264 BenchmarkSelectUncontended-4 459 205 BenchmarkSelectContended 1086 560 BenchmarkSelectContended-2 1775 1672 BenchmarkSelectContended-4 2668 2149 (on Intel Q6600, 4 cores, 2.4GHz) benchmark old ns/op new ns/op delta BenchmarkSelectUncontended 517.00 326.00 -36.94% BenchmarkSelectUncontended-2 281.00 166.00 -40.93% BenchmarkSelectUncontended-4 250.00 83.10 -66.76% BenchmarkSelectUncontended-8 107.00 47.40 -55.70% BenchmarkSelectUncontended-16 67.80 41.30 -39.09% BenchmarkSelectContended 513.00 325.00 -36.65% BenchmarkSelectContended-2 699.00 628.00 -10.16% BenchmarkSelectContended-4 1085.00 1092.00 +0.65% BenchmarkSelectContended-8 3253.00 2477.00 -23.85% BenchmarkSelectContended-16 5313.00 5116.00 -3.71% (on Intel E5620, 8 HT cores, 2.4 GHz) R=rsc, ken CC=golang-dev https://golang.org/cl/4811041
Diffstat (limited to 'src/cmd/ld')
-rw-r--r--src/cmd/ld/dwarf.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/cmd/ld/dwarf.c b/src/cmd/ld/dwarf.c
index d02fff3c26..d8ca27acea 100644
--- a/src/cmd/ld/dwarf.c
+++ b/src/cmd/ld/dwarf.c
@@ -1422,7 +1422,6 @@ synthesizechantypes(DWDie *die)
copychildren(dwh, hchan);
substitutetype(dwh, "recvq", dww);
substitutetype(dwh, "sendq", dww);
- substitutetype(dwh, "free", defptrto(dws));
newattr(dwh, DW_AT_byte_size, DW_CLS_CONSTANT,
getattr(hchan, DW_AT_byte_size)->value, nil);