Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
cmd/compile: recent regression in ppc64x builders: internal compiler error: pointer in non-pointer register g #25504
What version of Go are you using (
It is. @dr2chase has been digging into the cause of this, which is quite peculiar. For some reason we're spilling the g register to the stack and then reloading it back into the g register, which is completely ridiculous and quite possible unsafe (e.g., if there's a setg between the spill and the reload, this would clobber it's effect).
I might temporarily ignore the g register in liveness analysis, just to get the build green again.
In rare circumstances that we don't yet fully understand, the g register can be spilled to the stack and then reloaded. If this happens, liveness analysis sees a pointer load into a non-general-purpose register and panics. We should fix the root cause of this, but fix the build for now by ignoring pointer loads into the g register. For #25504. Change-Id: I0dfee1af9750c8e9157c7637280cdf07118ef2ca Reviewed-on: https://go-review.googlesource.com/114081 Run-TryBot: Austin Clements <email@example.com> Reviewed-by: Keith Randall <firstname.lastname@example.org> TryBot-Result: Gobot Gobot <email@example.com>
I think I understand what's going on, though not completely.
which clobbers all the registers, including the one with
The SSA dump after trim: