- 13 Mar, 2016 4 commits
-
-
Matthew Dempsky authored
Shrinks gc.Type and gc.Func slightly. Passes "GOEXPERIMENT=fieldtrack ./all.bash" and "go test -a -toolexec='toolstash -cmp' -ldflags=-k=rsc.io/tmp/fieldtrack.tracked rsc.io/tmp/fieldtrack". Change-Id: I785fe8a18eb830d9867d34247e4cd41a6a7921d4 Reviewed-on: https://go-review.googlesource.com/20557 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Todd Neal authored
Split the auxFloat type into 32/64 bit versions and perform checking for exactly representable float32 values. Perform const folding on float32/64. Comment out some const negation rules that the frontend already performs. Change-Id: Ib3f8d59fa8b30e50fe0267786cfb3c50a06169d2 Reviewed-on: https://go-review.googlesource.com/20568 Run-TryBot: Todd Neal <todd@tneal.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Alexandru Moșoi authored
* Refacts a bit saving and restoring parents restrictions * Shaves ~100k from pkg/tools/linux_amd64, but most of the savings come from the rewrite rules. * Improves on the following artificial test case: func f1(a4 bool, a6 bool) bool { return a6 || (a6 || (a6 || a4)) || (a6 || (a4 || a6 || (false || a6))) } Change-Id: I714000f75a37a3a6617c6e6834c75bd23674215f Reviewed-on: https://go-review.googlesource.com/20306Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Alexandru Moșoi <alexandru@mosoi.ro> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Emmanuel Odeke authored
Move functions testSchedLocalQueueLocal and testSchedLocalQueueSteal from proc.go to export_test.go, the only site that they are used. Fixes #14796 Change-Id: I16b6fa4a13835eab33f66a2c2e87a5f5c79b7bd3 Reviewed-on: https://go-review.googlesource.com/20640 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 12 Mar, 2016 13 commits
-
-
Dominik Honnef authored
readClose hasn't been used in years. Change-Id: Ia963c082e049ef856c2a637fec15204efe48b3b6 Reviewed-on: https://go-review.googlesource.com/20631Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Emmanuel Odeke authored
Ensures that after request.ParseMultipartForm has been invoked, Request.PostForm and Request.Form are both populated with the same formValues read in, instead of only populating Request.Form. Fixes #9305 Change-Id: I3d4a11b006fc7dffaa35360014fe15b8c74d00a3 Reviewed-on: https://go-review.googlesource.com/19986Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Todd Neal authored
Reuse auto symbols so cse can eliminate OpAddrs that refer to them. Change-Id: I69e6a3f77a3a33946459cf8c6eccf223f6125048 Reviewed-on: https://go-review.googlesource.com/20569 Run-TryBot: Todd Neal <todd@tneal.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
-
Shahar Kohanim authored
Reduces link time by ~3% Results with gc on: name old s/op new s/op delta LinkCmdGo 0.82 ± 2% 0.78 ± 2% -3.90% (p=0.000 n=17+17) LinkJuju 7.11 ± 7% 6.87 ± 6% -3.41% (p=0.012 n=20+19) Less noisy results with gc turned off: name old s/op new s/op delta LinkCmdGo 0.66 ± 2% 0.64 ± 2% -3.14% (p=0.000 n=18+20) LinkJuju 5.91 ± 1% 5.72 ± 2% -3.17% (p=0.000 n=20+20) Change-Id: I4cac7933b0b22d0aee18255e1ab54550ad364593 Reviewed-on: https://go-review.googlesource.com/20478Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org>
-
Alex Brainman authored
Every go executable has COFF symbol table appended at the end. The table is used by nm and addr2line and contains all symbols present in the executable. The table is quite large. For example, my go.exe has 11736 records. To generate symbol table: 1) we walk "all symbols" list to count symbols we want for the table; 2) we allocate large global array of COFFSym structs (32 bytes each) to fit our symbols; 3) we walk "all symbols" list again to fill our array with contents; 4) we iterate over our global array to write all records to the file. This CL changes all these steps with single step: - walk "all symbols" list and write each COFF symbol table record to the file as we go. I hope new version is faster and uses less garbage, but I don't know how to benchmark this. Change-Id: Ie4870583250131ea4428e0e83a0696c9df1794e0 Reviewed-on: https://go-review.googlesource.com/20580Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Run-TryBot: Alex Brainman <alex.brainman@gmail.com>
-
Keith Randall authored
We use *24 a lot for pointer arithmetic when accessing slices of slices ([][]T). Rewrite to use an LEA and a shift. The shift will likely be free, as it often gets folded into an indexed load/store. Update #14606 Change-Id: Ie0bf6dc1093876efd57e88ce5f62c26a9bf21cec Reviewed-on: https://go-review.googlesource.com/20567 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Todd Neal <todd@tneal.org>
-
Robert Griesemer authored
The structpkg global variable was only used to verify internal consistency when declaring methods during import. Track the value in the parser and binary importer directly and pass it to the relevant function as an argument. Change-Id: I7e5e006f9046d84f9a3959616f073798fda36c97 Reviewed-on: https://go-review.googlesource.com/20606Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
David Crawshaw authored
The outCount value includes a flag bit for dotdotdot. If we have this count incorrect, then the offset for the methodset *rtype are in the wrong place. Fixes #14783 Change-Id: If5acb16af08d4ffe36c8c9ee389c32f2712ce757 Reviewed-on: https://go-review.googlesource.com/20566Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Tom Bergan authored
Currently, if a client of crypto/tls (e.g., net/http, http2) calls tls.Conn.Write with a 33KB buffer, that ends up writing three TLS records: 16KB, 16KB, and 1KB. Slow clients (such as 2G phones) must download the first 16KB record before they can decrypt the first byte. To improve latency, it's better to send smaller TLS records. However, sending smaller records adds overhead (more overhead bytes and more crypto calls), which slightly hurts throughput. A simple heuristic, implemented in this change, is to send small records for new connections, then boost to large records after the first 1MB has been written on the connection. Fixes #14376 Change-Id: Ice0f6279325be6775aa55351809f88e07dd700cd Reviewed-on: https://go-review.googlesource.com/19591 TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Tom Bergan <tombergan@google.com> Reviewed-by: Adam Langley <agl@golang.org>
-
Ian Lance Taylor authored
Only copy the ones that actually change. Also combine deep and substAny functions into one. The Type.Copyany field is now unused, so remove it. Passes toolstash -cmp. Change-Id: Id28a9bf144ecf3e522aad00496f8a21ae2b74680 Reviewed-on: https://go-review.googlesource.com/20600Reviewed-by: Matthew Dempsky <mdempsky@google.com> Run-TryBot: Ian Lance Taylor <iant@golang.org>
-
Adam Langley authored
Fixes #14370. Change-Id: Ieb95ee3494f592fb5fc74aa4b803479671816927 Reviewed-on: https://go-review.googlesource.com/20551Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Adam Langley authored
I copied this down incorrectly. See https://tools.ietf.org/html/rfc5758#section-3.1. Thankfully it's incredibly obscure. Fixes #14663. Change-Id: I4792ee979916cc15aa2e300c8bc989bc4f9c63ac Reviewed-on: https://go-review.googlesource.com/20549Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Adam Langley <agl@golang.org>
-
Adam Langley authored
This change improves the error message when encountering a TLS handshake message that is larger than our limit (64KB). Previously the error was just “local error: internal error”. Updates #13401. Change-Id: I86127112045ae33e51079e3bc047dd7386ddc71a Reviewed-on: https://go-review.googlesource.com/20547Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Adam Langley <agl@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
- 11 Mar, 2016 23 commits
-
-
Matthew Dempsky authored
Move lexinit, typeinit, lexinit1, and lexfini into new universe.go file, and give them a more idiomatic and descriptive API. No code changes. Change-Id: I0e9b25dcc86ad10f4b990dc02bd33477b488cc85 Reviewed-on: https://go-review.googlesource.com/20604Reviewed-by: Robert Griesemer <gri@golang.org>
-
Robert Griesemer authored
Missed these two declarations in the previous cleanup. Change-Id: I54ff3accd387dd90e12847daccf4477169797f81 Reviewed-on: https://go-review.googlesource.com/20603 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Robert Griesemer authored
This is really moving all the non-lexer pieces out of lex.go into main.go. It's always been confusing that the top-most compiler entry point (Main) is in the same file with the lexer. Both files remain of substantial size (> 1000 lines), which justifies this even more. No other changes. Change-Id: I03895589d5e3cc2340580350bbc1420539893dfc Reviewed-on: https://go-review.googlesource.com/20601 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
Change-Id: Id041c1b2d364aecd7a6613a53237f7de2c650a7e Reviewed-on: https://go-review.googlesource.com/20599 Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Fixes #14740 Change-Id: Iad8d971c21977b0a1f4ef55a08bb180a8125e976 Reviewed-on: https://go-review.googlesource.com/20562Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
Removes an intermediate layer of functions that was clogging up a corner of the compiler's profile graph. I can't measure a performance improvement running a large build like jujud, but the profile reports less total time spent in gc.(*lexer).getr. Change-Id: I3000585cfcb0f9729d3a3859e9023690a6528591 Reviewed-on: https://go-review.googlesource.com/20565Reviewed-by: Robert Griesemer <gri@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
David Crawshaw authored
In addition to reflect.Value.Call, exported methods can be invoked by the Func value in the reflect.Method struct. This CL has the compiler track what functions get access to a legitimate reflect.Method struct by looking for interface calls to either of: Method(int) reflect.Method MethodByName(string) (reflect.Method, bool) This is a little overly conservative. If a user implements a type with one of these methods without using the underlying calls on reflect.Type, the linker will assume the worst and include all exported methods. But it's cheap. No change to any of the binary sizes reported in cl/20483. For #14740 Change-Id: Ie17786395d0453ce0384d8b240ecb043b7726137 Reviewed-on: https://go-review.googlesource.com/20489Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Josh Bleecher Snyder authored
While we're here, remove a bit of dead code. Change-Id: I1344bb41e5d368825ca5748189382f9e7023c59a Reviewed-on: https://go-review.googlesource.com/20596 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
Use an early return. Check errors. Deduplicate. Change-Id: Iabefd563b5ef82a16fab4791277630804fd09003 Reviewed-on: https://go-review.googlesource.com/20597 Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Matthew Dempsky authored
Change-Id: I298b9d389ac33a24365f4c06a122c3af989906c0 Reviewed-on: https://go-review.googlesource.com/20594 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
-
Matthew Dempsky authored
Might as well sort them while they're still in a slice. Change-Id: I40c25ddc5c054dcb4da2aeefa79947967609d599 Reviewed-on: https://go-review.googlesource.com/20591 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Klaus Post authored
Part 1 of optimizing the deflater. This optimizes the bitwriter by: * Removing allocations. * Storing compound values for bit codes instead of 2 separate tables. * Accumulate 48 bits between writes instead of 24. * Inline bit flushing. This also contains code that will be used in later CL's (writeBlockDynamic, writeBlockHuff). Tests for Huffman bit writer encoding regressions has been added. name old speed new speed delta EncodeDigitsSpeed1e4-4 19.3MB/s ± 1% 21.6MB/s ± 1% +11.77% EncodeDigitsSpeed1e5-4 25.0MB/s ± 6% 30.7MB/s ± 1% +22.70% EncodeDigitsSpeed1e6-4 28.2MB/s ± 1% 32.3MB/s ± 1% +14.64% EncodeDigitsDefault1e4-4 13.3MB/s ± 0% 14.2MB/s ± 1% +7.07% EncodeDigitsDefault1e5-4 6.43MB/s ± 1% 6.64MB/s ± 1% +3.27% EncodeDigitsDefault1e6-4 5.81MB/s ± 0% 5.85MB/s ± 1% +0.69% EncodeDigitsCompress1e4-4 13.2MB/s ± 0% 14.4MB/s ± 0% +9.10% EncodeDigitsCompress1e5-4 6.40MB/s ± 1% 6.61MB/s ± 0% +3.20% EncodeDigitsCompress1e6-4 5.80MB/s ± 1% 5.90MB/s ± 1% +1.64% EncodeTwainSpeed1e4-4 18.4MB/s ± 1% 20.7MB/s ± 1% +12.72% EncodeTwainSpeed1e5-4 27.7MB/s ± 1% 31.0MB/s ± 1% +11.78% EncodeTwainSpeed1e6-4 29.1MB/s ± 0% 32.9MB/s ± 2% +13.25% EncodeTwainDefault1e4-4 12.4MB/s ± 0% 13.1MB/s ± 1% +5.88% EncodeTwainDefault1e5-4 7.52MB/s ± 1% 7.83MB/s ± 0% +4.19% EncodeTwainDefault1e6-4 7.08MB/s ± 1% 7.26MB/s ± 0% +2.54% EncodeTwainCompress1e4-4 12.0MB/s ± 1% 12.8MB/s ± 1% +6.70% EncodeTwainCompress1e5-4 5.96MB/s ± 1% 6.16MB/s ± 0% +3.27% EncodeTwainCompress1e6-4 5.37MB/s ± 0% 5.39MB/s ± 1% +0.47% >Allocations: benchmark old allocs new allocs delta BenchmarkEncodeDigitsSpeed1e4-4 50 0 -100.00% BenchmarkEncodeDigitsSpeed1e5-4 110 0 -100.00% BenchmarkEncodeDigitsSpeed1e6-4 1032 0 -100.00% BenchmarkEncodeDigitsDefault1e4-4 56 0 -100.00% BenchmarkEncodeDigitsDefault1e5-4 120 0 -100.00% BenchmarkEncodeDigitsDefault1e6-4 966 0 -100.00% BenchmarkEncodeDigitsCompress1e4-4 56 0 -100.00% BenchmarkEncodeDigitsCompress1e5-4 120 0 -100.00% BenchmarkEncodeDigitsCompress1e6-4 966 0 -100.00% BenchmarkEncodeTwainSpeed1e4-4 58 0 -100.00% BenchmarkEncodeTwainSpeed1e5-4 132 0 -100.00% BenchmarkEncodeTwainSpeed1e6-4 1082 0 -100.00% BenchmarkEncodeTwainDefault1e4-4 52 0 -100.00% BenchmarkEncodeTwainDefault1e5-4 126 0 -100.00% BenchmarkEncodeTwainDefault1e6-4 886 0 -100.00% BenchmarkEncodeTwainCompress1e4-4 52 0 -100.00% BenchmarkEncodeTwainCompress1e5-4 120 0 -100.00% BenchmarkEncodeTwainCompress1e6-4 880 0 -100.00% benchmark old bytes new bytes delta BenchmarkEncodeDigitsSpeed1e4-4 4288 2 -99.95% BenchmarkEncodeDigitsSpeed1e5-4 8896 15 -99.83% BenchmarkEncodeDigitsSpeed1e6-4 84098 153 -99.82% BenchmarkEncodeDigitsDefault1e4-4 4480 3 -99.93% BenchmarkEncodeDigitsDefault1e5-4 9216 76 -99.18% BenchmarkEncodeDigitsDefault1e6-4 73920 768 -98.96% BenchmarkEncodeDigitsCompress1e4-4 4480 3 -99.93% BenchmarkEncodeDigitsCompress1e5-4 9216 76 -99.18% BenchmarkEncodeDigitsCompress1e6-4 73920 768 -98.96% BenchmarkEncodeTwainSpeed1e4-4 4544 2 -99.96% BenchmarkEncodeTwainSpeed1e5-4 9600 15 -99.84% BenchmarkEncodeTwainSpeed1e6-4 77633 153 -99.80% BenchmarkEncodeTwainDefault1e4-4 4352 3 -99.93% BenchmarkEncodeTwainDefault1e5-4 9408 76 -99.19% BenchmarkEncodeTwainDefault1e6-4 65984 768 -98.84% BenchmarkEncodeTwainCompress1e4-4 4352 3 -99.93% BenchmarkEncodeTwainCompress1e5-4 9216 76 -99.18% BenchmarkEncodeTwainCompress1e6-4 65792 768 -98.83% Updates #14258 Change-Id: Ibaa97b9619743ad623094727228eb2ada1ec7f1f Reviewed-on: https://go-review.googlesource.com/19336Reviewed-by: Nigel Tao <nigeltao@golang.org> Reviewed-by: Joe Tsai <joetsai@digital-static.net> Run-TryBot: Joe Tsai <joetsai@digital-static.net> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Klaus Post authored
This will test if deflate output is deterministic between two runs of the deflater, when write sizes differ. The deflater makes no official promises that results are deterministic between runs, but this is a good test to determine unintentional randomness. Note that this does not guarantee that results are deterministic across platforms nor that results will be deterministic between Go versions. This is also not guarantees we should imply. Change-Id: Id7dd89fe276060fd83a43d0b34ac35d50fcd32d9 Reviewed-on: https://go-review.googlesource.com/20573Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Michael Munday authored
p can be nil in Dconv so we need to do a check before dereferencing it. Fixes a problem I was having running toolstash. Change-Id: I34d6d278b319583d8454c2342ac88e054fc4b641 Reviewed-on: https://go-review.googlesource.com/20595Reviewed-by: David Crawshaw <crawshaw@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
I don't know what they're used for, but that's the only file they're referenced in. Change-Id: Ie39d7d4621e2d5224408243b5789597ca0dc14be Reviewed-on: https://go-review.googlesource.com/20593Reviewed-by: Dave Cheney <dave@cheney.net>
-
Matthew Dempsky authored
This code is an eye sore to keep scrolling past in subr.go, so move it out of the way. Change-Id: I8eafc1725d868a4924ee7ca9b7738cce309f9eff Reviewed-on: https://go-review.googlesource.com/20592Reviewed-by: Dave Cheney <dave@cheney.net>
-
Ian Lance Taylor authored
Still fails about 20% of the time on my laptop. Fixes #14766. Change-Id: I169ab728c6022dceeb91188f5ad466ed6413c062 Reviewed-on: https://go-review.googlesource.com/20590 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Robert Griesemer authored
Change-Id: If2a174f482ecd56dee43f921d13fef98439872fc Reviewed-on: https://go-review.googlesource.com/20559Reviewed-by: Matthew Dempsky <mdempsky@google.com>
-
Emmanuel Odeke authored
Change-Id: Ia2273c3a9f0001d16b0c767fea91498a9acb0af5 Reviewed-on: https://go-review.googlesource.com/19963Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
Use idiomatic slicing operations instead of incrementally building a linked list. Passes toolstash -cmp. Change-Id: Idb0e40c7b4d7d1110d23828afa8ae1d157ba905f Reviewed-on: https://go-review.googlesource.com/20556Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-
Matthew Dempsky authored
In particular, make Alignof work more like Sizeof. Other idiomatic cleanups while here. Passes toolstash -cmp. Change-Id: I4def20894f3d95e49ab6a50ddba189be36fdd258 Reviewed-on: https://go-review.googlesource.com/20555 Run-TryBot: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Matthew Dempsky authored
This could be done by threading the Iter value down through memrun and ispaddedfield, but that ends up a bit clunky. This way is also closer to how we'll want the code to look once fields are kept in slices. Passes toolstash -cmp. Change-Id: I8a44445c85f921eb18d97199df2026c5ce0f4f67 Reviewed-on: https://go-review.googlesource.com/20558 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Keith Randall authored
x86 has a lot of instructions that require the output to be in the same register as one of the inputs. When allocating the output register, allocate the same register as the input if it is available. Improves the performance of golang.org/x/crypto/sha3 by 10% (from 6% slower than 1.6 to 4% faster). Fixes #14745 Change-Id: I4d81785240c9368e4dc75107b45c959d200df8e6 Reviewed-on: https://go-review.googlesource.com/20488Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-