compiler: move slice construction to callers of makeslice

This is the gccgo version of https://golang.org/cl/141822:

    Only return a pointer p to the new slices backing array from makeslice.
    Makeslice callers then construct sliceheader{p, len, cap} explictly
    instead of makeslice returning the slice.

This change caused the GCC backend to break the runtime/pprof test by
merging together the identical functions allocateReflectTransient and
allocateTransient2M.  This caused the traceback to be other than
expected.  Fix that by making the functions not identical.

This is a step toward updating libgo to the Go1.12beta1 release.

Change-Id: Ib59ea5b909760b4219e5da0fe526fb74fbdc8234
Reviewed-on: https://go-review.googlesource.com/c/155937
Reviewed-by: Cherry Zhang <cherryyz@google.com>
7 files changed