r274890 - in /trunk: gcc/go/gofrontend/MERGE gc...
ian@gcc.gnu.org
ian@gcc.gnu.org
Fri Aug 23 22:38:00 GMT 2019
Author: ian
Date: Fri Aug 23 22:38:58 2019
New Revision: 274890
URL: https://gcc.gnu.org/viewcvs?rev=274890&root=gcc&view=rev
Log:
compiler: record pointer var values to remove write barriers
Record when a local pointer variable is set to a value such that
indirecting through the pointer does not require a write barrier. Use
that to eliminate write barriers when indirecting through that local
pointer variable. Only keep this information per-block, so it's not
all that applicable.
This reduces the number of write barriers generated when compiling the
runtime package from 553 to 524.
The point of this is to eliminate a bad write barrier in the bytes
function in runtime/print.go. Mark that function nowritebarrier so
that the problem does not recur.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191581
Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/gcc/go/gofrontend/expressions.cc
trunk/gcc/go/gofrontend/gogo.h
trunk/gcc/go/gofrontend/wb.cc
trunk/libgo/go/runtime/print.go
More information about the Gcc-cvs
mailing list