compiler, runtime: allocate defer records on the stack
authorIan Lance Taylor <ian@gcc.gnu.org>
Sat, 17 Aug 2019 23:43:08 +0000 (23:43 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Sat, 17 Aug 2019 23:43:08 +0000 (23:43 +0000)
commite68035acfd6997ed97eb32aec4f277f3b6858550
treef0e21a4a0680568bf5045771a16e20292aad1cfc
parentb9a21efdea18862f79c68ceb2eee0704844ead53
compiler, runtime: allocate defer records on the stack

    When a defer is executed at most once in a function body,
    we can allocate the defer record for it on the stack instead
    of on the heap.

    This should make defers like this (which are very common) faster.

    This is a port of CL 171758 from the gc repo.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190410

From-SVN: r274613
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/runtime.def
gcc/go/gofrontend/statements.cc
gcc/go/gofrontend/statements.h
libgo/go/runtime/mgcmark.go
libgo/go/runtime/panic.go
libgo/go/runtime/runtime2.go
libgo/go/runtime/stack_test.go [new file with mode: 0644]