[dev.ssa] cmd/compile: fix function call memory
We need to move the memory variable update back to before endBlock
so that all successors use the right memory value.
See https://go-review.googlesource.com/13560
Change-Id: Id72e5526c56e5e070b933d3b28dc503a5a2978dc
Reviewed-on: https://go-review.googlesource.com/13586
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go
index 75e12ee..81f9c8f 100644
--- a/src/cmd/compile/internal/gc/ssa.go
+++ b/src/cmd/compile/internal/gc/ssa.go
@@ -1311,6 +1311,7 @@
}
dowidth(left.Type)
call.AuxInt = left.Type.Argwid // call operations carry the argsize of the callee along with them
+ s.vars[&memvar] = call
b := s.endBlock()
b.Kind = ssa.BlockCall
b.Control = call
@@ -1319,7 +1320,6 @@
// read result from stack at the start of the fallthrough block
s.startBlock(bNext)
- s.vars[&memvar] = call
var titer Iter
fp := Structfirst(&titer, Getoutarg(left.Type))
if fp == nil {