- 18 Jan, 2013 25 commits
-
-
Russ Cox authored
Fixes #4678. TBR=gri CC=golang-dev https://golang.org/cl/7135059
-
Matthew Dempsky authored
For simplicity, only recognizes expressions of the exact form "(x << a) | (x >> b)" where x is a variable and a and b are integer constant expressions that add to x's bit width. Fixes #4629. $ cat rotate.c unsigned int rotate(unsigned int x) { x = (x << 3) | (x >> (sizeof(x) * 8 - 3)); return x; } ## BEFORE $ go tool 6c -S rotate.c (rotate.c:2) TEXT rotate+0(SB),$0-8 (rotate.c:2) MOVL x+0(FP),!!DX (rotate.c:4) MOVL DX,!!AX (rotate.c:4) SALL $3,!!AX (rotate.c:4) MOVL DX,!!CX (rotate.c:4) SHRL $29,!!CX (rotate.c:4) ORL CX,!!AX (rotate.c:5) RET ,!! (rotate.c:5) RET ,!! (rotate.c:5) END ,!! ## AFTER $ go tool 6c -S rotate.c (rotate.c:2) TEXT rotate+0(SB),$0-8 (rotate.c:4) MOVL x+0(FP),!!AX (rotate.c:4) ROLL $3,!!AX (rotate.c:5) RET ,!! (rotate.c:5) RET ,!! (rotate.c:5) END ,!! R=rsc, minux.ma CC=golang-dev https://golang.org/cl/7069056
-
Kamil Kisiel authored
Fixes #3719. R=anacrolix, rsc CC=golang-dev https://golang.org/cl/7131052
-
Robert Griesemer authored
Fixes #4653. R=rsc, r, iant, ken, thakis CC=golang-dev https://golang.org/cl/7135058
-
Jan Ziak authored
If the scanned block has no typeinfo the garbage collector will attempt to get the actual type of the block. R=golang-dev, bradfitz, rsc CC=golang-dev https://golang.org/cl/7093045
-
Rémy Oudompheng authored
The test array is too large to fit a stack frame but can be a global. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7127059
-
Daniel Morsing authored
Fixes #4610. R=golang-dev, remyoudompheng, rsc CC=golang-dev, nigeltao https://golang.org/cl/7058057
-
Akshat Kumar authored
On Plan 9, only the parent of a given process can enter its wait queue. When a Go program tries to fork-exec a child process and subsequently waits for it to finish, the goroutines doing these two tasks do not necessarily tie themselves to the same (or any single) OS thread. In the case that the fork and the wait system calls happen on different OS threads (say, due to a goroutine being rescheduled somewhere along the way), the wait() will either return an error or end up waiting for a completely different child than was intended. This change forces the fork and wait syscalls to happen in the same goroutine and ties that goroutine to its OS thread until the child exits. The PID of the child is recorded upon fork and exit, and de-queued once the child's wait message has been read. The Wait API, then, is translated into a synthetic implementation that simply waits for the requested PID to show up in the queue and then reads the associated stats. R=rsc, rminnich, npe, mirtchovski, ality CC=golang-dev https://golang.org/cl/6545051
-
Rémy Oudompheng authored
The test case of issue 4585 was not passing due to miscalculation of memequal args, and the previous fix does not handle padding at the end of a struct. Handling of padding at end of structs also fixes the case of [n]T where T is such a padded struct. Fixes #4585. (again) R=golang-dev, rsc CC=golang-dev https://golang.org/cl/7133059
-
Carl Shapiro authored
Reference the 80386 compiler documentation now that the documentation for the 68020 is offline. R=golang-dev, minux.ma, rsc CC=golang-dev https://golang.org/cl/7127053
-
Sébastien Paolacci authored
Reduce individual object handling by anticipating how much of them are servable. Not a chunked transfer cache, but decent enough to make sure the bottleneck is not here. Mac OSX, median of 10 runs: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 5358937333 4892813012 -8.70% BenchmarkFannkuch11 3257752475 3315436116 +1.77% BenchmarkGobDecode 23277349 23001114 -1.19% BenchmarkGobEncode 14367327 14262925 -0.73% BenchmarkGzip 441045541 440451719 -0.13% BenchmarkGunzip 139117663 139622494 +0.36% BenchmarkJSONEncode 45715854 45687802 -0.06% BenchmarkJSONDecode 103949570 106530032 +2.48% BenchmarkMandelbrot200 4542462 4548290 +0.13% BenchmarkParse 7790558 7557540 -2.99% BenchmarkRevcomp 831436684 832510381 +0.13% BenchmarkTemplate 133789824 133007337 -0.58% benchmark old MB/s new MB/s speedup BenchmarkGobDecode 32.82 33.33 1.02x BenchmarkGobEncode 53.42 53.86 1.01x BenchmarkGzip 43.70 44.01 1.01x BenchmarkGunzip 139.09 139.14 1.00x BenchmarkJSONEncode 42.69 42.56 1.00x BenchmarkJSONDecode 18.78 17.91 0.95x BenchmarkParse 7.37 7.67 1.04x BenchmarkRevcomp 306.83 305.70 1.00x BenchmarkTemplate 14.57 14.56 1.00x R=rsc, dvyukov CC=golang-dev https://golang.org/cl/7005055
-
Rémy Oudompheng authored
Fixes #4666. R=golang-dev, daniel.morsing, rsc CC=golang-dev https://golang.org/cl/7141047
-
Matthew Dempsky authored
Update #4629. $ cat shift2.c unsigned int shift(unsigned int x, unsigned int y) { x = (x << 3); y = (y << 5); x = (x << 7); y = (y << 9); return x ^ y; } ## BEFORE $ go tool 6c -S shift2.c (shift2.c:2) TEXT shift+0(SB),$0-8 (shift2.c:4) MOVL x+0(FP),!!AX (shift2.c:4) SALL $3,!!AX (shift2.c:4) MOVL AX,!!DX (shift2.c:5) MOVL y+4(FP),!!AX (shift2.c:5) SALL $5,!!AX (shift2.c:5) MOVL AX,!!CX (shift2.c:6) MOVL DX,!!AX (shift2.c:6) SALL $7,!!AX (shift2.c:6) MOVL AX,!!DX (shift2.c:7) MOVL CX,!!AX (shift2.c:7) SALL $9,!!AX (shift2.c:7) MOVL AX,!!CX (shift2.c:8) MOVL DX,!!AX (shift2.c:8) XORL CX,!!AX (shift2.c:8) RET ,!! (shift2.c:8) RET ,!! (shift2.c:8) END ,!! ## AFTER $ go tool 6c -S shift2.c (shift2.c:2) TEXT shift+0(SB),$0-8 (shift2.c:4) MOVL x+0(FP),!!AX (shift2.c:4) SALL $3,!!AX (shift2.c:5) MOVL y+4(FP),!!CX (shift2.c:5) SALL $5,!!CX (shift2.c:6) SALL $7,!!AX (shift2.c:7) SALL $9,!!CX (shift2.c:8) XORL CX,!!AX (shift2.c:8) RET ,!! (shift2.c:8) RET ,!! (shift2.c:8) END ,!! R=rsc, minux.ma, dave, nigeltao CC=golang-dev https://golang.org/cl/7066055
-
Rémy Oudompheng authored
Names beginning with a dot are ignored by optimizers. R=rsc, lvd, golang-dev, dave CC=golang-dev https://golang.org/cl/7098049
-
Russ Cox authored
Fixes #4665. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7132057
-
Shenghou Ma authored
R=rsc CC=golang-dev https://golang.org/cl/7101046
-
Anthony Martin authored
R=golang-dev, seed, rsc CC=golang-dev https://golang.org/cl/7069053
-
Russ Cox authored
sse2 is a more precise description of the requirement, and it matches what people will see in, for example grep sse2 /proc/cpuinfo # linux sysctl hw.optional.sse2 # os x R=golang-dev, dsymonds, iant CC=golang-dev https://golang.org/cl/7057050
-
Raph Levien authored
Decode as much as possible of a Huffman symbol in a single table lookup (much like the zlib implementation), filling more bits (conservatively, so we don't consume past the end of the stream) when the code prefix indicates more bits are needed. This results in about a 50% performance gain in speed benchmarks. The following set is benchcmp done on a retina MacBook Pro: benchmark old MB/s new MB/s speedup BenchmarkDecodeDigitsSpeed1e4 28.41 42.79 1.51x BenchmarkDecodeDigitsSpeed1e5 30.18 47.62 1.58x BenchmarkDecodeDigitsSpeed1e6 30.81 48.14 1.56x BenchmarkDecodeDigitsDefault1e4 30.28 44.61 1.47x BenchmarkDecodeDigitsDefault1e5 32.18 51.94 1.61x BenchmarkDecodeDigitsDefault1e6 35.57 53.28 1.50x BenchmarkDecodeDigitsCompress1e4 30.39 44.83 1.48x BenchmarkDecodeDigitsCompress1e5 33.05 51.64 1.56x BenchmarkDecodeDigitsCompress1e6 35.69 53.04 1.49x BenchmarkDecodeTwainSpeed1e4 25.90 43.04 1.66x BenchmarkDecodeTwainSpeed1e5 29.97 48.19 1.61x BenchmarkDecodeTwainSpeed1e6 31.36 49.43 1.58x BenchmarkDecodeTwainDefault1e4 28.79 45.02 1.56x BenchmarkDecodeTwainDefault1e5 37.12 55.65 1.50x BenchmarkDecodeTwainDefault1e6 39.28 58.16 1.48x BenchmarkDecodeTwainCompress1e4 28.64 44.90 1.57x BenchmarkDecodeTwainCompress1e5 37.40 55.98 1.50x BenchmarkDecodeTwainCompress1e6 39.35 58.06 1.48x R=rsc, dave, minux.ma, bradfitz, nigeltao CC=golang-dev https://golang.org/cl/6872063
-
Russ Cox authored
People keep not reading all the way to the bottom of the doc and not running hg mail. R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7137057
-
Rémy Oudompheng authored
Fixes #4585. R=rsc, golang-dev CC=golang-dev https://golang.org/cl/7142052
-
Andrew Gerrand authored
R=golang-dev, minux.ma CC=golang-dev https://golang.org/cl/7139057
-
Alex Brainman authored
for slow windows-386 builder R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/7128053
-
Andrew Gerrand authored
This code is obsolete and unmaintained. R=bradfitz CC=golang-dev https://golang.org/cl/7135056
-
Andrew Gerrand authored
R=golang-dev CC=golang-dev https://golang.org/cl/7132050
-
- 17 Jan, 2013 12 commits
-
-
Andrew Gerrand authored
This was never documented or properly implemented. Fixes #3528. R=mikesamuel, rsc CC=golang-dev https://golang.org/cl/7142048
-
Andrew Gerrand authored
Fixes #4670. R=rsc CC=golang-dev https://golang.org/cl/7148043
-
David Symonds authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7132049
-
Shenghou Ma authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/7128048
-
Shenghou Ma authored
Fixes #4598. R=golang-dev, dsymonds, r CC=golang-dev https://golang.org/cl/7102050
-
Shenghou Ma authored
R=mdempsky, iant, r, gri, rsc, ken CC=golang-dev https://golang.org/cl/7100046
-
Shenghou Ma authored
so that http://golang.org/pkg/runtime?m=all works. R=bradfitz CC=golang-dev https://golang.org/cl/7094046
-
Shenghou Ma authored
Fixes #4650. R=golang-dev, bradfitz, alex.brainman CC=golang-dev https://golang.org/cl/7085048
-
Shenghou Ma authored
Calling it will show memory allocation statistics for that single benchmark (if -test.benchmem is not provided) R=golang-dev, rsc, kevlar, bradfitz CC=golang-dev https://golang.org/cl/7027046
-
Oling Cat authored
R=golang-dev, adg CC=golang-dev https://golang.org/cl/7131045
-
Volker Dobler authored
Fixes #4412. R=adg, rsc, rogpeppe, andrewdg, bradfitz CC=golang-dev https://golang.org/cl/7086050
-
Andrew Balholm authored
I think that the parser is complete enough to take that warning out. It passes the test suite. There may be incompatible API changes, but being in the exp directory is warning enough for that. R=nigeltao CC=golang-dev https://golang.org/cl/7131050
-
- 16 Jan, 2013 2 commits
-
-
Robert Griesemer authored
Rewrote existing code to prevent similar mistakes. R=adonovan CC=golang-dev https://golang.org/cl/7129046
-
Matthew Dempsky authored
R=bradfitz CC=golang-dev https://golang.org/cl/7132045
-
- 15 Jan, 2013 1 commit
-
-
Brad Fitzpatrick authored
We need to wait for the handler to actually finish running, not almost be done running. This was always a bug, but now that handler output is buffered it shows up easily on GOMAXPROCS >1 systems. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7109043
-