compiler: move slice construction to callers of makeslice

This is the gccgo version of

    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-by: Cherry Zhang <>
7 files changed