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: make ascompatte generate less garbage #15665

Closed
josharian opened this issue May 12, 2016 · 1 comment
Closed

cmd/compile: make ascompatte generate less garbage #15665

josharian opened this issue May 12, 2016 · 1 comment
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@josharian
Copy link
Contributor

josharian commented May 12, 2016

@crawshaw noted over email:

ascompatte (a) is called a lot, (b) returns a new []_Node, and (c) that return value almost always replaces the []_Node passed in as parameter lr. Might be due for a rewrite inline modifies a Nodes...

Transferring to an issue so that it doesn't get lost.

@josharian josharian self-assigned this May 12, 2016
@josharian josharian added this to the Unplanned milestone May 12, 2016
@bradfitz bradfitz modified the milestones: Go1.8Maybe, Unplanned May 12, 2016
@quentinmit quentinmit added the NeedsFix The path to resolution is known, but the work has not been done. label Oct 10, 2016
@rsc rsc modified the milestones: Unplanned, Go1.8Maybe Oct 20, 2016
@quasilyte
Copy link
Contributor

I think this function is gone now.
Could be the right time to close this issue, maybe?

For the reference, git bisect shows that this function was replaced in 2578ac5.

    Prior to this change, walk was responsible for constructing (most of) the stack for function calls.
    ascompatte gathered variadic arguments into a slice.
    It also rewrote n.List from a list of arguments to a list of assignments to stack slots.
    ascompatte was called multiple times to handle the receiver in a method call.
    reorder1 then introduced temporaries into n.List as needed to avoid smashing the stack.
    adjustargs then made extra stack space for go/defer args as needed.

    his change moves stack construction to the SSA construction phase.
    ascompatte, now called walkParams, does all the work that ascompatte and reorder1 did.

@golang golang locked and limited conversation to collaborators Nov 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

6 participants