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

Open
bradfitz opened this Issue Aug 16, 2016 · 5 comments

Comments

Projects
None yet
5 participants
@bradfitz
Member

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

@josharian

This comment has been minimized.

Contributor

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

@quentinmit

This comment has been minimized.

Contributor

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".

@randall77

This comment has been minimized.

Contributor

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.

@gopherbot

This comment has been minimized.

gopherbot commented Oct 11, 2016

CL https://golang.org/cl/30818 mentions this issue.

@gopherbot gopherbot closed this in d07345a Oct 12, 2016

@josharian

This comment has been minimized.

Contributor

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