Skip to content
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: treat pointer-to-go:notinheap types as scalar #22519

Closed
mdempsky opened this issue Oct 31, 2017 · 2 comments
Closed

cmd/compile: treat pointer-to-go:notinheap types as scalar #22519

mdempsky opened this issue Oct 31, 2017 · 2 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@mdempsky
Copy link
Member

mdempsky commented Oct 31, 2017

In the runtime, we have the go:notinheap directive to flag types that can never appear in the Go heap. The compiler currently uses this directive to omit write barriers for *T-typed slots when T is marked go:notinheap.

However, we still mark *T-typed slots as pointers in the GC maps, worry about zero-initializing them, allocate them in the .bss/.data sections instead of .noptrbss/.noptrdata sections, etc. This issue is about determining whether we can just treat them as scalars instead; and if so, implementing that change.

See also brief discussion in CL 73412.

/cc @aclements

@mdempsky mdempsky added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Oct 31, 2017
@mdempsky mdempsky added this to the Unplanned milestone Oct 31, 2017
@cuonglm
Copy link
Member

cuonglm commented Oct 22, 2020

@mdempsky
Copy link
Member Author

Thanks.

@golang golang locked and limited conversation to collaborators Oct 22, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
None yet
Development

No branches or pull requests

3 participants