compiler: stack allocate storage for temp slices.
During the lowering phase, the variable arguments to a varargs call are packaged up into a temporary slice object; the storage for this slice was being unconditionally allocated on the heap. Heap allocation is not necessary, however, if the varargs call correspond to an "append", since the append runtime routine only reads the slice storage (as opposed to stashing away the storage pointer). Enhance the lowering code to keep the slice storage on the stack for append() calls, to improve performance. Addresses issue golang/go#17304. Reviewed-on: https://go-review.googlesource.com/30136 From-SVN: r240853
Showing
Please
register
or
sign in
to comment