- 12 Feb, 2015 7 commits
-
-
Dmitry Vyukov authored
typedslicecopy is another write barrier that is not understood by racewalk. It seems quite complex to handle it in the compiler, so instead just instrument it in runtime. Update #9796 Change-Id: I0eb6abf3a2cd2491a338fab5f7da22f01bf7e89b Reviewed-on: https://go-review.googlesource.com/4370Reviewed-by: Russ Cox <rsc@golang.org>
-
Dmitry Vyukov authored
Walk calls it outervalue, racewalk calls it basenod, isstack does it manually and slightly differently. Change-Id: Id5b5d32b8faf143fe9d34bd08457bfab6fb33daa Reviewed-on: https://go-review.googlesource.com/3745Reviewed-by: Russ Cox <rsc@golang.org>
-
Dmitry Vyukov authored
Support the following conversions in escape analysis: []rune("foo") []byte("foo") string([]rune{}) If the result does not escape, allocate temp buffer on stack and pass it to runtime functions. Change-Id: I1d075907eab8b0109ad7ad1878104b02b3d5c690 Reviewed-on: https://go-review.googlesource.com/3590Reviewed-by: Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
We don't have executable memory anymore. Change-Id: I9835f03a7bcd97d809841ecbed8718b3048bfb32 Reviewed-on: https://go-review.googlesource.com/4681Reviewed-by: Dmitry Vyukov <dvyukov@google.com> Reviewed-by: Dave Cheney <dave@cheney.net>
-
Alex Brainman authored
Change-Id: I40291561a18bed3ca6be9dca12a664bdf28cb2f1 Reviewed-on: https://go-review.googlesource.com/4660Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alex Brainman authored
Change-Id: I35fe76661c80ca808a711acf608a23c77aeb0608 Reviewed-on: https://go-review.googlesource.com/4651Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
mattn authored
Fixes #9190 Change-Id: I22177687ed834feed165454019d28c11fcbf0fa2 Reviewed-on: https://go-review.googlesource.com/2307Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
- 11 Feb, 2015 18 commits
-
-
Russ Cox authored
(In non-Go print formats, the 016 includes the leading 0x prefix. No one noticed, but we were printing hex numbers with a minimum of 30 digits, not 32.) Change-Id: I10ff7a51a567ad7c8440418ac034be9e4b2d6bc1 Reviewed-on: https://go-review.googlesource.com/4592Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
This matches all the other pseudo-packages. The line was simply forgotten. Change-Id: I278f6cbcfc883ea7efad07f99fc8c853b9b5d274 Reviewed-on: https://go-review.googlesource.com/4591Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Otherwise different qsort implementations might result in different sort orders and therefore different compiled object files. Change-Id: Ie783ba55a55af06941307e150b0c406e0a8128b0 Reviewed-on: https://go-review.googlesource.com/4590Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
It does not convert to Go well. Being able to do this just once, instead of 4 times, was the primary motivation for all the recent refactoring (not that it wasn't overdue). Still bit-for-bit identical. Change-Id: Ia01f17948441bf64fa78ec4226f0bb40af0bbaab Reviewed-on: https://go-review.googlesource.com/3962Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
Now there is only one registerizer shared among all the systems. There are some unfortunate special cases based on arch.thechar in reg.c, to preserve bit-for-bit compatibility during the refactoring. Most are probably bugs one way or another and should be revisited. Change-Id: I153b435c0eaa05bbbeaf8876822eeb6dedaae3cf Reviewed-on: https://go-review.googlesource.com/3883Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
gc/order.c rewrites OASOP nodes into ordinary assignments. The back ends never see them anymore. Change-Id: I268ac8bdc92dccd7123110a21f99ada3ceeb2baa Reviewed-on: https://go-review.googlesource.com/3882Reviewed-by: Austin Clements <austin@google.com>
-
Russ Cox authored
This isn't everything, but it's a start. Still producing bit-identical compiler output. The semantics of the old back ends is preserved, even when they are probably buggy. There are some TODOs in gc/gsubr.c to remove special cases to preserve bugs in 5g and 8g. Change-Id: I28ae295fbfc94ef9df43e13ab96bd6fc2f194bc4 Reviewed-on: https://go-review.googlesource.com/3802Reviewed-by: Austin Clements <austin@google.com>
-
Robert Griesemer authored
benchmark old ns/op new ns/op delta BenchmarkFormatFloatDecimal 300 283 -5.67% BenchmarkFormatFloat 383 381 -0.52% BenchmarkFormatFloatExp 359 357 -0.56% BenchmarkFormatFloatNegExp 357 358 +0.28% BenchmarkFormatFloatBig 468 430 -8.12% BenchmarkAppendFloatDecimal 104 92.5 -11.06% BenchmarkAppendFloat 199 190 -4.52% BenchmarkAppendFloatExp 172 167 -2.91% BenchmarkAppendFloatNegExp 172 169 -1.74% BenchmarkAppendFloatBig 280 235 -16.07% BenchmarkAppendFloat32Integer 104 92.4 -11.15% BenchmarkAppendFloat32ExactFraction 168 171 +1.79% BenchmarkAppendFloat32Point 206 199 -3.40% BenchmarkAppendFloat32Exp 167 167 +0.00% BenchmarkAppendFloat32NegExp 167 166 -0.60% BenchmarkAppendFloat64Fixed1 134 129 -3.73% BenchmarkAppendFloat64Fixed2 144 136 -5.56% BenchmarkAppendFloat64Fixed3 138 134 -2.90% BenchmarkAppendFloat64Fixed4 145 138 -4.83% Change-Id: Ia143840cb34cbd1cebd6b691dd0a45b7264b406c Reviewed-on: https://go-review.googlesource.com/3920Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: Ib3738492a2ec8fc99323e687168b17b7239db6ad Reviewed-on: https://go-review.googlesource.com/4511Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: Ic5f3864bc6d94d60b754e3ccf72b1d40c5c09117 Reviewed-on: https://go-review.googlesource.com/4510Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
Change-Id: Id98f7333fe6ae1b64e0469c6d01f02360c1f8f55 Reviewed-on: https://go-review.googlesource.com/4481Reviewed-by: Alan Donovan <adonovan@google.com>
-
Robert Griesemer authored
This avoids surprises. Change-Id: Iaae67da2d12e29c4e797ad6313e0895f7ce80cb1 Reviewed-on: https://go-review.googlesource.com/4480Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
-
Rick Hudson authored
Add local workbufs to the m struct in order to reduce contention. Add consistency checks for workbuf ownership. Chain workbufs through call change to avoid swapping them to and from the m struct. Adjust the size of the workbuf so that the mutators can more frequently pass modifications to the GC thus shifting some work from the STW mark termination phase to the concurrent mark phase. Change-Id: I557b53af34ad9972265e0ed9f5996e52d548563d Reviewed-on: https://go-review.googlesource.com/3972Reviewed-by: Austin Clements <austin@google.com>
-
Dmitry Vyukov authored
Fixes #9791 g.issystem flag setup races with other code wherever we set it. Even if we set both in parent goroutine and in the system goroutine, it is still possible that some other goroutine crashes before the flag is set. We could pass issystem flag to newproc1, but we start all goroutines with go nowadays. Instead look at g.startpc to distinguish system goroutines (similar to topofstack). Change-Id: Ia3467968dee27fa07d9fecedd4c2b00928f26645 Reviewed-on: https://go-review.googlesource.com/4113Reviewed-by: Keith Randall <khr@golang.org>
-
Dmitry Vyukov authored
benchmark old allocs new allocs delta BenchmarkSkipValue 14914 14202 -4.77% Change-Id: I40e1fe8843cc6a099a2abfcd814ecc2a2d6a5b1f Reviewed-on: https://go-review.googlesource.com/3744Reviewed-by: Keith Randall <khr@golang.org>
-
Dmitry Vyukov authored
Update #8832 This is probably not the root cause of the issue. Resolve TODO about setting unusedsince on a wrong span. Change-Id: I69c87e3d93cb025e3e6fa80a8cffba6ad6ad1395 Reviewed-on: https://go-review.googlesource.com/4390Reviewed-by: Keith Randall <khr@golang.org>
-
Austin Clements authored
Currently, if there is a VERSION.cache, running make.bash will set runtime.theVersion to the revision as of the *last* make.bash run instead of the current make.bash run. For example, $ git rev-parse --short HEAD 5c4a86d0 $ ./make.bash ... $ cat ../VERSION.cache devel +5c4a86d0 Tue Feb 10 01:46:30 2015 +0000 $ git checkout a1dbb920 $ ./make.bash ... $ go version go version devel +5c4a86d0 Tue Feb 10 01:46:30 2015 +0000 linux/amd64 $ ./make.bash ... $ go version go version devel +a1dbb920 Tue Feb 10 02:31:27 2015 +0000 linux/amd64 This happens because go tool dist reads the potentially stale VERSION.cache into goversion during early initialization; then cleans, which deletes VERSION.cache; then builds the runtime using the stale revision read in to goversion. It isn't until make later in the build process, when make.bash invokes go tool dist again, that VERSION.cache gets updated with the current revision. To address this, simply don't bother fetching the version until go tool dist needs it and don't bother caching the value in memory. This is more robust since it interacts with cleaning in the expected ways. Futhermore, there's no downside to eliminating the in-memory cache; the file system cache is perfectly reasonable for the whole three times make.bash consults it. Change-Id: I8c480100e56bb2db0816e8a088177004d9e87973 Reviewed-on: https://go-review.googlesource.com/4540Reviewed-by: Russ Cox <rsc@golang.org>
-
rubyist authored
If an absolute domain name (i.e. ends in a '.' like "example.com.") is used with ssl/tls, the certificate will be reported as invalid. In matchHostnames, the host and patterns are split on '.' and if the lengths of the resulting slices do not match, the function returns false. When splitting an absolute domain name on '.', the slice will have an extra empty string at the end. This empty string should be discarded before comparison, if present. Fixes #9828 Change-Id: I0e39674b44a6f93b5024497e76cf1b550832a61d Reviewed-on: https://go-review.googlesource.com/4380Reviewed-by: Adam Langley <agl@golang.org> TryBot: Adam Langley <agl@golang.org>
-
- 10 Feb, 2015 13 commits
-
-
Keith Randall authored
Container symbols shouldn't be considered as functions in the functab. Having them present probably messes up function lookup, as you might get the descriptor of the container instead of the descriptor of the actual function on the stack. It also messed up the findfunctab because these entries caused off-by-one errors in how functab entries were counted. Normal code is not affected - it only changes (& hopefully fixes) the behavior for libraries linked as a unit, like: net runtime/cgo runtime/race Fixes #9804 Change-Id: I81e036e897571ac96567d59e1f1d7f058ca75e85 Reviewed-on: https://go-review.googlesource.com/4290Reviewed-by: Russ Cox <rsc@golang.org>
-
Mikio Hara authored
Change-Id: I695b89ec2b63233d94c49c4a40a57b50350ec67c Reviewed-on: https://go-review.googlesource.com/4350 TryBot: Mikio Hara <mikioh.mikioh@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
Change-Id: I69f24887601e491d6d722bfeb2952d927df8ad80 Reviewed-on: https://go-review.googlesource.com/4351Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Ian Lance Taylor authored
Fixes #9814. Change-Id: I1be49efae0648038f590eeca1262037bf1af3df5 Reviewed-on: https://go-review.googlesource.com/4240Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
-
Robert Griesemer authored
- Frexp, Ldexp are equivalents to the corresponding math functions. - Set now has the same prec behavior as the other functions - Copy is a true assignment (replaces old version of Set) - Cmp now handles infinities - more tests Change-Id: I0d33980c08be3095b25d7b3d16bcad1aa7abbd0f Reviewed-on: https://go-review.googlesource.com/4292Reviewed-by: Alan Donovan <adonovan@google.com>
-
Nicolas S. Dade authored
The sanity checks at the beginning of WriteMsgUDP were too strict, and did not allow a case sendmsg(2) suppports: sending to a connected UDP socket. This fixes the sanity checks. Either the socket is unconnected, and a destination addresses is required (what all existing callers must have been doing), or the socket is connected and an explicit destination address must not be used. Fixes #9807 Change-Id: I08d4ec3c2bf830335c402acfc0680c841cfcec71 Reviewed-on: https://go-review.googlesource.com/3951Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
-
Alex Brainman authored
Change-Id: I5cedd9e53f4e020aea74d498d0db88d79a95260c Reviewed-on: https://go-review.googlesource.com/2718Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Rajat Goel authored
I think the test was meant to test requests to 'localhost:80' instead of 'localhost:80:80'. It passes even with 'localhost:80:80' because net.SplitHostPort fails inside useProxy. Please comment if you want to leave old 'localhost:80' is the list too to check old code path. Change-Id: Ic4cd21901563449e3d4e2f4c8caf723f4ca15bac u Reviewed-on: https://go-review.googlesource.com/4293Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Andrew Gerrand authored
Change-Id: Iad1764707d173a09467fd36e8c49a58147f12219 Reviewed-on: https://go-review.googlesource.com/4320Reviewed-by: Minux Ma <minux@golang.org>
-
Alex Brainman authored
This CL introduces new methods for 'context' type, so we can manipulate its values in an architecture independent way. Use new methods to replace both 386 and amd64 versions of dosigprof with single piece of code. There is more similar code to be converted in the following CLs. Also remove os_windows_386.go and os_windows_amd64.go. These contain unused functions. Change-Id: I28f76aeb97f6e4249843d30d3d0c33fb233d3f7f Reviewed-on: https://go-review.googlesource.com/2790Reviewed-by: Minux Ma <minux@golang.org>
-
Rob Pike authored
I am an idiot but the failure to implement this means we can decide exactly what its design should be for 1.5 Change-Id: Ie2b025fcd899d306ddeddd09d1d0e8f9a99ab7a8 Reviewed-on: https://go-review.googlesource.com/4291Reviewed-by: Minux Ma <minux@golang.org>
-
mattn authored
Fixes #5395 Change-Id: I4322bc8a974d04d9bae6b48c71c5d32d9252973c Reviewed-on: https://go-review.googlesource.com/3024Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
-
Dave Cheney authored
Fixes #9732 Fixes #9819 Rather than detecting vfp support via catching SIGILL signals, parse the contents of /proc/cpuinfo. As the GOARM values for NaCl and freebsd are hard coded, this parsing logic only needs to support linux/arm. This change also fixes the nacl/arm build which is broken because the first stage of nacltest.bash is executed with GOARM=5, embedding that into 5g. The second stage of nacltest.bash correctly detects GOARM=7, but this is ignored as we pass --no-clean at that point, and thus do not replace the compiler. Lastyly, include a fix to error message in nacltest.bash Change-Id: I13f306ff07a99b44b493fade72ac00d0d5097e1c Reviewed-on: https://go-review.googlesource.com/3981Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 09 Feb, 2015 2 commits
-
-
Shenghou Ma authored
CL 2118 makes the assumption that all references to runtime.tlsg should be accompanied by a declaration of runtime.tlsg if its type should be a normal variable, instead of a placeholder for TLS relocation. Because if runtime.tlsg is not declared by the runtime package, the type of runtime.tlsg will be zero, so fix the check in liblink to look for 0 instead of STLSBSS (the type will be initialized by cmd/ld, but cmd/ld doesn't run during assembly). Change-Id: I691ac5c3faea902f8b9a0b963e781b22e7b269a7 Reviewed-on: https://go-review.googlesource.com/4030Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Robert Griesemer authored
Change-Id: I208c8ac44d1a8882d8fdeb18347dc20941e20374 Reviewed-on: https://go-review.googlesource.com/4250Reviewed-by: Alan Donovan <adonovan@google.com>
-