- 17 May, 2013 6 commits
-
-
Keith Randall authored
REP instructions have a high startup cost, so we handle small sizes with some straightline code. The REP MOVSx instructions are really fast for large sizes. The cutover is approximately 1K. We implement up to 128/256 because that is the maximum SSE register load (loading all data into registers before any stores lets us ignore copy direction). (on a Sandy Bridge E5-1650 @ 3.20GHz) benchmark old ns/op new ns/op delta BenchmarkMemmove0 3 3 +0.86% BenchmarkMemmove1 5 5 +5.40% BenchmarkMemmove2 18 8 -56.84% BenchmarkMemmove3 18 7 -58.45% BenchmarkMemmove4 36 7 -78.63% BenchmarkMemmove5 36 8 -77.91% BenchmarkMemmove6 36 8 -77.76% BenchmarkMemmove7 36 8 -77.82% BenchmarkMemmove8 18 8 -56.33% BenchmarkMemmove9 18 7 -58.34% BenchmarkMemmove10 18 7 -58.34% BenchmarkMemmove11 18 7 -58.45% BenchmarkMemmove12 36 7 -78.51% BenchmarkMemmove13 36 7 -78.48% BenchmarkMemmove14 36 7 -78.56% BenchmarkMemmove15 36 7 -78.56% BenchmarkMemmove16 18 7 -58.24% BenchmarkMemmove32 18 8 -54.33% BenchmarkMemmove64 18 8 -53.37% BenchmarkMemmove128 20 9 -55.93% BenchmarkMemmove256 25 11 -55.16% BenchmarkMemmove512 33 33 -1.19% BenchmarkMemmove1024 43 44 +2.06% BenchmarkMemmove2048 61 61 +0.16% BenchmarkMemmove4096 95 95 +0.00% R=golang-dev, bradfitz, remyoudompheng, khr, iant, dominik.honnef CC=golang-dev https://golang.org/cl/9038048
-
Shenghou Ma authored
Fixes #5480. R=golang-dev, iant CC=golang-dev https://golang.org/cl/9475043
-
Shenghou Ma authored
Fixes #5200. R=iant, dave CC=golang-dev https://golang.org/cl/9383043
-
Alex Brainman authored
R=golang-dev, r CC=golang-dev https://golang.org/cl/9458043
-
Alex Brainman authored
It appears, syscall.NewCallback still uses heap to store executable code. R=golang-dev, khr CC=golang-dev https://golang.org/cl/9060046
-
Alex Brainman authored
R=golang-dev, bradfitz, khr CC=golang-dev https://golang.org/cl/9235046
-
- 16 May, 2013 5 commits
-
-
Carl Shapiro authored
The stack scanner for not started goroutines ignored the arguments area when its size was unknown. With this change, the distance between the stack pointer and the stack base will be used instead. Fixes #5486 R=golang-dev, bradfitz, iant, dvyukov CC=golang-dev https://golang.org/cl/9440043
-
Adam Langley authored
A test added in b37d2fdcc4d9 didn't work with some values of GOMAXPROCS because the defer statements were in the wrong order: the Pipe could be closed before the TLS Client was. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/9187047
-
Alex Brainman authored
Fixes #5481. R=golang-dev, dominik.honnef, bradfitz CC=golang-dev https://golang.org/cl/9437044
-
Rémy Oudompheng authored
When T was an unexported type it could be forgotten. Fixes #5470. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/9303050
-
Brad Fitzpatrick authored
This is a version of Time.Format that doesn't require allocation. Fixes #5192 Update #5195 R=r CC=gobot, golang-dev https://golang.org/cl/8478044
-
- 15 May, 2013 19 commits
-
-
Robert Hencke authored
R=golang-dev, bradfitz, jonathan, r CC=golang-dev https://golang.org/cl/8730044
-
Dmitriy Vyukov authored
If a slice points to an array embedded in a struct, the whole struct can be incorrectly scanned as the slice buffer. Fixes #5443. R=cshapiro, iant, r, cshapiro, minux.ma CC=bradfitz, gobot, golang-dev https://golang.org/cl/9372044
-
Rob Pike authored
R=golang-dev, gri CC=golang-dev https://golang.org/cl/9104052
-
Dmitriy Vyukov authored
Allocs of size 16 can bypass atomic set of the allocated bit, while allocs of size 8 can not. Allocs with and w/o type info hit different paths inside of malloc. Current results on linux/amd64: BenchmarkMalloc8 50000000 43.6 ns/op BenchmarkMalloc16 50000000 46.7 ns/op BenchmarkMallocTypeInfo8 50000000 61.3 ns/op BenchmarkMallocTypeInfo16 50000000 63.5 ns/op R=golang-dev, remyoudompheng, minux.ma, bradfitz, iant CC=golang-dev https://golang.org/cl/9090045
-
Keith Randall authored
for checking for page boundary. Also avoid boundary check when >=16 bytes are hashed. benchmark old ns/op new ns/op delta BenchmarkHashStringSpeed 23 22 -0.43% BenchmarkHashBytesSpeed 44 42 -3.61% BenchmarkHashStringArraySpeed 71 68 -4.05% R=iant, khr CC=gobot, golang-dev, google https://golang.org/cl/9123046
-
Dmitriy Vyukov authored
Finer-grained transfers were relevant with per-M caches, with per-P caches they are not relevant and harmful for performance. For few small size classes where it makes difference, it's fine to grab the whole span (4K). benchmark old ns/op new ns/op delta BenchmarkMalloc 42 40 -4.45% R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/9374043
-
Adam Langley authored
The PKCS#1 spec requires that the PS padding in an RSA message be at least 8 bytes long. We were not previously checking this. This isn't important in the most common situation (session key encryption), but the impact is unclear in other cases. This change enforces the specified minimum size. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/9222045
-
Adam Langley authored
OpenSSL can be configured to send empty records in order to randomise the CBC IV. This is an early version of 1/n-1 record splitting (that Go does) and is quite reasonable, but it results in tls.Conn.Read returning (0, nil). This change ignores up to 100 consecutive, empty records to avoid returning (0, nil) to callers. Fixes 5309. R=golang-dev, r, minux.ma CC=golang-dev https://golang.org/cl/8852044
-
Adam Langley authored
This patch resulted from a bit of quick optimisation in response to a golang-nuts post. It looks like one could save a couple other copies in this function, but this addresses the inner loop and is fairly simple. benchmark old ns/op new ns/op delta BenchmarkGCD10x10 1964 1711 -12.88% BenchmarkGCD10x100 2019 1736 -14.02% BenchmarkGCD10x1000 2471 2171 -12.14% BenchmarkGCD10x10000 6040 5778 -4.34% BenchmarkGCD10x100000 43204 43025 -0.41% BenchmarkGCD100x100 11004 8520 -22.57% BenchmarkGCD100x1000 11820 9446 -20.08% BenchmarkGCD100x10000 23846 21382 -10.33% BenchmarkGCD100x100000 133691 131505 -1.64% BenchmarkGCD1000x1000 120041 95591 -20.37% BenchmarkGCD1000x10000 136887 113600 -17.01% BenchmarkGCD1000x100000 295370 273912 -7.26% BenchmarkGCD10000x10000 2556126 2205198 -13.73% BenchmarkGCD10000x100000 3159512 2808038 -11.12% BenchmarkGCD100000x100000 150543094 139986045 -7.01% R=gri, remyoudompheng CC=bradfitz, gobot, golang-dev, gri https://golang.org/cl/9424043
-
Dmitriy Vyukov authored
This is needed for preemptive scheduler, it will preempt only when m->locks==0, and we do not want to be preempted while we have not completely unlocked the lock. R=golang-dev, khr, iant CC=golang-dev https://golang.org/cl/9196047
-
Dmitriy Vyukov authored
Compiler can detect and delete dead code with enums, but can not with static vars. R=golang-dev, dave, r CC=golang-dev https://golang.org/cl/9377043
-
Dmitriy Vyukov authored
Also change table type from int32[] to int8[] to save space in L1$. benchmark old ns/op new ns/op delta BenchmarkMalloc 42 40 -4.68% R=golang-dev, bradfitz, r CC=golang-dev https://golang.org/cl/9199044
-
Alex Brainman authored
Fixes windows build. R=golang-dev CC=golang-dev https://golang.org/cl/9429043
-
Shenghou Ma authored
Test for CL 9226043. R=golang-dev, dave, iant, bradfitz CC=golang-dev https://golang.org/cl/9249043
-
Brad Fitzpatrick authored
Fixes #5451 R=gri CC=dsymonds, gobot, golang-dev https://golang.org/cl/9388043
-
Shenghou Ma authored
Fixes #5447. R=golang-dev, r CC=golang-dev https://golang.org/cl/9343045
-
Alexey Borzenkov authored
Trying to lookup user's display name with directory services can take several seconds when user's computer is not in a domain. As a workaround, check if computer is joined in a domain first, and don't use directory services if it is not. Additionally, don't leak tokens in user.Current(). Fixes #5298. R=golang-dev, bradfitz, alex.brainman, lucio.dere CC=golang-dev https://golang.org/cl/8541047
-
Dominik Honnef authored
This fixes fontification, navigation and indentation for methods of the form `func (Foo) Bar...` R=adonovan CC=gobot, golang-dev https://golang.org/cl/8951043
-
Jonathan Hseu authored
testing/quick: fix for aliased types, delete duplicate uint8 test, and fix randFloat64() to give random numbers from (-math.MaxFloat64, math.MaxFloat64). R=r, agl CC=agl, bradfitz, golang-dev https://golang.org/cl/9296046
-
- 14 May, 2013 10 commits
-
-
Carl Shapiro authored
Update #5134 R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/9406046
-
Brad Fitzpatrick authored
Reduces garbage. R=adg, r CC=dsymonds, gobot, golang-dev https://golang.org/cl/9088045
-
Rémy Oudompheng authored
Fixes #5424. R=golang-dev, daniel.morsing, dvyukov, r CC=golang-dev https://golang.org/cl/9033048
-
Keith Randall authored
Uses SSE instructions to process 16 bytes at a time. fixes #5354 R=bradfitz, google CC=golang-dev https://golang.org/cl/8853048
-
Brad Fitzpatrick authored
The *Encoder is almost always garbage. It doesn't need an encodeState inside of it (and its bytes.Buffer), since it's only needed locally inside of Encode. benchmark old ns/op new ns/op delta BenchmarkEncoderEncode 2562 2553 -0.35% benchmark old bytes new bytes delta BenchmarkEncoderEncode 283 102 -63.96% R=r CC=gobot, golang-dev https://golang.org/cl/9365044
-
Rob Pike authored
Need to use (or stub) exact.Value. R=gri CC=golang-dev https://golang.org/cl/9126043
-
Alberto García Hierro authored
The encoded string must include the : separating the username and the password, even when the latter is empty. See http://www.ietf.org/rfc/rfc2617.txt for more information. R=golang-dev, bradfitz, adg CC=golang-dev https://golang.org/cl/8475043
-
Brad Fitzpatrick authored
Generated by addca. R=gobot CC=golang-dev https://golang.org/cl/9419045
-
Shenghou Ma authored
Fixes #5290. R=golang-dev, dave, bradfitz, r CC=golang-dev https://golang.org/cl/8763044
-
Robin Eklind authored
R=golang-dev, iant, bradfitz, nigeltao CC=golang-dev https://golang.org/cl/9408044
-