runtime: noescape some functions/variables
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Jan 2018 05:15:52 +0000 (05:15 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Jan 2018 05:15:52 +0000 (05:15 +0000)
commite4876be5f5c5524ea742527100e36c5095181b28
treec910fc6515e88a22e58ae52d5a5d7f80e0cfc982
parentfe9e1702687db062ad2f13939177e1c5f68c8e05
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

From-SVN: r256418
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