aboutsummaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2019-05-03 21:45:35 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-05-03 21:45:35 +0000
commit08c8a26e9ca87ad2dd5b26d397e6107b68adfe76 (patch)
tree72997940c63241636375f8e4b4565d8f6301b724 /libgo
parente339291fc13d074bade3fd9ab3cbfacce5a21cbd (diff)
downloadgcc-08c8a26e9ca87ad2dd5b26d397e6107b68adfe76.zip
gcc-08c8a26e9ca87ad2dd5b26d397e6107b68adfe76.tar.gz
gcc-08c8a26e9ca87ad2dd5b26d397e6107b68adfe76.tar.bz2
compiler: recognize and optimize array range clear
Recognize for i := range a { a[i] = zero } for array or slice a, and rewrite it to call memclr, as the gc compiler does. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/169398 From-SVN: r270862
Diffstat (limited to 'libgo')
-rw-r--r--libgo/go/runtime/mbarrier.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/libgo/go/runtime/mbarrier.go b/libgo/go/runtime/mbarrier.go
index d3ffd3c..89febb9 100644
--- a/libgo/go/runtime/mbarrier.go
+++ b/libgo/go/runtime/mbarrier.go
@@ -23,6 +23,7 @@ import (
//
//go:linkname typedmemmove runtime.typedmemmove
//go:linkname typedslicecopy runtime.typedslicecopy
+//go:linkname memclrHasPointers runtime.memclrHasPointers
// Go uses a hybrid barrier that combines a Yuasa-style deletion
// barrier—which shades the object whose reference is being