[all-commits] [llvm/llvm-project] 07b18c: [libc++] Optimize ranges::fill{, _n} for vector<boo...

Nikolas Klauser via All-commits all-commits at lists.llvm.org
Sun Mar 17 12:01:16 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 07b18c5e1b7a8ac9347f945da5ffaecc4515f391
      https://github.com/llvm/llvm-project/commit/07b18c5e1b7a8ac9347f945da5ffaecc4515f391
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-17 (Sun, 17 Mar 2024)

  Changed paths:
    M libcxx/benchmarks/CMakeLists.txt
    A libcxx/benchmarks/algorithms/fill.bench.cpp
    M libcxx/docs/ReleaseNotes/19.rst
    M libcxx/include/__algorithm/fill_n.h
    M libcxx/include/__bit_reference
    M libcxx/test/libcxx/containers/sequences/vector/robust_against_adl.pass.cpp
    M libcxx/test/std/algorithms/alg.modifying.operations/alg.fill/fill.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.count/count.pass.cpp
    M libcxx/test/std/algorithms/alg.nonmodifying/alg.count/ranges.count.pass.cpp

  Log Message:
  -----------
  [libc++] Optimize ranges::fill{,_n} for vector<bool>::iterator (#84642)

```
------------------------------------------------------
Benchmark                          old             new
------------------------------------------------------
bm_ranges_fill_n/1             1.64 ns         3.06 ns
bm_ranges_fill_n/2             3.45 ns         3.06 ns
bm_ranges_fill_n/3             4.88 ns         3.06 ns
bm_ranges_fill_n/4             6.46 ns         3.06 ns
bm_ranges_fill_n/5             8.03 ns         3.06 ns
bm_ranges_fill_n/6             9.65 ns         3.07 ns
bm_ranges_fill_n/7             11.5 ns         3.06 ns
bm_ranges_fill_n/8             13.0 ns         3.06 ns
bm_ranges_fill_n/16            25.9 ns         3.06 ns
bm_ranges_fill_n/64             103 ns         4.62 ns
bm_ranges_fill_n/512            711 ns         4.40 ns
bm_ranges_fill_n/4096          5642 ns         9.86 ns
bm_ranges_fill_n/32768        45135 ns         33.6 ns
bm_ranges_fill_n/262144      360818 ns          243 ns
bm_ranges_fill_n/1048576    1442828 ns          982 ns
bm_ranges_fill/1               1.63 ns         3.17 ns
bm_ranges_fill/2               3.43 ns         3.28 ns
bm_ranges_fill/3               4.97 ns         3.31 ns
bm_ranges_fill/4               6.53 ns         3.27 ns
bm_ranges_fill/5               8.12 ns         3.33 ns
bm_ranges_fill/6               9.76 ns         3.32 ns
bm_ranges_fill/7               11.6 ns         3.29 ns
bm_ranges_fill/8               13.2 ns         3.26 ns
bm_ranges_fill/16              26.3 ns         3.26 ns
bm_ranges_fill/64               104 ns         4.92 ns
bm_ranges_fill/512              716 ns         4.47 ns
bm_ranges_fill/4096            5772 ns         8.21 ns
bm_ranges_fill/32768          45778 ns         33.1 ns
bm_ranges_fill/262144        351422 ns          241 ns
bm_ranges_fill/1048576      1404710 ns          965 ns
```



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