[libcxx-commits] [PATCH] D128146: [libc++] Use uninitialized algorithms for vector
Evgeny Eltsin via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Aug 6 00:22:19 PDT 2022
eaeltsin added a comment.
In D128146#3703292 <https://reviews.llvm.org/D128146#3703292>, @var-const wrote:
> In D128146#3703008 <https://reviews.llvm.org/D128146#3703008>, @ldionne wrote:
>
>> In D128146#3699909 <https://reviews.llvm.org/D128146#3699909>, @vitalybuka wrote:
>>
>>>> @vitalybuka This isn't unexpected. `-fno-inline` disables inlining, which is essential for a lot of other optimizations. Using `-fno-inline` pretty much defeats the optimizer: https://godbolt.org/z/zrE5o1WK1.
>>>
>>> I am more concerned about sanitizers
>>>
>>> https://godbolt.org/z/1x9qjGG19 Near LBB11_5 we have now __asan_memcpy per every "P", before it was for entire vector.
>>> I assume some additional improvement in instrumentation are possible, maybe replacing fixed short asan_memcpy with check/load/store. Or even optimizing asan_memcpy itself.
>>>
>>> But still maybe some ideas if it's solvable on libc++ level so we rely less on optimizations?
>>
>> I suspect this might go away if we manually lowered `std::uninitialized_foo` to `memcpy` like we do for `std::copy` and `std::move`.
>
> (Just in case, I had a patch to do that a while ago: https://reviews.llvm.org/D118329)
I'm curious to check if this resolves some of the problems we are having now... @var-const, is your patch still applicable at head?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128146/new/
https://reviews.llvm.org/D128146
More information about the libcxx-commits
mailing list