1
0
mirror of https://github.com/golang/go synced 2024-11-18 17:34:51 -07:00
go/src
Josh Bleecher Snyder 566e3e074c cmd/compile: avoid runtime call during switch string(byteslice)
This triggers three times while building std,
once in image/png and twice in go/internal/gccgoimporter.

There are no instances in std in which a more aggressive
optimization would have triggered.

This doesn't necessarily avoid an allocation,
because escape analysis is already able in many cases
to use a temporary backing for the string,
but it does at a minimum avoid the runtime call and copy.

Fixes #24937

Change-Id: I7019e85638ba8cd7e2f03890e672558b858579bc
Reviewed-on: https://go-review.googlesource.com/108035
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2018-04-21 00:50:50 +00:00
..
archive go/printer, gofmt: tuned table alignment for better results 2018-04-04 13:39:34 -07:00
bufio bufio: document ReadFrom/WriteTo calls to underlying methods 2018-03-28 22:21:52 +00:00
builtin
bytes internal/bytealg: move short string Index implementations into bytealg 2018-03-04 19:49:44 +00:00
cmd cmd/compile: avoid runtime call during switch string(byteslice) 2018-04-21 00:50:50 +00:00
compress compress/flate: optimize huffSym 2018-04-17 22:37:49 +00:00
container container/heap: fix comments style 2018-04-11 20:11:09 +00:00
context context: avoid defer in the cancelCtx.Err method 2018-04-15 21:35:53 +00:00
crypto syscall: introduce Pointer type and use it instead of uintptr 2018-04-18 08:50:42 +00:00
database/sql database/sql: remove unnecessary else conditions 2018-04-19 18:57:52 +00:00
debug debug/elf: add riscv64 relocations 2018-04-18 13:19:31 +00:00
encoding encoding/json: remove unnecessary if conditions 2018-04-20 01:41:41 +00:00
errors
expvar all: use strings.Builder instead of bytes.Buffer where appropriate 2018-03-26 23:05:53 +00:00
flag flag: correct zero values when printing defaults 2018-04-01 20:17:22 +00:00
fmt fmt: make %v doc for compound objects consistent 2018-04-17 23:47:44 +00:00
go go/internal/gcimporter: extract ChanDir and fake FileSet logic 2018-04-17 23:47:04 +00:00
hash
html text/template: copy Decl field when copying PipeNode 2018-04-10 14:26:58 +00:00
image all: fix non-standard "DO NOT EDIT" comments for generated files 2018-03-10 17:50:11 +00:00
index/suffixarray
internal net: document caveats for (*syscall.RawConn).Write on Windows 2018-04-21 00:48:00 +00:00
io io/ioutil: change TempFile prefix to a pattern 2018-04-12 20:00:25 +00:00
log log: Remove unnecessary else 2017-10-25 05:02:37 +00:00
math math: add a testcase for Mod and Remainder respectively 2018-04-17 03:17:22 +00:00
mime mime: add wasm architecture 2018-04-13 20:20:12 +00:00
net net: document caveats for (*syscall.RawConn).Write on Windows 2018-04-21 00:48:00 +00:00
os os: fix typo in comment 2018-04-20 18:35:51 +00:00
path path/filepath: change example to print the correct path on failure 2018-03-26 17:40:01 +00:00
plugin
reflect reflect: define MyBuffer more locally in TestImplicitMapConversion 2018-04-18 12:47:39 +00:00
regexp regexp: use sync.Pool to cache regexp.machine objects 2018-04-03 16:03:19 +00:00
runtime runtime: specify behavior of SetMutexProfileFraction for negative values 2018-04-19 17:03:45 +00:00
sort sort: fix typo, was a mixup between identifiers 'unsorted' and 'data' 2018-03-19 13:09:29 +00:00
strconv strconv: make code formatting more consistent in doc.go 2018-03-19 12:53:16 +00:00
strings strings: fix flaky TestBuilderGrow test 2018-04-03 00:11:46 +00:00
sync sync/atomic: use package prefix in examples 2018-04-18 23:58:54 +00:00
syscall syscall: avoid extra syscall on send/recvmsg on Linux 2018-04-19 22:16:24 +00:00
testing testing: failfast fails fast when Fatal called 2018-04-17 04:02:53 +00:00
text text/template: improve comment example in doc 2018-04-19 09:21:51 +00:00
time time: increase test coverage for Time.Sub 2018-04-16 21:14:40 +00:00
unicode
unsafe
vendor/golang_org/x net/http: omit forbidden Trailer headers from response 2018-04-16 17:44:41 +00:00
all.bash
all.bat
all.rc
androidtest.bash androidtest.bash: don't require GOARCH set 2018-03-07 14:01:43 +00:00
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash iostest.bash: don't build std library twice 2018-03-06 16:08:20 +00:00
make.bash
make.bat
Make.dist
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash src/run.bash: remove some trailing whitespace 2018-04-01 16:12:47 +00:00
run.bat
run.rc