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: unnecessary write barriers to stack #17330
Labels
Milestone
Comments
In gc/ssa.go:
|
CL https://golang.org/cl/30140 mentions this issue. |
gopherbot
pushed a commit
that referenced
this issue
Oct 3, 2016
Updates #17330. Change-Id: I83fe80139a2213f3169db884b84a4c3bd15b58b6 Reviewed-on: https://go-review.googlesource.com/30140 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Keith Randall <khr@golang.org>
quentinmit
added
the
NeedsFix
The path to resolution is known, but the work has not been done.
label
Oct 3, 2016
CL https://golang.org/cl/30290 mentions this issue. |
gopherbot
pushed a commit
that referenced
this issue
Oct 10, 2016
This, along with CL 30140, removes ~50% of stack write barriers mentioned in issue #17330. The remaining are most due to Phi and FwdRef, which is not resolved when building SSA. We might be able to do it at a later stage where Phi and Copy propagations are done, but matching an if-(store-store-call)+ sequence seems not very pleasant. Updates #17330. Change-Id: Iaa36c7b1f4c4fc3dc10a27018a3b0e261094cb21 Reviewed-on: https://go-review.googlesource.com/30290 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: David Chase <drchase@google.com>
CL https://golang.org/cl/31131 mentions this issue. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
There's some situation in which the compiler generates unnecessary write barriers when writing to a pointer in the current stack frame. Here's a simple script to find these (it may have false positives, but I didn't find any when flipping through them):
These are currently harmless. However, with the hybrid barrier it's important not to generate these because the stack slot being written to may be dead prior to this write and currently contain junk (such as a pointer to a dead object).
I flipped through several of these but there wasn't an obvious pattern to me.
/cc @dr2chase @cherrymui @randall77
The text was updated successfully, but these errors were encountered: