From ac74e5debc884ea4545e23c3248385f0d683524a Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Thu, 17 Mar 2016 04:58:34 -0700 Subject: [PATCH] cmd/compile: stop constructing sudog type 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 TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Austin Clements --- src/cmd/compile/internal/gc/select.go | 18 ++---------------- src/runtime/runtime2.go | 3 --- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/src/cmd/compile/internal/gc/select.go b/src/cmd/compile/internal/gc/select.go index e8ec4a14c6..17039014d6 100644 --- a/src/cmd/compile/internal/gc/select.go +++ b/src/cmd/compile/internal/gc/select.go @@ -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])))) diff --git a/src/runtime/runtime2.go b/src/runtime/runtime2.go index 1935270936..89774791eb 100644 --- a/src/runtime/runtime2.go +++ b/src/runtime/runtime2.go @@ -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 -- 2.48.1