]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: stop constructing sudog type
authorMatthew Dempsky <mdempsky@google.com>
Thu, 17 Mar 2016 11:58:34 +0000 (04:58 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Thu, 17 Mar 2016 18:02:40 +0000 (18:02 +0000)
The compiler doesn't care about the runtime's sudog type. Stop
constructing it.

Change-Id: If1885fe30b2e215a08d17662eab5ea6d81fe58ab
Reviewed-on: https://go-review.googlesource.com/20797
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/cmd/compile/internal/gc/select.go
src/runtime/runtime2.go

index e8ec4a14c6bb2bb6d48f51cfc3e7d7014222d7fe..17039014d69557ce189fd73a846e70094d72038c 100644 (file)
@@ -317,24 +317,10 @@ out:
        lineno = lno
 }
 
-// Keep in sync with src/runtime/runtime2.go and src/runtime/select.go.
+// Keep in sync with src/runtime/select.go.
 func selecttype(size int32) *Type {
-       // TODO(dvyukov): it's possible to generate SudoG and Scase only once
+       // TODO(dvyukov): it's possible to generate Scase only once
        // and then cache; and also cache Select per size.
-       sudog := Nod(OTSTRUCT, nil, nil)
-
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("g")), typenod(Ptrto(Types[TUINT8]))))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("selectdone")), typenod(Ptrto(Types[TUINT8]))))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("next")), typenod(Ptrto(Types[TUINT8]))))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("prev")), typenod(Ptrto(Types[TUINT8]))))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("elem")), typenod(Ptrto(Types[TUINT8]))))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("releasetime")), typenod(Types[TUINT64])))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("ticket")), typenod(Types[TUINT32])))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("waitlink")), typenod(Ptrto(Types[TUINT8]))))
-       sudog.List.Append(Nod(ODCLFIELD, newname(Lookup("c")), typenod(Ptrto(Types[TUINT8]))))
-       typecheck(&sudog, Etype)
-       sudog.Type.Noalg = true
-       sudog.Type.Local = true
 
        scase := Nod(OTSTRUCT, nil, nil)
        scase.List.Append(Nod(ODCLFIELD, newname(Lookup("elem")), typenod(Ptrto(Types[TUINT8]))))
index 19352709368b37230769ea68bd6986572a745950..89774791ebce2d32f6a6e205def325f436f366fe 100644 (file)
@@ -210,9 +210,6 @@ type gobuf struct {
        bp   uintptr // for GOEXPERIMENT=framepointer
 }
 
-// Known to compiler.
-// Changes here must also be made in src/cmd/compile/internal/gc/select.go's
-// selecttype.
 type sudog struct {
        // The following fields are protected by the hchan.lock of the
        // channel this sudog is blocking on. shrinkstack depends on