[PATCH] D55045: Add a version of std::function that includes a few optimizations.

Eric Fiselier via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 29 16:08:18 PST 2018


EricWF added a comment.

In D55045#1312924 <https://reviews.llvm.org/D55045#1312924>, @ldionne wrote:

> I'd like to see benchmarking results that show the benefit of this approach.


The benchmarks are already present. We should add the results to this review to make it easier to view, but it's also possible to verify yourself.

> Also, it's not clear to me that trying to "merge" the two implementations is the right choice. Maybe we want a straight up different implementation (i.e. replace `std::function` as a whole instead of having many `#ifdef`s in the existing `std::function`).

Well we have to continue supporting the old ABI, and I don't want yet another std::function to maintain; maintaining 4 separate versions is already a pain (the C++11 one, and three C++03 versions).
I much prefer having the two sets of code interleaved, so when `std::function::foo` needs a change or a bugfix, both sets of code are next to each other.


Repository:
  rCXX libc++

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55045/new/

https://reviews.llvm.org/D55045





More information about the llvm-commits mailing list