Skip to content

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

@mdempsky

Description

@mdempsky

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions