This Go patch by Cherry Zhang open codes string slice expressions. Currently a string slice expression is implemented with a runtime call __go_string_slice. Change it to open code it, which is more efficient, and allows the backend to further optimize it. Also omit the write barrier for length-only update (i.e. s = s[:n]). Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline.
The actual patch is being rejected by GMail and has been omitted. I really don't know what causes that to happen some times. You can see the patch at https://golang.org/cl/182540 or https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=272549 . Ian