-
Notifications
You must be signed in to change notification settings - Fork 18k
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
runtime: multiword objects can be partially live/nonlive #7591
Labels
Milestone
Comments
The liveness bitmaps are already per-word (right?). And in cases like your example, the compiler must know that s.str is not live, since otherwise it would not know that it does not have to store it (right?). So it seems preferable to me to produce more accurate live bitmaps. (It also seems better to not allocate space on the stack that is never set, and it seems better to not load BX at address 0x56 and then do nothing with the value.) |
All correct. The difficulty lies in the fact that the register allocator is doing this never-used-so-don't-store optimization. At regalloc time, the bitmaps are already generated. Regalloc knows nothing about bitmaps, safe points, etc. All that would have to be taught to regalloc. It's not a difficulty, really. Just a lot of work. |
I believe I have a fix for this. But there are other bugs preventing me from proving that it is correct. Labels changed: added release-go1.3. Owner changed to @rsc. Status changed to Accepted. |
This issue was closed by revision 6722d45. Status changed to Fixed. |
This issue was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
The text was updated successfully, but these errors were encountered: