Matthew Dempsky
f91b832ab5
cmd/compile: rename Recv->Recvs and Recv0->Recv
...
Change-Id: Ice3aa807169f4fec85745a3991b1084a9f85c1b5
Reviewed-on: https://go-review.googlesource.com/20499
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-03-10 05:52:24 +00:00
Ian Lance Taylor
cd6619d2e6
cmd/compile: remove remaining nodeSeqIterate calls
...
Mix in several other minor cleanups, including adding some new methods
to Nodes: Index, Addr, SetIndex, SetNodes.
Passes toolstash -cmp.
Update #14473 .
Change-Id: I8bd4ae3fde7c5e20ba66e7dd1654fbc70c3ddeb8
Reviewed-on: https://go-review.googlesource.com/20491
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-09 22:52:11 +00:00
Ian Lance Taylor
38921b36ba
cmd/compile: rewrite code to omit many nodeSeq calls
...
This CL was automatically generated using a special-purpose AST
rewriting tool, followed by manual editing to put some comments back in
the right places and fix some bad line breaks.
The result is not perfect but it's a big step toward getting back to
sanity, and because it was automatically generated there is a decent
chance that it is correct.
Passes toolstash -cmp.
Update #14473 .
Change-Id: I01c09078a6d78e2b008bc304d744b79469a38d3d
Reviewed-on: https://go-review.googlesource.com/20440
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-09 01:39:33 +00:00
Matthew Dempsky
db506fe98c
cmd/compile: change get{this,inarg,outarg}x? into methods
...
More idiomatic naming (in particular, matches the naming used for
go/types.Signature).
Also, convert more code to use these methods and/or IterFields.
(Still more to go; only made a quick pass for low hanging fruit.)
Passes toolstash -cmp.
Change-Id: I61831bfb1ec2cd50d4c7efc6062bca4e0dcf267b
Reviewed-on: https://go-review.googlesource.com/20451
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-03-09 01:29:18 +00:00
Matthew Dempsky
4720f49e18
cmd/compile: relocate a bunch of Type-related code
...
Some cleaned up documentation, but no code changes.
Change-Id: I145398bb6d118c626ab3873ef75dbb64ebc286e9
Reviewed-on: https://go-review.googlesource.com/20404
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-03-08 22:58:01 +00:00
Brad Fitzpatrick
b330987711
cmd/compile: fix old comment references to go.y
...
Change-Id: Iec323998133ef20ff962f06a46d15dd342a82f5f
Reviewed-on: https://go-review.googlesource.com/20390
Reviewed-by: Ian Lance Taylor <iant@golang.org>
2016-03-08 20:59:41 +00:00
Ian Lance Taylor
c4012b6bbb
cmd/compile: remove nodesOrNodeList outside of syntax.go
...
Passes toolstash -cmp.
Update #14473 .
Change-Id: I717ebd948dfc8faf8b9ef5aa02c67484af618d18
Reviewed-on: https://go-review.googlesource.com/20359
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-08 18:54:23 +00:00
Ian Lance Taylor
2a68c6c27c
cmd/compile: more nodeSeq conversions
...
Found by temporarily flipping fields from *NodeList to Nodes and fixing
all the compilation errors. This CL does not actually change any
fields.
Passes toolstash -cmp.
Update #14473 .
Change-Id: Ib98fa37e8752f96358224c973a743618a6a0e736
Reviewed-on: https://go-review.googlesource.com/20320
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-07 18:31:54 +00:00
Matthew Dempsky
c3dfad5df9
cmd/compile: change Oconv to take an Op parameter
...
Eliminates type conversions in a bunch of Oconv(int(n.Op), ...) calls.
Notably, this identified a misuse of Oconv in amd64/gsubr.go to try to
print an assembly instruction op instead of a compiler node op.
Change-Id: I93b5aa49fe14a5eaf868b05426d3b8cd8ab52bc5
Reviewed-on: https://go-review.googlesource.com/20298
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-03-07 17:27:05 +00:00
Ian Lance Taylor
55c65d4a97
cmd/compile: change export.go and fmt.go to use nodeSeq
...
Also fix some uses of nodeSeqIterator.Len, and fix the implementation in
nodesIterator.
Passes toolstash -cmp.
Update #14473 .
Change-Id: I228871470234b7f1314ffd2aae8a4c0624c35f98
Reviewed-on: https://go-review.googlesource.com/20231
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-03-04 21:46:30 +00:00
Ian Lance Taylor
ca56c590d4
cmd/compile: add setNodeSeq, and use it in bimport.go
...
Also rewrite bexport.go to use nodeSeqIterate.
The new setNodeSeq is a transitional generic function to set either a
NodeList or a slice to either a NodeList or a slice. This should permit
us to flip fields from *NodeList to []*Node, or Nodes, without changing
other code.
Passes toolstash -cmp.
Change-Id: I872cbfe45bc5f432595737c1f6da641c502b1ab6
Reviewed-on: https://go-review.googlesource.com/20194
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-03 22:28:00 +00:00
Robert Griesemer
4598382724
cmd/compile/internal/gc: export & import function bodies, but don't hook up
...
Function bodies are not yet hooked up because the node structure is not
100% correct. This commit establishes that we can correctly write bodies
out and read them in again.
- export and import all exported inlined function bodies:
(export GO_GCFLAGS="-newexport"; sh all.bash) working
- inlined functions are not yet hooked up (just dropped on the floor)
- improved tracing output and error messages
- make mkbuiltin.go work for both textual and binary export data
so we can run tests with the new format
Change-Id: I70dc4de419df1b604389c3747041d6dba8730b0b
Reviewed-on: https://go-review.googlesource.com/16284
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-03-02 22:26:40 +00:00
Ian Lance Taylor
1d5001afef
cmd/compile: change Node.Nbody, Func.Inl from *NodeList to Nodes
...
Passes toolstash -cmp.
Casual timings show about a 3% improvement in compile times.
Update #14473 .
Change-Id: I584add2e8f1a52486ba418b25ba6122b7347b643
Reviewed-on: https://go-review.googlesource.com/19989
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2016-02-29 00:33:32 +00:00
Martin Möhrmann
fdd0179bb1
all: fix typos and spelling
...
Change-Id: Icd06d99c42b8299fd931c7da821e1f418684d913
Reviewed-on: https://go-review.googlesource.com/19829
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-02-24 18:42:29 +00:00
Matthew Dempsky
d930d69fd9
cmd/compile: make -A and -newexport compatible
...
Packages compiled with -A may reference the builtin "any" type, so it
needs to be included in the list of predeclared types for binary
import/export.
Also, when -A is used, mark all symbols as SymExport instead of
SymPackage in importsym. This parallels the logic in autoexport and
is necessary to prevent a "export/package mismatch" errors in
exportsym during dumpexport's verifyExport pass.
Change-Id: Iff5ec5fbfe2219525ec9d1a975307fa8936af9b9
Reviewed-on: https://go-review.googlesource.com/19627
Reviewed-by: Robert Griesemer <gri@golang.org>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
2016-02-19 21:42:04 +00:00
Nathan VanBenschoten
b04f3b06ec
all: replace strings.Index with strings.Contains where possible
...
Change-Id: Ia613f1c37bfce800ece0533a5326fca91d99a66a
Reviewed-on: https://go-review.googlesource.com/18120
Reviewed-by: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
2016-02-19 01:06:05 +00:00
Robert Griesemer
53d43cb556
cmd/compile/internal/gc: introduce type for untyped constant kinds
...
Change-Id: Ia34b6dd099d07d5e1d4bffe775a20fa92705fdb0
Reviewed-on: https://go-review.googlesource.com/16335
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
2015-10-26 23:36:22 +00:00
Robert Griesemer
e6ccfc1ad1
cmd/compile/internal/gc: escape binary export data so it contains no '$'
...
Necessary to ensure that subsequent tools can continue to find
then end of the export data section simply by searching for "$$".
Adjusted gcimporter used by go/types accordingly.
Also, fixed a bug in gcimporter related to reading export data
in debug format.
Change-Id: Iaea4ed05edd8a5bab28ebe5b19a4740f5e537d35
Reviewed-on: https://go-review.googlesource.com/16283
Reviewed-by: Chris Manghane <cmang@golang.org>
2015-10-26 17:27:17 +00:00
Robert Griesemer
79a3b561b5
cmd/compile/internal/gc: remove special handling for -0.0
...
Per the latest spec change, Go doesn't have -0 constants.
Change-Id: Ic2bcdc3bf507d121ed204f30f6744bb8764202c0
Reviewed-on: https://go-review.googlesource.com/16232
Reviewed-by: Chris Manghane <cmang@golang.org>
2015-10-22 21:19:43 +00:00
Robert Griesemer
ae2f54a771
cmd/compile/internal/gc: compact binary export format
...
The binary import/export format is significantly more
compact than the existing textual format. It should
also be faster to read and write (to be measured).
Use -newexport to enable, for instance:
export GO_GCFLAGS=-newexport; make.bash
The compiler can import packages using both the old
and the new format ("mixed mode").
Missing: export info for inlined functions bodies
(performance issue, does not affect correctness).
Disabled by default until we have inlined function
bodies and confirmation of no regression and equality
of binaries.
For #6110 .
For #1909 .
This change depends on:
https://go-review.googlesource.com/16220
https://go-review.googlesource.com/16222
(already submitted) for all.bash to work.
Some initial export data sizes for std lib packages. This data
is without exported functions with inlineable function bodies.
Package old new new/old
archive/tar.................................13875.....3883 28%
archive/zip.................................19464.....5046 26%
bufio....................................... 7733.....2222 29%
bytes.......................................10342.....3347 32%
cmd/addr2line.................................242.......26 11%
cmd/api.....................................39305....10368 26%
cmd/asm/internal/arch.......................27732.....7939 29%
cmd/asm/internal/asm........................35264....10295 29%
cmd/asm/internal/flags........................629......178 28%
cmd/asm/internal/lex........................39248....11128 28%
cmd/asm.......................................306.......26 8%
cmd/cgo.....................................40197....10570 26%
cmd/compile/internal/amd64...................1106......214 19%
cmd/compile/internal/arm....................27891.....7710 28%
cmd/compile/internal/arm64....................891......153 17%
cmd/compile/internal/big....................21637.....8336 39%
cmd/compile/internal/gc....................109845....29727 27%
cmd/compile/internal/mips64...................972......168 17%
cmd/compile/internal/ppc64....................972......168 17%
cmd/compile/internal/x86.....................1104......195 18%
cmd/compile...................................329.......26 8%
cmd/cover...................................12986.....3749 29%
cmd/dist......................................477.......67 14%
cmd/doc.....................................23043.....6793 29%
cmd/expdump...................................167.......26 16%
cmd/fix......................................1190......208 17%
cmd/go......................................26399.....5629 21%
cmd/gofmt.....................................499.......26 5%
cmd/internal/gcprog..........................1342......490 37%
cmd/internal/goobj...........................2690......980 36%
cmd/internal/obj/arm........................32740....10057 31%
cmd/internal/obj/arm64......................46542....15364 33%
cmd/internal/obj/mips.......................42140....13731 33%
cmd/internal/obj/ppc64......................42140....13731 33%
cmd/internal/obj/x86........................52732....19015 36%
cmd/internal/obj............................36729....11690 32%
cmd/internal/objfile........................36365....10287 28%
cmd/link/internal/amd64.....................45893....12220 27%
cmd/link/internal/arm.........................307.......96 31%
cmd/link/internal/arm64.......................345.......98 28%
cmd/link/internal/ld.......................109300....46326 42%
cmd/link/internal/ppc64.......................344.......99 29%
cmd/link/internal/x86.........................334......107 32%
cmd/link......................................314.......26 8%
cmd/newlink..................................8110.....2544 31%
cmd/nm........................................210.......26 12%
cmd/objdump...................................244.......26 11%
cmd/pack....................................14248.....4066 29%
cmd/pprof/internal/commands..................5239.....1285 25%
cmd/pprof/internal/driver...................37967.....8860 23%
cmd/pprof/internal/fetch....................30962.....7337 24%
cmd/pprof/internal/plugin...................47734.....7719 16%
cmd/pprof/internal/profile..................22286.....6922 31%
cmd/pprof/internal/report...................31187.....7838 25%
cmd/pprof/internal/svg.......................4315......965 22%
cmd/pprof/internal/symbolizer...............30051.....7397 25%
cmd/pprof/internal/symbolz..................28545.....6949 24%
cmd/pprof/internal/tempfile.................12550.....3356 27%
cmd/pprof.....................................563.......26 5%
cmd/trace....................................1455......636 44%
cmd/vendor/golang.org/x/arch/arm/armasm....168035....64737 39%
cmd/vendor/golang.org/x/arch/x86/x86asm.....26871.....8578 32%
cmd/vet.....................................38980.....9913 25%
cmd/vet/whitelist.............................102.......49 48%
cmd/yacc.....................................2518......926 37%
compress/bzip2...............................6326......129 2%
compress/flate...............................7069.....2541 36%
compress/gzip...............................20143.....5069 25%
compress/lzw..................................828......295 36%
compress/zlib...............................10676.....2692 25%
container/heap................................523......181 35%
container/list...............................3517......740 21%
container/ring................................881......229 26%
crypto/aes....................................550......187 34%
crypto/cipher................................1966......825 42%
crypto.......................................1836......646 35%
crypto/des....................................632......235 37%
crypto/dsa..................................18718.....5035 27%
crypto/ecdsa................................23131.....6097 26%
crypto/elliptic.............................20790.....5740 28%
crypto/hmac...................................455......186 41%
crypto/md5...................................1375......171 12%
crypto/rand.................................18132.....4748 26%
crypto/rc4....................................561......240 43%
crypto/rsa..................................22094.....6380 29%
crypto/sha1..................................1416......172 12%
crypto/sha256.................................551......238 43%
crypto/sha512.................................839......378 45%
crypto/subtle................................1153......250 22%
crypto/tls..................................58203....17984 31%
crypto/x509/pkix............................29447.....8161 28%
database/sql/driver..........................3318.....1096 33%
database/sql................................11258.....3942 35%
debug/dwarf.................................18416.....7006 38%
debug/elf...................................57530....21014 37%
debug/gosym..................................4992.....2058 41%
debug/macho.................................23037.....6538 28%
debug/pe....................................21063.....6619 31%
debug/plan9obj...............................2467......802 33%
encoding/ascii85.............................1523......360 24%
encoding/asn1................................1718......527 31%
encoding/base32..............................2642......686 26%
encoding/base64..............................3077......800 26%
encoding/binary..............................4727.....1040 22%
encoding/csv................................12223.....2850 23%
encoding......................................383......217 57%
encoding/gob................................37563....10113 27%
encoding/hex.................................1327......390 29%
encoding/json...............................30897.....7804 25%
encoding/pem..................................595......200 34%
encoding/xml................................37798.....9336 25%
errors........................................274.......36 13%
expvar.......................................3155.....1021 32%
flag........................................19860.....2849 14%
fmt..........................................3137.....1263 40%
go/ast......................................44729....13422 30%
go/build....................................16336.....4657 29%
go/constant..................................3703......846 23%
go/doc.......................................9877.....2807 28%
go/format....................................5472.....1575 29%
go/importer..................................4980.....1301 26%
go/internal/gccgoimporter....................5587.....1525 27%
go/internal/gcimporter.......................8979.....2186 24%
go/parser...................................20692.....5304 26%
go/printer...................................7015.....2029 29%
go/scanner...................................9719.....2824 29%
go/token.....................................7933.....2465 31%
go/types....................................64569....19978 31%
hash/adler32.................................1176......176 15%
hash/crc32...................................1663......360 22%
hash/crc64...................................1587......306 19%
hash/fnv.....................................3964......260 7%
hash..........................................591......278 47%
html..........................................217.......74 34%
html/template...............................69623....12588 18%
image/color/palette...........................315.......98 31%
image/color..................................5565.....1036 19%
image/draw...................................6917.....1028 15%
image/gif....................................8894.....1654 19%
image/internal/imageutil.....................9112.....1476 16%
image/jpeg...................................6647.....1026 15%
image/png....................................6906.....1069 15%
image.......................................28992.....6139 21%
index/suffixarray...........................17106.....4773 28%
internal/singleflight........................1614......506 31%
internal/testenv............................12212.....3152 26%
internal/trace...............................2762.....1323 48%
io/ioutil...................................13502.....3682 27%
io...........................................6765.....2482 37%
log.........................................11620.....3317 29%
log/syslog..................................13516.....3821 28%
math/big....................................21819.....8320 38%
math/cmplx...................................2816......438 16%
math/rand....................................2317......929 40%
math.........................................7511.....2444 33%
mime/multipart..............................12679.....3360 27%
mime/quotedprintable.........................5458.....1235 23%
mime.........................................6076.....1628 27%
net/http/cgi................................59796....17173 29%
net/http/cookiejar..........................14781.....3739 25%
net/http/fcgi...............................57861....16426 28%
net/http/httptest...........................84100....24365 29%
net/http/httputil...........................67763....18869 28%
net/http/internal............................6907......637 9%
net/http/pprof..............................57945....16316 28%
net/http....................................95391....30210 32%
net/internal/socktest........................4555.....1453 32%
net/mail....................................14481.....3608 25%
net/rpc/jsonrpc.............................33335......988 3%
net/rpc.....................................79950....23106 29%
net/smtp....................................57790....16468 28%
net/textproto...............................11356.....3248 29%
net/url......................................3123.....1009 32%
os/exec.....................................20738.....5769 28%
os/signal.....................................437......167 38%
os..........................................24875.....6668 27%
path/filepath...............................11340.....2826 25%
path..........................................778......285 37%
reflect.....................................15469.....5198 34%
regexp......................................13627.....4661 34%
regexp/syntax................................5539.....2249 41%
runtime/debug................................9275.....2322 25%
runtime/pprof................................1355......477 35%
runtime/race...................................39.......17 44%
runtime/trace.................................228.......92 40%
runtime.....................................13498.....1821 13%
sort.........................................2848......842 30%
strconv......................................2947.....1252 42%
strings......................................7983.....2456 31%
sync/atomic..................................2666.....1149 43%
sync.........................................2568......845 33%
syscall.....................................81252....38398 47%
testing/iotest...............................2444......302 12%
testing/quick...............................18890.....5076 27%
testing.....................................16502.....4800 29%
text/scanner.................................6849.....2052 30%
text/tabwriter...............................6607.....1863 28%
text/template/parse.........................22978.....6183 27%
text/template...............................64153....11518 18%
time........................................12103.....3546 29%
unicode......................................9706.....3320 34%
unicode/utf16................................1055......148 14%
unicode/utf8.................................1118......513 46%
vendor/golang.org/x/net/http2/hpack..........8905.....2636 30%
All packages 3518505 1017774 29%
Change-Id: Id657334f276383ff1e6fa91472d3d1db5a03349c
Reviewed-on: https://go-review.googlesource.com/13937
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Chris Manghane <cmang@golang.org>
2015-10-22 21:01:29 +00:00