- 29 May, 2012 5 commits
-
-
Peter Kleiweg authored
Fixes #3509. Fixes #2767. R=golang-dev, sameer CC=golang-dev https://golang.org/cl/6139066
-
Akshat Kumar authored
Plan 9 versions for amd64 have 2 megabyte pages. This also fixes the logic for 32-bit vs 64-bit Plan 9, making 64-bit the default, and adds logic to generate a symbols table. R=golang-dev, rsc, rminnich, ality, 0intro CC=golang-dev, john https://golang.org/cl/6218046
-
Russ Cox authored
The old code generated for a bounds check was CMP JLT ok CALL panicindex ok: ... The new code is (once the linker finishes with it): CMP JGE panic ... panic: CALL panicindex which moves the calls out of line, putting more useful code in each cache line. This matters especially in tight loops, such as in Fannkuch. The benefit is more modest elsewhere, but real. From test/bench/go1, amd64: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 6096092000 6088808000 -0.12% BenchmarkFannkuch11 6151404000 4020463000 -34.64% BenchmarkGobDecode 28990050 28894630 -0.33% BenchmarkGobEncode 12406310 12136730 -2.17% BenchmarkGzip 179923 179903 -0.01% BenchmarkGunzip 11219 11130 -0.79% BenchmarkJSONEncode 86429350 86515900 +0.10% BenchmarkJSONDecode 334593800 315728400 -5.64% BenchmarkRevcomp25M 1219763000 1180767000 -3.20% BenchmarkTemplate 492947600 483646800 -1.89% And 386: benchmark old ns/op new ns/op delta BenchmarkBinaryTree17 6354902000 6243000000 -1.76% BenchmarkFannkuch11 8043769000 7326965000 -8.91% BenchmarkGobDecode 19010800 18941230 -0.37% BenchmarkGobEncode 14077500 13792460 -2.02% BenchmarkGzip 194087 193619 -0.24% BenchmarkGunzip 12495 12457 -0.30% BenchmarkJSONEncode 125636400 125451400 -0.15% BenchmarkJSONDecode 696648600 685032800 -1.67% BenchmarkRevcomp25M 2058088000 2052545000 -0.27% BenchmarkTemplate 602140000 589876800 -2.04% To implement this, two new instruction forms: JLT target // same as always JLT $0, target // branch expected not taken JLT $1, target // branch expected taken The linker could also emit the prediction prefixes, but it does not: expected taken branches are reversed so that the expected case is not taken (as in example above), and the default expectaton for such a jump is not taken already. R=golang-dev, gri, r, dave CC=golang-dev https://golang.org/cl/6248049
-
Sameer Ajmani authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6260049
-
Andrew Balholm authored
Implement the (3-per-family) Noah's Ark clause (i.e. don't put more than three identical elements on the list of active formatting elements. Also, when running tests, sort attributes by name before dumping them. Pass 4 additional tests with Noah's Ark clause (including one that needs attributes to be sorted). Pass 5 additional, unrelated tests because of sorting attributes. R=nigeltao, rsc CC=golang-dev https://golang.org/cl/6247056
-
- 28 May, 2012 7 commits
-
-
Mikio Hara authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6248054
-
Mikio Hara authored
R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/6256059
-
Brad Fitzpatrick authored
R=golang-dev, dsymonds, r CC=golang-dev https://golang.org/cl/6242062
-
Brad Fitzpatrick authored
CanonicalHeaderKey didn't allocate, but it did use unnecessary CPU in the hot path, deciding it didn't need to allocate. I considered using constants for all these common header keys but I didn't think it would be prettier. "Content-Length" looks better than contentLength or hdrContentLength, etc. R=golang-dev, dave CC=golang-dev https://golang.org/cl/6255053
-
Brad Fitzpatrick authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/6248053
-
Brad Fitzpatrick authored
Fixes #3535 R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/6245060
-
Alexey Borzenkov authored
Comment on cache keys above connectMethod says "http to proxy, http anywhere after that", however in reality target address was always included, which prevented http requests to different target addresses to reuse the same http proxy connection. R=golang-dev, r, rsc, bradfitz CC=golang-dev https://golang.org/cl/5901064
-
- 27 May, 2012 1 commit
-
-
Alex Brainman authored
Fixes #3623. R=golang-dev, bsiegert, rsc CC=golang-dev https://golang.org/cl/6218072
-
- 26 May, 2012 1 commit
-
-
Alexey Borzenkov authored
CL 5956051 introduced too many call != nil checks, so attempt to improve this by splitting logic into three distinct parts. R=r CC=golang-dev https://golang.org/cl/6248048
-
- 25 May, 2012 6 commits
-
-
Nigel Tao authored
image/png benchmarks: benchmark old ns/op new ns/op delta BenchmarkPaeth 10 7 -29.21% BenchmarkDecodeGray 2381745 2241620 -5.88% BenchmarkDecodeNRGBAGradient 9535555 8835100 -7.35% BenchmarkDecodeNRGBAOpaque 8189590 7611865 -7.05% BenchmarkDecodePaletted 1300688 1301940 +0.10% BenchmarkDecodeRGB 6760146 6317082 -6.55% BenchmarkEncodePaletted 6048596 6122666 +1.22% BenchmarkEncodeRGBOpaque 18891140 19474230 +3.09% BenchmarkEncodeRGBA 78945350 78552600 -0.50% Wall time for Denis Cheremisov's PNG-decoding program given in https://groups.google.com/group/golang-nuts/browse_thread/thread/22aa8a05040fdd49 Before: 2.25s After: 2.27s Delta: +1% The same program, but with a different PNG input file (http://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png) and only 100 iterations instead of 1000 Before: 4.78s After: 4.42s Delta: -8% R=rsc CC=golang-dev https://golang.org/cl/6242056
-
Russ Cox authored
Ken pointed out that CL 5998043 was ugly code. This should be better. Fixes #3501. R=ken2 CC=golang-dev https://golang.org/cl/6258049
-
Russ Cox authored
for expr1, expr2 = range slice was assigning to expr1 and expr2 in sequence instead of in parallel. Now it assigns in parallel, as it should. This matters for things like for i, x[i] = range slice. Fixes #3464. R=ken2 CC=golang-dev https://golang.org/cl/6252048
-
Russ Cox authored
This is from CL 5451105 but was dropped from that CL. See also CL 6137051. The only change compared to 5451105 is to check for h != nil in reflect·mapiterinit; allowing use of nil maps must have happened after that original CL. Fixes #3573. R=golang-dev, dave, r CC=golang-dev https://golang.org/cl/6215078
-
Brad Fitzpatrick authored
Fixes #3299 R=golang-dev, r CC=golang-dev https://golang.org/cl/6250056
-
Andrew Balholm authored
Remove redundant checks for integration points. Ignore null bytes in text. Don't break out of foreign content for a <font> tag unless it has a color, face, or size attribute. Check for MathML text integration points when breaking out of foreign content. Pass two new tests. R=nigeltao CC=golang-dev https://golang.org/cl/6256045
-
- 24 May, 2012 20 commits
-
-
Nigel Tao authored
The bulk of the gains come from hoisting the modulo ops outside of the inner loop. Reducing the digest type from 8 bytes to 4 bytes gains another 1% on the hash/adler32 micro-benchmark. Benchmarks for $GOOS,$GOARCH = linux,amd64 below. hash/adler32 benchmark: benchmark old ns/op new ns/op delta BenchmarkAdler32KB 1660 1364 -17.83% image/png benchmark: benchmark old ns/op new ns/op delta BenchmarkDecodeGray 2466909 2425539 -1.68% BenchmarkDecodeNRGBAGradient 9884500 9751705 -1.34% BenchmarkDecodeNRGBAOpaque 8511615 8379800 -1.55% BenchmarkDecodePaletted 1366683 1330677 -2.63% BenchmarkDecodeRGB 6987496 6884974 -1.47% BenchmarkEncodePaletted 6292408 6040052 -4.01% BenchmarkEncodeRGBOpaque 19780680 19178440 -3.04% BenchmarkEncodeRGBA 80738600 79076800 -2.06% Wall time for Denis Cheremisov's PNG-decoding program given in https://groups.google.com/group/golang-nuts/browse_thread/thread/22aa8a05040fdd49 Before: 2.44s After: 2.26s Delta: -7% R=rsc CC=golang-dev https://golang.org/cl/6251044
-
Robert Griesemer authored
Fixes #3580. R=golang-dev, r CC=golang-dev https://golang.org/cl/6252047
-
Bill Thiede authored
Fixes #3639. R=golang-dev, dsymonds CC=golang-dev https://golang.org/cl/6243045
-
David Symonds authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/6257050
-
Alexey Borzenkov authored
When client fails to write a request is sends caller that error, however server might have failed to read that request in the mean time and replied with that error. When client then reads the response the call would no longer be pending, so call will be nil Handle this gracefully by discarding such server responses R=golang-dev, r CC=golang-dev, rsc https://golang.org/cl/5956051
-
Brad Fitzpatrick authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/6249052
-
Russ Cox authored
* Eliminate bounds check on known small shifts. * Rewrite x<<s | x>>(32-s) as a rotate (constant s). * More aggressive (but still minimal) range analysis. R=ken, dave, iant CC=golang-dev https://golang.org/cl/6209077
-
Rob Pike authored
The previous attempt to explain this got it backwards (all the more reason to be sad we couldn't make the two functions behave the same). Fixes #3669. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6249051
-
Brad Fitzpatrick authored
Fixes #3295 R=adg, rsc, mike.rosset CC=golang-dev https://golang.org/cl/5796073
-
Russ Cox authored
There's no need for the 16-bit arithmetic here, and it tickles a long-standing compiler bug. Fix the exp code not to use 16-bit math and create an explicit test for the compiler bug. R=golang-dev, r CC=golang-dev https://golang.org/cl/6256048
-
Russ Cox authored
R=ken2 CC=golang-dev https://golang.org/cl/6254046
-
Robert Griesemer authored
Part of fix for issue 3464. R=golang-dev, rsc, mirtchovski, iant, r CC=golang-dev https://golang.org/cl/6246045
-
Robert Griesemer authored
- interface methods appeared under VarDecl in search results (long-standing TODO) - don't walk parts of AST which contain no indexable material (minor performance tuning) R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6228047
-
Robert Griesemer authored
The documentation says so, but in the case of a normalized integral Rat, the denominator was a new value. Changed the internal representation to use an Int to represent the denominator (with the sign ignored), so a reference to it can always be returned. Clarified documentation and added test cases. Fixes #3521. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/6237045
-
Russ Cox authored
* Shift/rotate by constant doesn't have to stop subprop. (also in 8g) * Remove redundant MOVLQZX instructions. * An attempt at issuing loads early. Good for 0.5% on a good day, might not be worth keeping. Need to understand more about whether the x86 looks ahead to what loads might be coming up. R=ken2, ken CC=golang-dev https://golang.org/cl/6203091
-
Shenghou Ma authored
Fixes #3664. R=golang-dev, bradfitz, rsc CC=golang-dev https://golang.org/cl/6249048
-
Dmitriy Vyukov authored
Also bump MaxGcproc to 8. benchmark old ns/op new ns/op delta Parser 3796323000 3763880000 -0.85% Parser-2 3591752500 3518560250 -2.04% Parser-4 3423825250 3334955250 -2.60% Parser-8 3304585500 3267014750 -1.14% Parser-16 3313615750 3286160500 -0.83% Tree 984128500 942501166 -4.23% Tree-2 932564444 883266222 -5.29% Tree-4 835831000 799912777 -4.30% Tree-8 819238500 789717333 -3.73% Tree-16 880837833 837840055 -5.13% Tree2 604698100 579716900 -4.13% Tree2-2 372414500 356765200 -4.20% Tree2-4 187488100 177455900 -5.56% Tree2-8 136315300 102086700 -25.11% Tree2-16 93725900 76705800 -22.18% ParserPause 157441210 166202783 +5.56% ParserPause-2 93842650 85199900 -9.21% ParserPause-4 56844404 53535684 -5.82% ParserPause-8 35739446 30767613 -16.15% ParserPause-16 32718255 27212441 -16.83% TreePause 29610557 29787725 +0.60% TreePause-2 24001659 20674421 -13.86% TreePause-4 15114887 12842781 -15.03% TreePause-8 13128725 10741747 -22.22% TreePause-16 16131360 12506901 -22.47% Tree2Pause 2673350920 2651045280 -0.83% Tree2Pause-2 1796999200 1709350040 -4.88% Tree2Pause-4 1163553320 1090706480 -6.67% Tree2Pause-8 987032520 858916360 -25.11% Tree2Pause-16 864758560 809567480 -6.81% ParserLastPause 280537000 289047000 +3.03% ParserLastPause-2 183030000 166748000 -8.90% ParserLastPause-4 105817000 91552000 -13.48% ParserLastPause-8 65127000 53288000 -18.18% ParserLastPause-16 45258000 38334000 -15.30% TreeLastPause 45072000 51449000 +12.39% TreeLastPause-2 39269000 37866000 -3.57% TreeLastPause-4 23564000 20649000 -12.37% TreeLastPause-8 20881000 15807000 -24.30% TreeLastPause-16 23297000 17309000 -25.70% Tree2LastPause 6046912000 5797120000 -4.13% Tree2LastPause-2 3724034000 3567592000 -4.20% Tree2LastPause-4 1874831000 1774524000 -5.65% Tree2LastPause-8 1363108000 1020809000 -12.79% Tree2LastPause-16 937208000 767019000 -22.18% R=rsc, 0xe2.0x9a.0x9b CC=golang-dev https://golang.org/cl/6223050
-
Andrew Balholm authored
Detect HTML integration points and MathML text integration points. At these points, process tokens as HTML, not as foreign content. Pass 33 more tests. R=nigeltao CC=golang-dev https://golang.org/cl/6249044
-
David Symonds authored
R=golang-dev, rsc, r CC=golang-dev https://golang.org/cl/6250043
-
Joel Sing authored
R=golang-dev, rsc, devon.odell CC=golang-dev https://golang.org/cl/6222044
-