]> git.ipfire.org Git - thirdparty/gcc.git/commit
runtime: copy channel code from Go 1.7 runtime
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Oct 2016 16:52:09 +0000 (16:52 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Oct 2016 16:52:09 +0000 (16:52 +0000)
commit132ed071e11bca271a9aa63784827a182eb0f5c2
tree6033d9fc6d1e3f5c3019c9b13d28e70655697a67
parent2189196c4c2bfa189d24b1b0c55bf976c49765a8
runtime: copy channel code from Go 1.7 runtime

    Change the compiler to use the new routines. Drop the separation of
    small and large values when sending on a channel. Allocate the select
    struct on the stack. Remove the old C implementation of channels. Adjust
    the garbage collector for the new data structure.

    Bring in part of the tracing code, enough for the channel code to call.

    Bump the permitted number of allocations in one of the tests in
    context_test.go. The difference is that now receiving from a channel
    allocates a sudog, which the C code used to simply put on the
    stack. This will be somewhat better when we port proc.go.

    Reviewed-on: https://go-review.googlesource.com/30714

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@240941 138bc75d-0d04-0410-961f-82ee72b054a4
23 files changed:
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/escape.cc
gcc/go/gofrontend/expressions.cc
gcc/go/gofrontend/runtime.def
gcc/go/gofrontend/statements.cc
gcc/go/gofrontend/types.cc
gcc/go/gofrontend/types.h
libgo/Makefile.am
libgo/Makefile.in
libgo/go/context/context_test.go
libgo/go/runtime/chan.go [new file with mode: 0644]
libgo/go/runtime/runtime2.go
libgo/go/runtime/select.go [new file with mode: 0644]
libgo/go/runtime/stubs.go
libgo/go/runtime/trace.go [new file with mode: 0644]
libgo/runtime/chan.goc [deleted file]
libgo/runtime/chan.h [deleted file]
libgo/runtime/go-cgo.c
libgo/runtime/heapdump.c
libgo/runtime/mgc0.c
libgo/runtime/proc.c
libgo/runtime/runtime.h
libgo/runtime/sema.goc