cmd/compile/internal/gc: don't let the argument to Fields.Set escape
cmd/compile/internal/gc: don't let the argument to Fields.Set escape

Apply Robert's optimisation from CL 21241 to Type.Fields. The results
are less impressive, possibly because of the makeup of the test data.

name      old time/op    new time/op    delta
Template     365ms ± 5%     365ms ± 3%    ~     (p=0.888 n=20+16)
Unicode      182ms ±10%     180ms ± 9%    ~     (p=0.883 n=20+20)
GoTypes      1.14s ± 2%     1.13s ± 3%    ~     (p=0.096 n=20+20)
Compiler     5.74s ± 1%     5.76s ± 2%    ~     (p=0.369 n=20+20)

name      old alloc/op   new alloc/op   delta
Template    56.8MB ± 0%    56.7MB ± 0%  -0.15%  (p=0.000 n=19+20)
Unicode     38.3MB ± 0%    38.3MB ± 0%  -0.02%  (p=0.006 n=20+19)
GoTypes      180MB ± 0%     180MB ± 0%  -0.13%  (p=0.000 n=20+20)
Compiler     805MB ± 0%     804MB ± 0%  -0.05%  (p=0.000 n=20+20)

name      old allocs/op  new allocs/op  delta
Template      485k ± 0%      482k ± 0%  -0.54%  (p=0.000 n=19+20)
Unicode       377k ± 0%      377k ± 0%  -0.05%  (p=0.005 n=20+20)
GoTypes      1.37M ± 0%     1.36M ± 0%  -0.53%  (p=0.000 n=20+19)
Compiler     5.42M ± 0%     5.41M ± 0%  -0.21%  (p=0.000 n=20+20)

Change-Id: I6782659fadd605ce9931bf5c737c7058b96a29eb
Reviewed-on: https://go-review.googlesource.com/21296
Reviewed-by: Brad Fitzpatrick <ae9783c0b0efc69cd85ab025ddd17aa44cdc4aa5@golang.org>

golang/go,codestation/go,derekmarcotte/go,ganboing/go-esx,vanloswang/go,nawawi/go,nawawi/go,derekmarcotte/go,goodlang/good,akutz/go,derekmarcotte/go,akutz/go,ganboing/go-esx,derekmarcotte/go,codestation/go,polyverse-security/go,goodlang/good,linux-on-ibm-z/go,vsekhar/elastic-go,ImJasonH/go,codestation/go,golang/go,josharian/go,4ad/go,vsekhar/elastic-go,golang/go,cloudflare/go,miolini/go,suncycheng/go,christopher-henderson/Go,Cofyc/go,ganboing/go-esx,linux-on-ibm-z/go,miolini/go,codestation/go,Cofyc/go,akutz/go,CAFxX/go,akutz/go,josharian/go,4ad/go,derekmarcotte/go,miolini/go,4ad/go,momchil-velikov/go,nawawi/go,goodlang/good,4ad/go,vanloswang/go,polyverse-security/go,theif519/go,4ad/go,polyverse-security/go,derekmarcotte/go,momchil-velikov/go,akutz/go,josharian/go,CAFxX/go,golang/go,momchil-velikov/go,momchil-velikov/go,CAFxX/go,momchil-velikov/go,ImJasonH/go,theif519/go,codestation/go,cloudflare/go,nawawi/go,golang/go,ImJasonH/go,codestation/go,Cofyc/go,cloudflare/go,nawawi/go,suncycheng/go,Cofyc/go,nawawi/go,ImJasonH/go,polyverse-security/go,codestation/go,miolini/go,cloudflare/go,vsekhar/elastic-go,vsekhar/elastic-go,vsekhar/elastic-go,vanloswang/go,goodlang/good,derekmarcotte/go,suncycheng/go,ImJasonH/go,vsekhar/elastic-go,miolini/go,polyverse-security/go,linux-on-ibm-z/go,linux-on-ibm-z/go,theif519/go,momchil-velikov/go,golang/go,theif519/go,josharian/go,josharian/go,suncycheng/go,nawawi/go,miolini/go,CAFxX/go,4ad/go,Cofyc/go,ganboing/go-esx,vsekhar/elastic-go,CAFxX/go,theif519/go,miolini/go,theif519/go,ImJasonH/go,linux-on-ibm-z/go,ganboing/go-esx,goodlang/good,akutz/go,4ad/go,theif519/go,josharian/go,cloudflare/go,suncycheng/go,goodlang/good,cloudflare/go,josharian/go,akutz/go,josharian/go,ImJasonH/go,cloudflare/go,vanloswang/go,ganboing/go-esx,nawawi/go,vsekhar/elastic-go,suncycheng/go,vanloswang/go,suncycheng/go,linux-on-ibm-z/go,Cofyc/go,momchil-velikov/go,golang/go,polyverse-security/go,akutz/go,4ad/go,vanloswang/go,Cofyc/go,golang/go,polyverse-security/go,ganboing/go-esx,linux-on-ibm-z/go,CAFxX/go,derekmarcotte/go,theif519/go,ganboing/go-esx,polyverse-security/go,ImJasonH/go,goodlang/good,goodlang/good,vanloswang/go,vanloswang/go,miolini/go,cloudflare/go,momchil-velikov/go,Cofyc/go,CAFxX/go,suncycheng/go,CAFxX/go,codestation/go,linux-on-ibm-z/go