runtime, cmd/compile: re-order PCDATA and FUNCDATA indices
The pclntab encoding supports writing only some PCDATA and FUNCDATA values.
However, the encoding is dense: The max index in use determines the space used.
We should thus choose a numbering in which frequently used indices are smaller.
This change re-orders the PCDATA and FUNCDATA indices using that principle,
using a quick and dirty instrumentation to measure index frequency.
It shrinks binaries by about 0.5%.
Updates #6853
file      before    after     Δ       %
go        
14745044  14671316  -73728  -0.500%
addr2line 
4305128   4280552   -24576  -0.571%
api       
6095800   6058936   -36864  -0.605%
asm       
4930928   4906352   -24576  -0.498%
buildid   
2881520   2861040   -20480  -0.711%
cgo       
4896584   4867912   -28672  -0.586%
compile   
25868408  25770104  -98304  -0.380%
cover     
5319656   5286888   -32768  -0.616%
dist      
3654528   3634048   -20480  -0.560%
doc       
4719672   4691000   -28672  -0.607%
fix       
3418312   3393736   -24576  -0.719%
link      
6137952   6109280   -28672  -0.467%
nm        
4250536   4225960   -24576  -0.578%
objdump   
4665192   4636520   -28672  -0.615%
pack      
2297488   2285200   -12288  -0.535%
pprof     
14735332  14657508  -77824  -0.528%
test2json 
2834952   2818568   -16384  -0.578%
trace     
11679964  11618524  -61440  -0.526%
vet       
8452696   8403544   -49152  -0.581%
Change-Id: I30665dce57ec7a52e7d3c6718560b3aa5b83dd0b
Reviewed-on: https://go-review.googlesource.com/c/go/+/171760
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>