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