mirror of
https://github.com/golang/go
synced 2024-11-22 23:50:03 -07:00
cmd/compile: call phiElimValue from removePhiArg
With the exception of the shortcircuit pass, removePhiArg is always unconditionally followed by phiElimValue. Move the phiElimValue inside removePhiArg. Resolves a TODO. See CL 357964 for more info. Change-Id: I8460b35864f4cd7301ba86fc3dce08ec8041da7f Reviewed-on: https://go-review.googlesource.com/c/go/+/465435 Reviewed-by: David Chase <drchase@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Run-TryBot: Jakub Ciolek <jakub@ciolek.dev>
This commit is contained in:
parent
51fe7062d3
commit
d29dd2ecf7
@ -341,7 +341,7 @@ func (b *Block) swapSuccessors() {
|
||||
// if v.Op != OpPhi {
|
||||
// continue
|
||||
// }
|
||||
// b.removeArg(v, i)
|
||||
// b.removePhiArg(v, i)
|
||||
//
|
||||
// }
|
||||
func (b *Block) removePhiArg(phi *Value, i int) {
|
||||
@ -353,6 +353,7 @@ func (b *Block) removePhiArg(phi *Value, i int) {
|
||||
phi.Args[i] = phi.Args[n]
|
||||
phi.Args[n] = nil
|
||||
phi.Args = phi.Args[:n]
|
||||
phielimValue(phi)
|
||||
}
|
||||
|
||||
// LackingPos indicates whether b is a block whose position should be inherited
|
||||
|
@ -96,11 +96,6 @@ func critical(f *Func) {
|
||||
|
||||
// splitting occasionally leads to a phi having
|
||||
// a single argument (occurs with -N)
|
||||
// TODO(cuonglm,khr): replace this with phielimValue, and
|
||||
// make removePhiArg incorporates that.
|
||||
if len(b.Preds) == 1 {
|
||||
phi.Op = OpCopy
|
||||
}
|
||||
// Don't increment i in this case because we moved
|
||||
// an unprocessed predecessor down into slot i.
|
||||
} else {
|
||||
|
@ -330,7 +330,6 @@ func (b *Block) removeEdge(i int) {
|
||||
continue
|
||||
}
|
||||
c.removePhiArg(v, j)
|
||||
phielimValue(v)
|
||||
// Note: this is trickier than it looks. Replacing
|
||||
// a Phi with a Copy can in general cause problems because
|
||||
// Phi and Copy don't have exactly the same semantics.
|
||||
|
@ -82,7 +82,6 @@ func fuseBranchRedirect(f *Func) bool {
|
||||
continue
|
||||
}
|
||||
b.removePhiArg(v, k)
|
||||
phielimValue(v)
|
||||
}
|
||||
// Fix up child to have one more predecessor.
|
||||
child.Preds = append(child.Preds, Edge{p, pk.i})
|
||||
|
Loading…
Reference in New Issue
Block a user