-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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: possible liveness bug #16026
Comments
@randall77 any movement here? |
No, I have been unable to write a test that actually demonstrates a real bug. I'm still working on it. |
@randall77 should this block go1.7beta2? |
No. |
I've determined that typedmemmove is the only call for which this happens. All other calls are ok. So I'm marking this closed, I'll get my clobber code in (deactivated by default) for 1.8. |
CL https://golang.org/cl/23924 mentions this issue. |
The experiment "clobberdead" clobbers all pointer fields that the compiler thinks are dead, just before and after every safepoint. Useful for debugging the generation of live pointer bitmaps. Helped find the following issues: Update #15936 Update #16026 Update #16095 Update #18860 Change-Id: Id1d12f86845e3d93bae903d968b1eac61fc461f9 Reviewed-on: https://go-review.googlesource.com/23924 Run-TryBot: Keith Randall <khr@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com> Reviewed-by: Cherry Zhang <cherryyz@google.com>
compiles to roughly:
Problem:
autotmp_0
is not considered live attypedmemmove
. The fact thattypedmemmove
(and callees) are marked as nosplit saves us, but I can't yet convince myself that there won't be other cases like this but without nosplit saving us.(Another less serious issue is that autotmp_0 is unnecessary in this example, but compilers; go figure.)
Found using CL https://go-review.googlesource.com/23924
@aclements
The text was updated successfully, but these errors were encountered: