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

use llvm.lifetime.end to mark the end of unique pointer lifetimes #6755

Closed
thestinger opened this issue May 26, 2013 · 5 comments
Closed

use llvm.lifetime.end to mark the end of unique pointer lifetimes #6755

thestinger opened this issue May 26, 2013 · 5 comments
Labels
I-slow Issue: Problems and improvements with respect to performance of generated code.

Comments

@thestinger
Copy link
Contributor

This applies to unique pointers going out of scope when the compiler knows they weren't moved from.

@thestinger
Copy link
Contributor Author

Somewhat related to #5016.

@emberian
Copy link
Member

triage bump; still relevant.

@alexcrichton
Copy link
Member

I don't think that this would help alleviate the problem in #5016. I took the IR from #8484 (where extra glue was generated), and then manually added the calls to llvm.lifetime.{start,end} to the IR. The resulting optimized IR didn't have the glue removed, even though loads/stores were undefined to the location.

This may still help other optimization passes, but I'm not sure.

@huonw
Copy link
Member

huonw commented Dec 19, 2013

Triage, lots of lifetimes in Rust, but still no lifetimes in LLVM. :(

@thestinger
Copy link
Contributor Author

This can be left to LLVM, since free implies that the pointer is dead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-slow Issue: Problems and improvements with respect to performance of generated code.
Projects
None yet
Development

No branches or pull requests

4 participants