It isn't safe in functions that also call setg.
Change-Id: I76a7bf0401b4b6c8a129c245b15a2d6f06080e94
Reviewed-on: https://go-review.googlesource.com/16095
Reviewed-by: Todd Neal <todd@tneal.org>
// which can't be moved.
return false
}
- // TODO: maybe not OpAMD64LoweredGetG?
+ if v.Op == OpAMD64LoweredGetG {
+ // It would almost always be ok to rematerialize this op.
+ // The annoying exception is functions that call runtime.setg.
+ return false
+ }
if len(v.Args) == 0 {
return true
}