1
0
mirror of https://github.com/golang/go synced 2024-10-04 04:31:21 -06:00
go/src/cmd
Keith Randall 1b45cc45e3 runtime: redo stack map entries to avoid false retention
Change two-bit stack map entries to encode:
0 = dead
1 = scalar
2 = pointer
3 = multiword

If multiword, the two-bit entry for the following word encodes:
0 = string
1 = slice
2 = iface
3 = eface

That way, during stack scanning we can check if a string
is zero length or a slice has zero capacity.  We can avoid
following the contained pointer in those cases.  It is safe
to do so because it can never be dereferenced, and it is
desirable to do so because it may cause false retention
of the following block in memory.

Slice feature turned off until issue 7564 is fixed.

Update #7549

LGTM=rsc
R=golang-codereviews, bradfitz, rsc
CC=golang-codereviews
https://golang.org/cl/76380043
2014-03-25 14:11:34 -07:00
..
5a cmd/5a, cmd/5c, cmd/6a, cmd/6c, cmd/8a, cmd/8c, cmd/cc: support for Native Client 2014-02-27 06:57:06 +11:00
5c cmd/5c: fix arm build 2014-03-07 10:13:00 +11:00
5g cmd/gc, cmd/5g, cmd/6g, cmd/8g: introduce linkarchinit and add amd64p32 support 2014-03-07 15:33:44 +11:00
5l all: final merge of NaCl tree 2014-02-27 20:37:00 -05:00
6a cmd/6a: add support for nacl/amd64p32 2014-03-07 16:02:25 +11:00
6c cmd/cc, cmd/5c, cmd/6c, cmd/8c: introduce linkarchinit and add amd64p32 support 2014-03-07 09:55:59 +11:00
6g cmd/6g, cmd/8g: skip CONVNOP nodes in bgen. 2014-03-20 22:22:37 +01:00
6l all: final merge of NaCl tree 2014-02-27 20:37:00 -05:00
8a cmd/5a, cmd/5c, cmd/6a, cmd/6c, cmd/8a, cmd/8c, cmd/cc: support for Native Client 2014-02-27 06:57:06 +11:00
8c cmd/cc, cmd/5c, cmd/6c, cmd/8c: introduce linkarchinit and add amd64p32 support 2014-03-07 09:55:59 +11:00
8g cmd/6g, cmd/8g: skip CONVNOP nodes in bgen. 2014-03-20 22:22:37 +01:00
8l all: final merge of NaCl tree 2014-02-27 20:37:00 -05:00
addr2line cmd/addr2line: reimplement in Go 2014-02-19 14:33:11 -05:00
api cmd/api: ensure GOPATH always points to the correct go.tools 2014-01-14 16:56:22 +11:00
cc runtime: redo stack map entries to avoid false retention 2014-03-25 14:11:34 -07:00
cgo cmd/cgo: use __gcc_struct__ for go exported functions 2013-12-10 11:30:12 +11:00
dist cmd/dist: enable GOARM>5 on NetBSD/ARM. 2014-03-06 00:57:23 -05:00
fix cmd/fix: remove obsolete testdata. 2013-06-02 15:40:32 +02:00
gc runtime: redo stack map entries to avoid false retention 2014-03-25 14:11:34 -07:00
go cmd/go: let build -x output describe CGO_LDFLAGS env variable 2014-03-18 21:47:21 +01:00
gofmt cmd/gofmt: minor internal cleanups 2014-02-27 09:00:27 -08:00
ld cmd/ld: fix warnings on Plan 9 2014-03-21 19:26:47 +01:00
link cmd/link: change cloneProg to return the cloned value 2014-02-18 17:59:44 -08:00
nm debug/plan9obj: implement parsing of Plan 9 a.out executables 2014-01-22 23:30:52 +01:00
objdump runtime/pprof: support OS X CPU profiling 2012-02-28 16:18:24 -05:00
pack cmd/pack: fix match 2014-02-20 15:50:30 -05:00
prof libmach: use different names for different Ureg types 2014-01-08 20:37:27 -05:00
yacc cmd/yacc: expr example support windows 2013-12-19 12:14:07 -05:00