On Thu, Jan 18, 2018 at 11:53 AM, Rainer Orth
<r...@cebitec.uni-bielefeld.de> wrote:
>
>> This patch to the Go frontend by Cherry Zhang enables escape analysis
>> for the runtime package in the Go frontend.  The runtime package was
>> hard-coded non-escape, and the escape analysis was not run for the
>> runtime package.  This patch removes the hard-code, and lets the
>> escape analysis decide.  It is not allowed for local variables and
>> closures in the runtime to be heap allocated. This patch adds the
>> check that make sure that they indeed do not escape.
>>
>> The escape analysis is always run when compiling the runtime now.
>>
>> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
>> to mainline.
>
> this broke Solaris bootstrap:
>
> /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:182:57: 
> error: n escapes to heap, not allowed in runtime
>   if port_getn(portfd, &events[0], uint32(len(events)), &n, wait) < 0 {
>                                                          ^
> /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:176:11: 
> error: zero escapes to heap, not allowed in runtime
>    wait = &zero
>            ^
> /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:174:6: error: 
> .runtime.zero escapes to heap, not allowed in runtime
>   var zero timespec
>       ^
> /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:179:6: error: 
> .runtime.events escapes to heap, not allowed in runtime
>   var events [128]portevent
>       ^
> /vol/gcc/src/hg/trunk/local/libgo/go/runtime/netpoll_solaris.go:181:6: error: 
> .runtime.n escapes to heap, not allowed in runtime
>   var n uint32 = 1
>       ^
>
> Fixed as follows.  i386-pc-solaris2.11 and sparc-sun-solaris2.11 builds
> have completed, make check still running.

Thanks, patch committed.

Ian

Reply via email to