- 29 Mar, 2016 9 commits
-
-
Matthew Dempsky authored
The previous rules to combine indexed loads produced addresses like: From: obj.Addr{ Type: TYPE_MEM, Reg: REG_CX, Name: NAME_AUTO, Offset: 121, ... } which are erroneous because NAME_AUTO implies a base register of REG_SP, and cmd/internal/obj/x86 makes many assumptions to this effect. Note that previously we were also producing an extra "ADDQ SP, CX" instruction, so indexing off of SP was already handled. The approach taken by this CL to address the problem is to instead produce addresses like: From: obj.Addr{ Type: TYPE_MEM, Reg: REG_SP, Name: NAME_AUTO, Offset: 121, Index: REG_CX, Scale: 1, } and to omit the "ADDQ SP, CX" instruction. Downside to this approach is it requires adding a lot of new MOV[WLQ]loadidx1 instructions that nearly duplicate functionality of the existing MOV[WLQ]loadidx[248] instructions, but with a different Scale. Fixes #15001. Change-Id: Iad9a1a41e5e2552f8d22e3ba975e4ea0862dffd2 Reviewed-on: https://go-review.googlesource.com/21245 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Michel Lespinasse authored
See #14874 Updates #6853 This change adds a compiler optimization for non pointer shaped convT2I. Since itab symbols are now emitted by the compiler, the itab address can be passed directly to convT2I instead of passing the iface type and a cache pointer argument. Compilebench results for the 5-commits series ending here: name old time/op new time/op delta Template 336ms ± 4% 344ms ± 4% +2.61% (p=0.027 n=9+8) Unicode 165ms ± 6% 173ms ± 7% +5.11% (p=0.014 n=9+9) GoTypes 1.09s ± 1% 1.06s ± 2% -3.29% (p=0.000 n=9+9) Compiler 5.09s ±10% 4.75s ±10% -6.64% (p=0.011 n=10+10) MakeBash 31.1s ± 5% 30.3s ± 3% ~ (p=0.089 n=10+10) name old text-bytes new text-bytes delta HelloSize 558k ± 0% 558k ± 0% +0.02% (p=0.000 n=10+10) CmdGoSize 6.24M ± 0% 6.11M ± 0% -2.11% (p=0.000 n=10+10) name old data-bytes new data-bytes delta HelloSize 3.66k ± 0% 3.74k ± 0% +2.41% (p=0.000 n=10+10) CmdGoSize 134k ± 0% 162k ± 0% +20.76% (p=0.000 n=10+10) name old bss-bytes new bss-bytes delta HelloSize 126k ± 0% 126k ± 0% ~ (all samples are equal) CmdGoSize 149k ± 0% 146k ± 0% -2.17% (p=0.000 n=10+10) name old exe-bytes new exe-bytes delta HelloSize 924k ± 0% 924k ± 0% +0.05% (p=0.000 n=10+10) CmdGoSize 9.77M ± 0% 9.62M ± 0% -1.47% (p=0.000 n=10+10) Change-Id: Ib230ddc04988824035c32287ae544a965fedd344 Reviewed-on: https://go-review.googlesource.com/20902Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: Michel Lespinasse <walken@google.com>
-
Michel Lespinasse authored
See #14874 This change adds a compiler optimization for pointer shaped convT2I. Since itab symbols are now emitted by the compiler, the itab address can be directly moved into the iface structure. Change-Id: I311483af544519ca682c5f872960717ead772f26 Reviewed-on: https://go-review.googlesource.com/20901Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org>
-
Michel Lespinasse authored
See #14874 This change tells the linker to collect all the itablink symbols and collect them so that moduledata can have a slice of all compiler generated itabs. The logic is shamelessly adapted from what is done with typelink symbols. Change-Id: Ie93b59acf0fcba908a876d506afbf796f222dbac Reviewed-on: https://go-review.googlesource.com/20889Reviewed-by: Keith Randall <khr@golang.org>
-
Michel Lespinasse authored
See #14874 This change tells the compiler to emit itab and itablink symbols in situations where they could be useful; however the compiled code does not actually make use of the new symbols yet. Change-Id: I0db3e6ec0cb1f3b7cebd4c60229e4a48372fe586 Reviewed-on: https://go-review.googlesource.com/20888Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: Michel Lespinasse <walken@google.com>
-
Michel Lespinasse authored
See #14874 This change makes the runtime register all compiler generated itabs (as obtained from the moduledata) during init. Change-Id: I9969a0985b99b8bda820a631f7fe4c78f1174cdf Reviewed-on: https://go-review.googlesource.com/20900Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Michel Lespinasse <walken@google.com>
-
Matthew Dempsky authored
These have been unused since CL 10316. Passes toolstash -cmp. Change-Id: Icc19f3fcc7275fbee1c665f704e10a110ecce2a5 Reviewed-on: https://go-review.googlesource.com/21242Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Austin Clements <austin@google.com>
-
Josh Bleecher Snyder authored
Passes toolstash -cmp. Change-Id: I72fb271052e449a83adfa9bd3b923d40781d6341 Reviewed-on: https://go-review.googlesource.com/21243 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Richard Miller authored
In syscall.forkAndExecInChild, blocks of code labelled Pass 1 and Pass 2 permute the file descriptors (if necessary) which are passed to the child process. If Pass 1 begins with fds = {0,2,1}, nextfd = 4 and pipe = 4, then the statement labelled "don't stomp on pipe" is too late -- the pipe (which will be needed to pass exec status back to the parent) will have been closed by the preceding DUP call. Moving the "don't stomp" test earlier ensures that the pipe is protected. Fixes #14979 Change-Id: I890c311527f6aa255be48b3277c1e84e2049ee22 Reviewed-on: https://go-review.googlesource.com/21184 Run-TryBot: David du Colombier <0intro@gmail.com> Reviewed-by: David du Colombier <0intro@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 28 Mar, 2016 16 commits
-
-
Josh Bleecher Snyder authored
This mostly a mechanical change. However, the change in assignop (subr.go) is a bug fix. The code didn’t match the comment, and the comment was correct. Nevertheless, this CL passes toolstash -cmp. The last direct reference to dddBound outside type.go (in typecheck.go) will go away in a future CL. Change-Id: Ifb1691e0a07f906712c18c4a4cd23060807a5da5 Reviewed-on: https://go-review.googlesource.com/21235Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Raul Silvera authored
Packed encoding is the default on the proto3 format. Profiles generated in the profile.proto format by third parties cannot be decoded by the Go pprof tool, since its proto decoder does not recognize packed encoding for repeated fields. In particular this issue prevents go tool pprof from reading profiles generated by the version of pprof in github.com/google/pprof Profiles generated by go tool pprof after this change will use packed repeating fields, so older versions of pprof will not be able to read them. pprof will continue to be able to read profiles generated before this change. Change-Id: Ife0b353a535ae1e495515b9bcec588dd967e171b Reviewed-on: https://go-review.googlesource.com/21240Reviewed-by: David Symonds <dsymonds@golang.org> Run-TryBot: David Symonds <dsymonds@golang.org>
-
Robert Griesemer authored
When building make.bash, calling Nodes.Set(s) where len(s) == 0 occurs 4738678 times vs 1465415 calls where len(s) > 0; i.e., it is over 3x more common to set Nodes.slice to nil rather than to s. Make a copy of slice (header) and take address of that copy instead to avoid allocating the argument slice on the heap always even when not needed. Saves 4738678 slice header allocations and slice header value copies. Change-Id: I88e8e919ea9868ceb2df46173d187af4109bd947 Reviewed-on: https://go-review.googlesource.com/21241Reviewed-by: Alan Donovan <adonovan@google.com>
-
Matthew Dempsky authored
Now that structs use a slice to store their fields, this code can be simplified somewhat. Passes toolstash -cmp. Change-Id: If17b1c89871fa06f34938fa67df0f8c6bcf1a86b Reviewed-on: https://go-review.googlesource.com/21219Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Keith Randall authored
Fixes #14920 Change-Id: I1535dc529779e26141d92d9e2b6ba7b016590c1a Reviewed-on: https://go-review.googlesource.com/21005Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Ahmed Waheed <oneofone@gmail.com> Reviewed-by: David Chase <drchase@google.com>
-
Matthew Dempsky authored
This reverts commit 85bbabd9. The reverted CL broke all builds, because it depends on other CLs that haven't been reviewed or landed yet. Change-Id: I936f969431e0ac77133e43de2bf63042cef6b777 Reviewed-on: https://go-review.googlesource.com/21238Reviewed-by: Rob Pike <r@golang.org> Run-TryBot: Matthew Dempsky <mdempsky@google.com>
-
Matthew Dempsky authored
Passes toolstash -cmp. Change-Id: Ie41d7e74847c44a8fd174731374339c6c32b1460 Reviewed-on: https://go-review.googlesource.com/21231 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
gorename -from '"cmd/compile/internal/gc".Field.Width' -to Offset Passes toolstash -cmp. Change-Id: I310538a1f60bbab470a6375e813e9d5eb52c5bbf Reviewed-on: https://go-review.googlesource.com/21230Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
s390x doesn't introduce any new assembly syntax. There are a few instructions which require the operands to be reordered, notably the storage-storage instructions that put the length into From3 so that the memory operands can be put into From and To. The assembly test currently covers a subset of instructions but tries to hit edge cases as much as possible. Unlike the other ports it can be linked as an executable to make disassembling it easy. It would be nice to autogenerate it at some point in the future. Change-Id: I7615ac6ecf239e3f347fad9ae1f8eede91742859 Reviewed-on: https://go-review.googlesource.com/20934 Run-TryBot: Rob Pike <r@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Josh Bleecher Snyder authored
Passes toolstash -cmp. Change-Id: Icc387eb557d5029e903923a051b565812fd2246b Reviewed-on: https://go-review.googlesource.com/21234 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Shinji Tanaka authored
linux/386 depends on modify_ldt system call, but recent Linux kernels can disable this system call. Any Go programs built as linux/386 crash with the message 'Trace/breakpoint trap'. The kernel config CONFIG_MODIFY_LDT_SYSCALL, which control enable/disable modify_ldt, is disabled on Amazon Linux 2016.03. This fixes this problem by using set_thread_area instead of modify_ldt on linux/386. Fixes #14795. Change-Id: I0cc5139e40e9e5591945164156a77b6bdff2c7f1 Reviewed-on: https://go-review.googlesource.com/21190Reviewed-by: Austin Clements <austin@google.com> Reviewed-by: Minux Ma <minux@golang.org>
-
Marvin Stenger authored
No performance regression measurable: name old time/op new time/op delta Template 432ms ± 3% 422ms ± 2% -2.34% (p=0.010 n=10+9) GoTypes 1.46s ± 1% 1.46s ± 1% ~ (p=0.796 n=10+10) Compiler 7.15s ± 1% 7.14s ± 1% ~ (p=0.447 n=10+9) Change-Id: I21b93cb989017b6fec2215de2423d87f25cf538c Reviewed-on: https://go-review.googlesource.com/21220Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Chase authored
One intrinsic was needed to help get the very best performance out of a future GC; as long as that one was being added, I also added Bswap since that is sometimes a handy thing to have. I had intended to fill out the bit-scan intrinsic family, but the mismatch between the "scan forward" instruction and "count leading zeroes" was large enough to cause me to leave it out -- it poses a dilemma that I'd rather dodge right now. These intrinsics are not exposed for general use. That's a separate issue requiring an API proposal change ( https://github.com/golang/proposal ) All intrinsics are tested, both that they are substituted on the appropriate architecture, and that they produce the expected result. Change-Id: I5848037cfd97de4f75bdc33bdd89bba00af4a8ee Reviewed-on: https://go-review.googlesource.com/20564Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: David Chase <drchase@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Shahar Kohanim authored
Calling the read only Linkrlookup will now not cause the name string to escape. So a lookup can be performed on a []byte casted to a string without allocating. This will help a followup cl and it is also much simpler and cleaner. Performance not impacted by this. name old s/op new s/op delta LinkCmdGo 0.51 ± 6% 0.51 ± 5% ~ (p=0.192 n=98+98) Change-Id: I7846ba3160eb845a3a29cbf0be703c47369ece16 Reviewed-on: https://go-review.googlesource.com/21187Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Ian Lance Taylor authored
I want to get rid of OTFUNC, which serves no useful purpose. However, it turns out that the escape analysis pass looks at the node slices set up for OTFUNC, even though by the time escape analysis runs the OTFUNC has been converted to OTYPE. This CL converts the escape analysis code to look at the function decls instead, and clears the OTFUNC info when converting to OTYPE to ensure that nothing else looks at it. Change-Id: I3f2f5997ea8ea7a127a858e94b20aabfab84a5bf Reviewed-on: https://go-review.googlesource.com/21202 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Dominik Honnef authored
Remove all special handling of Google Code, which has shut down. Commit 4ec2fd3e suggested that maybe the shutdown warning should remain. However, it has been missing from Go 1.6 already, and by Go 1.7 people will most likely have realised that Google Code has shut down. Updates #10193. Change-Id: I5749bbbe2fe3b07cff4edd20303bbedaeaa8d77b Reviewed-on: https://go-review.googlesource.com/21189Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 27 Mar, 2016 6 commits
-
-
Martin Möhrmann authored
Make verbs b,c,o and U work for any array and slice of integer type including byte and uint8. Fix a bug that triggers badverb for []uint8 and []byte type on the slice/array level instead of on each element like for any other slice or array type. Add tests that make sure we do not accidentally alter the behavior of printing []byte for []byte and []uint8 type if they are used at the top level when formatting with %#v. name old time/op new time/op delta SprintfHexBytes-2 177ns ± 2% 176ns ± 2% ~ (p=0.066 n=48+49) SprintfBytes-2 330ns ± 1% 329ns ± 1% ~ (p=0.118 n=45+47) Fixes #13478 Change-Id: I99328a184973ae219bcc0f69c3978cb1ff462888 Reviewed-on: https://go-review.googlesource.com/20686 Run-TryBot: Rob Pike <r@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Josh Bleecher Snyder authored
Change-Id: Ifa3b1b1e5458e4f109828a476d37f1caf96fe14b Reviewed-on: https://go-review.googlesource.com/21211 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
Passes toolstash -cmp. Change-Id: I8b000d4e90e6aa1a0e60bd46fb7cba2ddc1774b5 Reviewed-on: https://go-review.googlesource.com/21210 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Fixes #14973. Change-Id: Iea68c9deca9429bde465c9ae05639209fe0ccf72 Reviewed-on: https://go-review.googlesource.com/21175Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Dominik Honnef authored
Fixes #13236 Change-Id: If902ac66718e0a0790fab9835921ce4ef980965b Reviewed-on: https://go-review.googlesource.com/21183 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Martin Möhrmann authored
Merge printReflectValue into printValue. Determine if handleMethods was already called in printArg by checking if depth is 0. Do not call handleMethods on depth 0 again in printValue to not introduce a performance regression. handleMethods is called already in printArg to not introduce a performance penalty for top-level Stringer, GoStringer, Errors and Formatters by using reflect.ValueOf on them just to retrieve them again as interface{} values in printValue. Clear p.arg in printValue after handleMethods to print the type of the value inside the reflect.Value when a bad verb is encountered on the top level instead of printing "reflect.Value=" as the type of the argument. This also fixes a bug that incorrectly prints the whole map instead of just the value for a key if the returned value by the map for the key is an invalid reflect value. name old time/op new time/op delta SprintfPadding-2 229ns ± 2% 227ns ± 1% -0.50% (p=0.013 n=20+20) SprintfEmpty-2 36.4ns ± 6% 37.2ns ±14% ~ (p=0.091 n=18+20) SprintfString-2 102ns ± 1% 102ns ± 0% ~ (p=0.751 n=20+20) SprintfTruncateString-2 142ns ± 0% 141ns ± 1% -0.95% (p=0.000 n=16+20) SprintfQuoteString-2 389ns ± 0% 388ns ± 0% -0.12% (p=0.019 n=20+20) SprintfInt-2 100ns ± 2% 100ns ± 1% ~ (p=0.188 n=20+15) SprintfIntInt-2 155ns ± 3% 154ns ± 2% ~ (p=0.092 n=20+20) SprintfPrefixedInt-2 250ns ± 2% 251ns ± 3% ~ (p=0.559 n=20+20) SprintfFloat-2 177ns ± 2% 175ns ± 1% -1.30% (p=0.000 n=20+20) SprintfComplex-2 516ns ± 1% 510ns ± 1% -1.13% (p=0.000 n=19+16) SprintfBoolean-2 90.9ns ± 3% 90.6ns ± 1% ~ (p=0.193 n=19+19) SprintfHexString-2 171ns ± 1% 169ns ± 1% -1.44% (p=0.000 n=19+20) SprintfHexBytes-2 180ns ± 1% 180ns ± 1% ~ (p=0.060 n=19+18) SprintfBytes-2 330ns ± 1% 329ns ± 1% -0.42% (p=0.003 n=20+20) SprintfStringer-2 354ns ± 3% 352ns ± 3% ~ (p=0.525 n=20+19) SprintfStructure-2 804ns ± 3% 776ns ± 2% -3.56% (p=0.000 n=20+20) FprintInt-2 155ns ± 0% 151ns ± 1% -2.35% (p=0.000 n=19+20) FprintfBytes-2 169ns ± 0% 170ns ± 1% +0.81% (p=0.000 n=18+19) FprintIntNoAlloc-2 112ns ± 0% 109ns ± 1% -2.28% (p=0.000 n=20+20) Change-Id: Ib9a39082ed1be0f1f7499ee6fb6c9530f043e43a Reviewed-on: https://go-review.googlesource.com/20923 Run-TryBot: Rob Pike <r@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
- 26 Mar, 2016 8 commits
-
-
Josh Bleecher Snyder authored
This removes about 3% of the Nodes allocated while compiling std+cmd. Passes toolstash -cmp. name old time/op new time/op delta Template 320ms ± 3% 316ms ± 5% ~ (p=0.063 n=21+23) Unicode 162ms ± 9% 161ms ± 6% ~ (p=0.788 n=25+25) GoTypes 1.03s ± 4% 1.03s ± 4% ~ (p=0.929 n=24+25) Compiler 4.99s ± 3% 4.95s ± 2% -0.84% (p=0.011 n=25+23) MakeBash 40.3s ± 1% 40.3s ± 1% ~ (p=0.468 n=24+24) name old alloc/op new alloc/op delta Template 57.3MB ± 0% 57.0MB ± 0% -0.51% (p=0.000 n=25+23) Unicode 41.1MB ± 0% 41.0MB ± 0% -0.27% (p=0.000 n=25+24) GoTypes 191MB ± 0% 190MB ± 0% -0.46% (p=0.000 n=25+25) Compiler 839MB ± 0% 834MB ± 0% -0.62% (p=0.000 n=24+24) name old allocs/op new allocs/op delta Template 500k ± 0% 498k ± 0% -0.42% (p=0.000 n=25+25) Unicode 400k ± 0% 399k ± 0% -0.22% (p=0.000 n=24+25) GoTypes 1.50M ± 0% 1.49M ± 0% -0.41% (p=0.000 n=23+25) Compiler 6.04M ± 0% 6.00M ± 0% -0.59% (p=0.000 n=25+25) Change-Id: I7d3f177d1ab4a75a4c047fa465f2eee38747603f Reviewed-on: https://go-review.googlesource.com/21178 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Alberto Donizetti authored
Fixes #14964 Change-Id: I5f772426081efaa9315c4ecaf60de850af324f1d Reviewed-on: https://go-review.googlesource.com/21139Reviewed-by: Ahmed Waheed <oneofone@gmail.com> Reviewed-by: Marcel van Lohuizen <mpvl@golang.org> Run-TryBot: Marcel van Lohuizen <mpvl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Martin Möhrmann authored
Remove format flag reset from doPrint. Flags will not be set in doPrint and printArg will not return with flags modified. Remove the extra arguments addspace and addnewline and split up doPrint into two simpler and specialized functions. Change-Id: Ib884d027abfbb31c6f01b008f51d6d76fc0c1a17 Reviewed-on: https://go-review.googlesource.com/21181 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Emmanuel Odeke authored
Following the spec at https://mimesniff.spec.whatwg.org/#matching-an-audio-or-video-type-pattern Adds signatures for: + audio/aiff + audio/basic + audio/midi + audio/mpeg + video/avi Updates the signature for: + application/ogg Also updates the pattern matching algorithm in https://mimesniff.spec.whatwg.org/#matching-a-mime-type-pattern by implementing clause 4 that dictates that the number of bytes in the pattern must match the number of bytes in the mask. Fixes #13383 Change-Id: Ie321f392e6570299c17176adf1c75f62f357e1e8 Reviewed-on: https://go-review.googlesource.com/17132Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Use a type switch instead of calling Val.Ctype (which in turn just uses a type switch anyway). Use continue statements to simplify the control flow. Change-Id: I65c139d706d4d78e5b4ce09d1b1505a3e424496b Reviewed-on: https://go-review.googlesource.com/21173Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Ian Lance Taylor authored
Try to avoid a race condition in the test. Passed 500 times on my laptop. Fixes #14956. Change-Id: I5de2e1e3623832f0ab4f180149f7c57ce7cd23c0 Reviewed-on: https://go-review.googlesource.com/21171 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Josh Bleecher Snyder authored
We were allocating two Nodes just to help Naddr fill in Type and Offset. Fill them in directly instead. Passes toolstash -cmp. name old time/op new time/op delta Template 324ms ± 5% 320ms ± 5% -1.34% (p=0.033 n=25+22) Unicode 164ms ± 6% 162ms ± 5% ~ (p=0.152 n=24+23) GoTypes 1.05s ± 5% 1.05s ± 6% ~ (p=0.653 n=23+25) Compiler 5.12s ± 4% 5.06s ± 3% -1.13% (p=0.006 n=25+23) MakeBash 41.8s ± 2% 41.6s ± 3% -0.65% (p=0.024 n=24+24) name old alloc/op new alloc/op delta Template 57.8MB ± 0% 57.3MB ± 0% -0.87% (p=0.000 n=25+25) Unicode 41.2MB ± 0% 41.1MB ± 0% -0.29% (p=0.000 n=24+22) GoTypes 193MB ± 0% 191MB ± 0% -0.97% (p=0.000 n=22+25) Compiler 850MB ± 0% 840MB ± 0% -1.28% (p=0.000 n=25+25) name old allocs/op new allocs/op delta Template 506k ± 0% 500k ± 0% -1.15% (p=0.000 n=25+25) Unicode 402k ± 0% 400k ± 0% -0.37% (p=0.000 n=24+25) GoTypes 1.52M ± 0% 1.50M ± 0% -1.42% (p=0.000 n=25+25) Compiler 6.16M ± 0% 6.04M ± 0% -2.05% (p=0.000 n=24+25) Change-Id: Ia80d28b32023a620d9ddf99c1252c16fa6477b3c Reviewed-on: https://go-review.googlesource.com/21174 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Christopher Nelson authored
This is in support of https://golang.org/cl/18057 which adds support for c-archive to the Windows platform. The signal handling tests do not compile on Windows. This splits them out into a separate main_unix.c file, and conditionally includes them for non-Windows platforms. Change-Id: Ic79ce83da7656d6703505e514554748a482b81a1 Reviewed-on: https://go-review.googlesource.com/21086Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 25 Mar, 2016 1 commit
-
-
Robert Griesemer authored
The colas function allocates 2 slice headers in each call (via Nodes.Set) only to throw away those slice headers in the common case where both the lhs and rhs in "lhs := rhs" have length 1. Avoid the Nodes.Set calls in those cases. For make.bash, this eliminates ~63,000 slice header allocations. Also: Minor cleanups in colasdefn. Change-Id: Ib114a67c3adeb8821868bd71a5e0f5e2e19fcd4f Reviewed-on: https://go-review.googlesource.com/21170Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-