|
cmd/gc, runtime: refactor interface inlining decision into compiler
We need to change the interface value representation for
concurrent garbage collection, so that there is no ambiguity
about whether the data word holds a pointer or scalar.
This CL does NOT make any representation changes.
Instead, it removes representation assumptions from
various pieces of code throughout the tree.
The isdirectiface function in cmd/gc/subr.c is now
the only place that decides that policy.
The policy propagates out from there in the reflect
metadata, as a new flag in the internal kind value.
A follow-up CL will change the representation by
changing the isdirectiface function. If that CL causes
problems, it will be easy to roll back.
Update issue 8405.
Total comments: 6
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+230 lines, -105 lines) |
Patch |
|
M |
src/cmd/gc/go.h
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/cmd/gc/reflect.c
|
View
|
1
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
|
M |
src/cmd/gc/subr.c
|
View
|
1
|
1 chunk |
+39 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/cmd/gc/walk.c
|
View
|
1
|
2 chunks |
+2 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/pkg/database/sql/convert_test.go
|
View
|
1
|
2 chunks |
+24 lines, -13 lines |
0 comments
|
Download
|
|
M |
src/pkg/reflect/all_test.go
|
View
|
1
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/pkg/reflect/type.go
|
View
|
1
|
7 chunks |
+15 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/pkg/reflect/value.go
|
View
|
1
2
3
|
16 chunks |
+49 lines, -25 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/alg.go
|
View
|
1
|
4 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/heapdump.c
|
View
|
1
2
3
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/iface.go
|
View
|
1
|
6 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/malloc.c
|
View
|
1
|
2 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/malloc.go
|
View
|
1
|
1 chunk |
+0 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/mgc0.c
|
View
|
1
2
3
|
3 chunks |
+3 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/stack.c
|
View
|
1
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/pkg/runtime/typekind.h
|
View
|
1
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
A |
src/pkg/runtime/typekind.go
|
View
|
1
|
1 chunk |
+44 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/live.go
|
View
|
1
|
11 chunks |
+27 lines, -24 lines |
0 comments
|
Download
|
Total messages: 8
|