Skip to content

Commit

Permalink
cmd/compile: move OAS2 to its own case in order
Browse files Browse the repository at this point in the history
Change-Id: Id0f4955588ae8027a24465b456c90d0543d60db2
Reviewed-on: https://go-review.googlesource.com/c/go/+/200581
Run-TryBot: Cuong Manh Le <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Matthew Dempsky <[email protected]>
  • Loading branch information
cuonglm authored and mdempsky committed Oct 12, 2019
1 parent ba6aeb6 commit e79c238
Showing 1 changed file with 21 additions and 20 deletions.
41 changes: 21 additions & 20 deletions src/cmd/compile/internal/gc/order.go
Original file line number Diff line number Diff line change
Expand Up @@ -513,26 +513,6 @@ func (o *Order) stmt(n *Node) {
o.mapAssign(n)
o.cleanTemp(t)

case OAS2,
OCLOSE,
OCOPY,
OPRINT,
OPRINTN,
ORECOVER,
ORECV:
t := o.markTemp()
n.Left = o.expr(n.Left, nil)
n.Right = o.expr(n.Right, nil)
o.exprList(n.List)
o.exprList(n.Rlist)
switch n.Op {
case OAS2:
o.mapAssign(n)
default:
o.out = append(o.out, n)
}
o.cleanTemp(t)

case OASOP:
t := o.markTemp()
n.Left = o.expr(n.Left, nil)
Expand Down Expand Up @@ -562,6 +542,13 @@ func (o *Order) stmt(n *Node) {
o.mapAssign(n)
o.cleanTemp(t)

case OAS2:
t := o.markTemp()
o.exprList(n.List)
o.exprList(n.Rlist)
o.mapAssign(n)
o.cleanTemp(t)

// Special: avoid copy of func call n.Right
case OAS2FUNC:
t := o.markTemp()
Expand Down Expand Up @@ -620,6 +607,20 @@ func (o *Order) stmt(n *Node) {
o.out = append(o.out, n)
o.cleanTemp(t)

case OCLOSE,
OCOPY,
OPRINT,
OPRINTN,
ORECOVER,
ORECV:
t := o.markTemp()
n.Left = o.expr(n.Left, nil)
n.Right = o.expr(n.Right, nil)
o.exprList(n.List)
o.exprList(n.Rlist)
o.out = append(o.out, n)
o.cleanTemp(t)

// Special: order arguments to inner call but not call itself.
case ODEFER, OGO:
t := o.markTemp()
Expand Down

0 comments on commit e79c238

Please sign in to comment.