compiler: enable escape analysis for runtime

The runtime package was hard-coded non-escape, and the escape
analysis was not run for the runtime package. This CL 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 CL adds the check that make sure that they
indeed do not escape.

The escape analysis is always run when compiling the runtime
now.

Fixes golang/go#17431

Change-Id: I6758cd67d0eac42afd9a6757c9997726c65e94fd
Reviewed-on: https://go-review.googlesource.com/86246
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Chris Manghane <cmang@golang.org>
4 files changed