compiler: use builtin memset for non-pointer memclr
For zeroing a range of memory that doesn't contain pointer, we
can use builtin memset directly.
Corresponding change in the GCC backend:
Index: gcc/go/go-gcc.cc
===================================================================
--- gcc/go/go-gcc.cc (revision 272617)
+++ gcc/go/go-gcc.cc (working copy)
@@ -613,6 +613,15 @@
NULL_TREE),
false, false);
+ // We use __builtin_memset for zeroing data.
+ this->define_builtin(BUILT_IN_MEMSET, "__builtin_memset", "memset",
+ build_function_type_list(void_type_node,
+ ptr_type_node,
+ integer_type_node,
+ size_type_node,
+ NULL_TREE),
+ false, false);
+
// Used by runtime/internal/sys and math/bits.
this->define_builtin(BUILT_IN_CTZ, "__builtin_ctz", "ctz",
build_function_type_list(integer_type_node,
Change-Id: Ide6ca5e285545f0d166ff25828fd7c0380767e0c
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/184438
Reviewed-by: Ian Lance Taylor <iant@golang.org>
3 files changed