runtime: noescape some functions/variables
commitc8632f7a2cf2e0658a01e1b63061c1e0f630308c
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Jan 2018 05:15:52 +0000 (10 05:15 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 10 Jan 2018 05:15:52 +0000 (10 05:15 +0000)
treec910fc6515e88a22e58ae52d5a5d7f80e0cfc982
parenta888f056d9d05b793f531eb0dbc2950b98e9b1ae
runtime: noescape some functions/variables

    This is in preparation of turning on escape analysis for the
    runtime.

    - In gccgo, systemstack is implemented with mcall, which is not
      go:noescape. Wrap the closure in noescape so the escape analysis
      does not think it escapes.

    - Mark some C functions go:noescape. They do not leak arguments.

    - Use noescape function to make a few local variables' addresses
      not escape. The escape analysis cannot figure out because they
      are assigned to pointer indirections.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256418 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/go/gofrontend/MERGE
libgo/go/runtime/panic.go
libgo/go/runtime/proc.go
libgo/go/runtime/signal_gccgo.go
libgo/go/runtime/stubs.go
libgo/go/runtime/traceback_gccgo.go