Skip to content

Commit a401718

Browse files
committed
cmd/compile/internal/gc: cleanup walkselectcases slightly
Remove some unnecessary code. Most significantly, we can skip testing "if ch == nil { block() }", because this is already the semantics implied by normal send/receive operations. Updates #40410. Change-Id: I4acd33383cc876719fc3b998d85244d4ac1ff9d9 Reviewed-on: https://go-review.googlesource.com/c/go/+/245126 Run-TryBot: Matthew Dempsky <mdempsky@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
1 parent fe23ba4 commit a401718

File tree

1 file changed

+2
-18
lines changed

1 file changed

+2
-18
lines changed

src/cmd/compile/internal/gc/select.go

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -123,17 +123,14 @@ func walkselectcases(cases *Nodes) []*Node {
123123
n := cas.Left
124124
l = append(l, n.Ninit.Slice()...)
125125
n.Ninit.Set(nil)
126-
var ch *Node
127126
switch n.Op {
128127
default:
129128
Fatalf("select %v", n.Op)
130129

131-
// ok already
132130
case OSEND:
133-
ch = n.Left
131+
// already ok
134132

135133
case OSELRECV, OSELRECV2:
136-
ch = n.Right.Left
137134
if n.Op == OSELRECV || n.List.Len() == 0 {
138135
if n.Left == nil {
139136
n = n.Right
@@ -157,16 +154,7 @@ func walkselectcases(cases *Nodes) []*Node {
157154
n = typecheck(n, ctxStmt)
158155
}
159156

160-
// if ch == nil { block() }; n;
161-
a := nod(OIF, nil, nil)
162-
163-
a.Left = nod(OEQ, ch, nodnil())
164-
var ln Nodes
165-
ln.Set(l)
166-
a.Nbody.Set1(mkcall("block", nil, &ln))
167-
l = ln.Slice()
168-
a = typecheck(a, ctxStmt)
169-
l = append(l, a, n)
157+
l = append(l, n)
170158
}
171159

172160
l = append(l, cas.Nbody.Slice()...)
@@ -223,8 +211,6 @@ func walkselectcases(cases *Nodes) []*Node {
223211

224212
case OSELRECV:
225213
// if selectnbrecv(&v, c) { body } else { default body }
226-
r = nod(OIF, nil, nil)
227-
r.Ninit.Set(cas.Ninit.Slice())
228214
ch := n.Right.Left
229215
elem := n.Left
230216
if elem == nil {
@@ -234,8 +220,6 @@ func walkselectcases(cases *Nodes) []*Node {
234220

235221
case OSELRECV2:
236222
// if selectnbrecv2(&v, &received, c) { body } else { default body }
237-
r = nod(OIF, nil, nil)
238-
r.Ninit.Set(cas.Ninit.Slice())
239223
ch := n.Right.Left
240224
elem := n.Left
241225
if elem == nil {

0 commit comments

Comments
 (0)