[all-commits] [llvm/llvm-project] 1d319d: [libc++] Implement generic associative container b...

Louis Dionne via All-commits all-commits at lists.llvm.org
Thu Feb 6 13:09:18 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1d319dfe7d1ea39354ff61c5568bfecad3ce3d15
      https://github.com/llvm/llvm-project/commit/1d319dfe7d1ea39354ff61c5568bfecad3ce3d15
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2025-02-06 (Thu, 06 Feb 2025)

  Changed paths:
    M libcxx/test/benchmarks/GenerateInput.h
    A libcxx/test/benchmarks/containers/associative/associative_container_benchmarks.h
    A libcxx/test/benchmarks/containers/associative/flat_map.bench.cpp
    A libcxx/test/benchmarks/containers/associative/flat_multimap.bench.cpp
    A libcxx/test/benchmarks/containers/associative/map.bench.cpp
    A libcxx/test/benchmarks/containers/associative/multimap.bench.cpp
    A libcxx/test/benchmarks/containers/associative/multiset.bench.cpp
    A libcxx/test/benchmarks/containers/associative/set.bench.cpp
    A libcxx/test/benchmarks/containers/associative/unordered_map.bench.cpp
    A libcxx/test/benchmarks/containers/associative/unordered_multimap.bench.cpp
    A libcxx/test/benchmarks/containers/associative/unordered_multiset.bench.cpp
    A libcxx/test/benchmarks/containers/associative/unordered_set.bench.cpp
    R libcxx/test/benchmarks/containers/map.bench.cpp
    R libcxx/test/benchmarks/containers/ordered_set.bench.cpp
    R libcxx/test/benchmarks/containers/unordered_set.bench.cpp

  Log Message:
  -----------
  [libc++] Implement generic associative container benchmarks (#123663)

This patch implements generic associative container benchmarks for
containers with unique keys. In doing so, it replaces the existing
std::map benchmarks which were based on the cartesian product
infrastructure and were too slow to execute.

These new benchmarks aim to strike a balance between exhaustive coverage
of all operations in the most interesting case, while executing fairly
rapidly (~40s on my machine).

This bumps the requirement for the map benchmarks from C++17 to C++20
because the common header that provides associative container benchmarks
requires support for C++20 concepts.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list