New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/compile: inconsistent nil check elimination on ppc64 #9058
Comments
This test still fails, even though optimization now works on ppc64, but it fails for a completely different reason. Because R0 is a constant 0, ppc64's peephole optimizer effectively does constant propagation of 0 for free. As a result, after peep this looks like:
However, the CHECKNILs still don't get eliminated because regtyp(R0) returns 0 (because R0 isn't a normal register), so they aren't even considered for elimination. It's possible regtyp could return 1 for R0, but then it would fail the test in the other direction because ppc64 would eliminate CHECKNILs more effectively than other platforms. |
Too late for Go 1.5. Maybe SSA will take care of this. |
CL https://golang.org/cl/14461 mentions this issue. |
…mips64{,le} Skip fixedbugs/issue10607.go because external linking is not supported yet. Skip nilptr3.go because of issue #9058 (same as ppc64). Change-Id: Ib3dfbd9a03ee4052871cf57c74b3cc5e745e1f80 Reviewed-on: https://go-review.googlesource.com/14461 Reviewed-by: Minux Ma <minux@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: Minux Ma <minux@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Closed. SSA takes care of this, and nilptr3.go is gone. |
by austin@google.com:
The text was updated successfully, but these errors were encountered: