compiler: statically allocate constant interface data
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 5 Jun 2019 00:18:17 +0000 (00:18 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 5 Jun 2019 00:18:17 +0000 (00:18 +0000)
commit34f66a53b4f529f17643c1c1fc68dd3ae3f338ea
tree0bd3561a889220cfb173c2bdcb4e8cdbe9cf64fb
parentabccc5d2198f9bac2f09680bb9fb6882bfeae087
compiler: statically allocate constant interface data

    When converting a constant to interface, such as interface{}(42)
    or interface{}("hello"), if the interface escapes, we currently
    generate a heap allocation to hold the constant value.

    This CL changes it to generate a static allocation instead, as
    the gc compiler does. This reduces allocations in such cases.

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

From-SVN: r271945
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/expressions.cc