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 SSA IDs stable across passes #16754

bradfitz opened this issue Aug 16, 2016 · 5 comments


Copy link

@bradfitz bradfitz commented Aug 16, 2016

GOSSAFUNC's ssa.html's help text says:

Values and blocks are highlighted by ID, which may vary across passes. (TODO: Fix this.)

But what is the bug? Maybe this is.

/cc @josharian @randall77


This comment has been minimized.

Copy link

@josharian josharian commented Aug 17, 2016

This is the only issue I know of filed for it.

@quentinmit quentinmit added this to the Go1.8 milestone Sep 6, 2016
@quentinmit quentinmit added the NeedsFix label Oct 11, 2016

This comment has been minimized.

Copy link

@quentinmit quentinmit commented Oct 11, 2016

@dr2chase has "no earthly idea" what this could be referring to. We believe the IDs are indeed stable across passes.

The only thing we can think of is that value IDs may be reused if the original value dies.

So perhaps this bug is just "remove the comment from the help text".


This comment has been minimized.

Copy link

@randall77 randall77 commented Oct 11, 2016

There has been some pondering of value number compaction, but that has not been done. I think we can just delete the text in question.


This comment has been minimized.

Copy link

@gopherbot gopherbot commented Oct 11, 2016

CL mentions this issue.

@gopherbot gopherbot closed this in d07345a Oct 12, 2016

This comment has been minimized.

Copy link

@josharian josharian commented Oct 23, 2016

I had in mind implementing this by having a "value generation" slice that was non-nil only when generating SSA. Whenever a value id gets returned to the allocator, increment the value generation for that value id. Then use <value id, value generation> to label the HTML nodes, thereby making the highlighting accurately reflect the actual lifetime of the values. Same for blocks.

I'm going to re-open this but mark as unplanned, since the only audience for this is internal.

@josharian josharian reopened this Oct 23, 2016
@josharian josharian modified the milestones: Unplanned, Go1.8 Oct 23, 2016
@josharian josharian self-assigned this Oct 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
5 participants
You can’t perform that action at this time.