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: internal compiler error - 'can't find empty register' on ppc64le builders #34468
The linux-ppc64le builders are currently broken with a
The breakage started after CL 194297 (compile: prefer an AND instead of SHR+SHL instructions).
@laboger. I do not currently have a ppc64le machine setup to test and debug this. Could you please have a look if there is an easy fix for ppc64le specific forward?
Note that on linux/amd64 I can not test the race compile since
As this error only happens in race and on ppc64le (ppc64 doesnt seem to support -race builds) at first it seems a ppc64 local problem. But since cl/194297 can introduce the use of an extra register to load a large constant where it previously did not this could have increased the register pressure above a threshold when compiling the
Seems other changes could run into this problem (potentially also on other platforms) too if not resolved generally.
This reverts CL 194297. Reason for revert: introduced register allocation failures on PPC64LE builders. Updates #33826 Updates #32781 Updates #34468 Change-Id: I7d0b55df8cdf8e7d2277f1814299b083c2692e48 Reviewed-on: https://go-review.googlesource.com/c/go/+/196957 Run-TryBot: Bryan C. Mills <firstname.lastname@example.org> TryBot-Result: Gobot Gobot <email@example.com> Reviewed-by: Dmitri Shuralyov <firstname.lastname@example.org> Reviewed-by: Cherry Zhang <email@example.com> Reviewed-by: Martin Möhrmann <firstname.lastname@example.org>
This is strange. The register allocator is reporting
Both those calls should return nonzero.
CL 195117 changes it to call
The interesting value here is v205, which is of type flags but got register R4. This seems bad.