[libcxx-commits] [PATCH] D81288: [Opt] Smart pointer lifetime optimizations pass.
Zoe Carver via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Jun 5 11:45:25 PDT 2020
zoecarver created this revision.
zoecarver added reviewers: jfb, ldionne, EricWF.
Herald added subscribers: llvm-commits, libcxx-commits, dexonsmith, hiraditya, mgorny.
Herald added projects: libc++, LLVM.
Herald added a reviewer: libc++.
zoecarver marked an inline comment as done.
zoecarver added inline comments.
Comment at: libcxx/include/memory:2412
unique_ptr(unique_ptr&& __u) _NOEXCEPT
Obviously these won't be part of the final patch. This is just an easy way to figure out which methods are important (both for me and the pass).
In Swift, there's a `@_semantics` decorator that can be applied to functions so the compiler can apply specific optimizations. Is there anything like that in clang? If not, would something like that be welcome and/or possible? If so, I'm happy to implement it.
This pass does one thing: constant fold away the destructor of `unique_ptr` based on ownership information we get form move semantics.
However, it is also (hopefully) the scaffolding for many more lifetime optimizations both around `unique_ptr` and other smart pointers.
rG LLVM Github Monorepo
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 22037 bytes
Desc: not available
More information about the libcxx-commits