runtime: implement string ops in Go
Also implement go:nosplit annotation. Not really needed
for now, but we'll definitely need it for other conversions.
benchmark old ns/op new ns/op delta
BenchmarkRuneIterate 534 474 -11.24%
BenchmarkRuneIterate2 535 470 -12.15%
On 2014/06/16 23:52:04, khr wrote: > Hello mailto:golang-codereviews@googlegroups.com, > > I'd like you to review ...
10 years, 12 months ago
(2014-06-17 00:00:13 UTC)
#2
On 2014/06/16 23:52:04, khr wrote:
> Hello mailto:golang-codereviews@googlegroups.com,
>
> I'd like you to review this change to
> https://khr%40golang.org@code.google.com/p/go/
Thanks Keith. How would you feel about splitting out the eqstring -> asm change
into its own CL ?
just looked at the assembly files. you also need to make changes to asm_amd64p32.s. https://codereview.appspot.com/93380044/diff/260001/src/pkg/runtime/asm_arm.s ...
10 years, 12 months ago
(2014-06-17 00:17:31 UTC)
#4
*** Submitted as https://code.google.com/p/go/source/detail?r=7f0999348917 *** runtime: implement string ops in Go Also implement go:nosplit annotation. ...
10 years, 12 months ago
(2014-06-17 06:03:11 UTC)
#6
*** Submitted as https://code.google.com/p/go/source/detail?r=7f0999348917 ***
runtime: implement string ops in Go
Also implement go:nosplit annotation. Not really needed
for now, but we'll definitely need it for other conversions.
benchmark old ns/op new ns/op delta
BenchmarkRuneIterate 534 474 -11.24%
BenchmarkRuneIterate2 535 470 -12.15%
LGTM=bradfitz
R=golang-codereviews, dave, bradfitz, minux
CC=golang-codereviews
https://codereview.appspot.com/93380044
I should add that you can run go vet to check assembly for other architectures ...
10 years, 12 months ago
(2014-06-17 16:24:10 UTC)
#9
Message was sent while issue was closed.
I should add that you can run go vet to check assembly for other architectures
by using (for example)
GOARCH=amd64p32 go vet runtime
GOARCH=arm go vet runtime
https://codereview.appspot.com/93380044/diff/340001/src/pkg/runtime/string.go File src/pkg/runtime/string.go (right): https://codereview.appspot.com/93380044/diff/340001/src/pkg/runtime/string.go#newcode42 src/pkg/runtime/string.go:42: //go:nosplit Are these go:nosplits necessary? I am running into ...
10 years, 10 months ago
(2014-08-14 18:21:48 UTC)
#10
These nosplits are not necessary. They just emulate what we had in C and lower ...
10 years, 10 months ago
(2014-08-17 04:07:58 UTC)
#11
These nosplits are not necessary. They just emulate what we had in C and
lower the function overhead by a tiny bit.
On Thu, Aug 14, 2014 at 11:21 AM, <rsc@golang.org> wrote:
>
> https://codereview.appspot.com/93380044/diff/340001/src/
> pkg/runtime/string.go
> File src/pkg/runtime/string.go (right):
>
> https://codereview.appspot.com/93380044/diff/340001/src/
> pkg/runtime/string.go#newcode42
> src/pkg/runtime/string.go:42: //go:nosplit
> Are these go:nosplits necessary? I am running into nosplit chains being
> too large here on power64, and I think I can just remove the
> go:nosplits.
>
> The original C version was nosplit because it took an int and a list of
> strings, and the split wouldn't know how big a list to copy. That's not
> an issue here.
>
> https://codereview.appspot.com/93380044/
>
On Aug 17, 2014 12:07 AM, "Keith Randall" <khr@google.com> wrote: > These nosplits are not ...
10 years, 10 months ago
(2014-08-17 06:13:15 UTC)
#12
On Aug 17, 2014 12:07 AM, "Keith Randall" <khr@google.com> wrote:
> These nosplits are not necessary. They just emulate what we had in C and
lower the function overhead by a tiny bit.
thanks for confirmation, due to lack of optimization, on the power64
branch, their NOSPLIT flags are removed.
Issue 93380044: code review 93380044: runtime: implement string ops in Go
(Closed)
Created 11 years, 1 month ago by khr
Modified 10 years, 10 months ago
Reviewers: gobot, rsc, khr1
Base URL:
Comments: 15