aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/fuse_branchredirect.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/ssa/fuse_branchredirect.go')
-rw-r--r--src/cmd/compile/internal/ssa/fuse_branchredirect.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/ssa/fuse_branchredirect.go b/src/cmd/compile/internal/ssa/fuse_branchredirect.go
index 1b8b307bca..ba5220bd87 100644
--- a/src/cmd/compile/internal/ssa/fuse_branchredirect.go
+++ b/src/cmd/compile/internal/ssa/fuse_branchredirect.go
@@ -78,7 +78,11 @@ func fuseBranchRedirect(f *Func) bool {
if v.Op != OpPhi {
continue
}
- v.RemoveArg(k)
+ n := len(v.Args)
+ v.Args[k].Uses--
+ v.Args[k] = v.Args[n-1]
+ v.Args[n-1] = nil
+ v.Args = v.Args[:n-1]
phielimValue(v)
}
// Fix up child to have one more predecessor.