lbonn
3ebe99f4c2
[libcxx] Unwrap iterators in __find_segment (#161274)
The segmented iterator optimized implementation of find now unwraps
iterators when processing each segments.
As a result, it is able to take better advantage to some find
specializations: calling memchr/wmemchr for vector<vector<{char,int}>>
```
Benchmark Baseline Candidate Difference % Difference
-------------------------------------------------------------- ---------- ----------- ------------ --------------
rng::find(join_view(deque<deque<int>>))_(process_all)/1024 71.13 61.19 -9.94 -13.97
rng::find(join_view(deque<deque<int>>))_(process_all)/32768 2359.19 2237.02 -122.17 -5.18
rng::find(join_view(deque<deque<int>>))_(process_all)/50 16.88 17.59 0.71 4.20
rng::find(join_view(deque<deque<int>>))_(process_all)/8 15.59 16.10 0.51 3.27
rng::find(join_view(deque<deque<int>>))_(process_all)/8192 647.01 532.75 -114.26 -17.66
rng::find(join_view(list<vector<int>>))_(process_all)/1024 689.76 680.74 -9.02 -1.31
rng::find(join_view(list<vector<int>>))_(process_all)/32768 22284.95 21500.26 -784.69 -3.52
rng::find(join_view(list<vector<int>>))_(process_all)/50 32.77 32.12 -0.65 -1.98
rng::find(join_view(list<vector<int>>))_(process_all)/8 6.11 5.92 -0.19 -3.11
rng::find(join_view(list<vector<int>>))_(process_all)/8192 5527.88 5373.43 -154.45 -2.79
rng::find(join_view(vector<list<int>>))_(process_all)/1024 1305.59 1264.04 -41.55 -3.18
rng::find(join_view(vector<list<int>>))_(process_all)/32768 42840.88 43322.64 481.76 1.12
rng::find(join_view(vector<list<int>>))_(process_all)/50 57.52 62.35 4.82 8.38
rng::find(join_view(vector<list<int>>))_(process_all)/8 6.06 5.98 -0.07 -1.18
rng::find(join_view(vector<list<int>>))_(process_all)/8192 20700.53 21431.66 731.12 3.53
rng::find(join_view(vector<vector<char>>))_(process_all)/1024 310.64 18.34 -292.30 -94.09
rng::find(join_view(vector<vector<char>>))_(process_all)/32768 9424.96 531.99 -8892.97 -94.36
rng::find(join_view(vector<vector<char>>))_(process_all)/50 18.58 3.25 -15.32 -82.49
rng::find(join_view(vector<vector<char>>))_(process_all)/8 4.81 2.98 -1.84 -38.13
rng::find(join_view(vector<vector<char>>))_(process_all)/8192 2437.50 126.88 -2310.62 -94.79
rng::find(join_view(vector<vector<int>>))_(process_all)/1024 297.10 41.70 -255.39 -85.96
rng::find(join_view(vector<vector<int>>))_(process_all)/32768 9662.42 1822.05 -7840.36 -81.14
rng::find(join_view(vector<vector<int>>))_(process_all)/50 22.29 5.10 -17.19 -77.11
rng::find(join_view(vector<vector<int>>))_(process_all)/8 3.73 3.13 -0.60 -16.05
rng::find(join_view(vector<vector<int>>))_(process_all)/8192 2399.68 356.10 -2043.58 -85.16
```
2025-11-28 10:13:21 +01:00
..
2024-12-18 21:10:27 +01:00
2025-11-24 11:09:40 +01:00
2024-11-06 12:10:06 +01:00
2024-12-18 21:10:27 +01:00
2024-04-22 22:13:58 +02:00
2025-01-08 11:12:59 -05:00
2025-10-02 11:15:33 +02:00
2025-10-07 14:42:11 +02:00
2024-11-06 12:10:06 +01:00
2024-11-12 23:03:52 +01:00
2025-11-27 15:50:50 +01:00
2025-10-07 14:42:11 +02:00
2024-11-06 12:10:06 +01:00
2025-10-07 14:42:11 +02:00
2024-12-18 21:10:27 +01:00
2025-03-19 11:51:21 -04:00
2025-11-25 13:46:19 +01:00
2025-11-07 08:27:55 +01:00
2024-12-18 21:10:27 +01:00
2024-12-18 21:10:27 +01:00
2024-09-12 21:18:43 +02:00
2024-09-12 21:18:43 +02:00
2023-12-15 17:10:16 +01:00
2025-11-28 10:13:21 +01:00
2025-07-25 16:27:34 +02:00
2025-11-07 08:27:55 +01:00
2023-05-31 18:15:20 -07:00
2025-11-07 08:27:55 +01:00
2025-10-28 22:22:26 +08:00
2025-10-20 19:37:33 +08:00
2023-12-18 14:01:33 -05:00
2024-01-25 15:48:46 -05:00
2024-01-25 15:48:46 -05:00
2024-01-25 15:48:46 -05:00
2024-01-25 15:48:46 -05:00
2024-01-25 15:48:46 -05:00
2023-12-18 14:01:33 -05:00
2024-12-18 21:10:27 +01:00
2025-03-19 07:42:23 +08:00
2024-09-12 21:18:43 +02:00
2024-12-18 21:10:27 +01:00
2024-09-12 21:18:43 +02:00
2025-10-07 14:42:11 +02:00
2024-12-18 21:10:27 +01:00
2024-12-18 21:10:27 +01:00
2023-12-18 14:01:33 -05:00
2025-11-27 15:50:50 +01:00
2025-10-07 14:42:11 +02:00
2024-11-06 10:39:19 +01:00
2024-12-18 21:10:27 +01:00
2025-10-07 14:42:11 +02:00
2025-01-20 18:00:15 +01:00
2024-09-12 21:18:43 +02:00
2024-09-12 21:18:43 +02:00
2024-12-18 21:10:27 +01:00
2025-03-27 09:05:37 -04:00
2023-12-18 14:01:33 -05:00
2024-09-12 21:18:43 +02:00
2024-09-16 15:06:20 -04:00
2024-09-12 21:18:43 +02:00
2025-10-07 14:42:11 +02:00
2025-10-07 14:42:11 +02:00
2025-10-07 14:42:11 +02:00
2024-01-25 15:48:46 -05:00
2025-11-24 11:09:40 +01:00
2024-01-25 15:48:46 -05:00
2025-04-05 13:46:11 +02:00
2025-09-08 12:00:04 +02:00
2025-09-08 12:00:04 +02:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-09-16 15:06:20 -04:00
2024-03-18 08:29:44 +01:00
2024-01-25 15:48:46 -05:00
2025-10-07 14:42:11 +02:00
2024-03-18 08:29:44 +01:00
2025-10-07 14:42:11 +02:00
2024-11-06 12:10:06 +01:00
2024-11-06 12:10:06 +01:00
2024-11-06 12:10:06 +01:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-11-06 12:10:06 +01:00
2025-11-27 15:50:50 +01:00
2024-11-12 23:03:52 +01:00
2024-11-06 12:10:06 +01:00
2024-08-01 08:54:06 -04:00
2024-09-16 15:06:20 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-11-06 12:10:06 +01:00
2025-10-17 07:41:24 +08:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-09-16 15:06:20 -04:00
2024-08-01 08:54:06 -04:00
2024-09-30 08:30:16 -04:00
2025-06-18 12:22:47 -04:00
2025-06-18 12:22:47 -04:00
2025-10-28 22:22:26 +08:00
2024-09-16 15:06:20 -04:00
2024-08-01 08:54:06 -04:00
2025-03-20 01:59:32 +08:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2025-02-21 07:59:46 -05:00
2024-08-04 10:02:43 +02:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2025-03-27 09:05:37 -04:00
2025-03-27 09:05:37 -04:00
2024-08-01 08:54:06 -04:00
2025-03-27 09:05:37 -04:00
2025-03-27 09:05:37 -04:00
2024-08-01 08:54:06 -04:00
2024-10-30 11:51:55 +01:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-09-16 15:06:20 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-11-12 23:03:52 +01:00
2024-08-01 08:54:06 -04:00
2024-11-12 23:03:52 +01:00
2024-11-12 23:03:52 +01:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2025-03-06 09:23:55 +08:00
2025-03-07 01:27:48 +08:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2025-01-08 11:12:59 -05:00
2024-08-01 08:54:06 -04:00
2024-08-01 08:54:06 -04:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-09-12 21:18:43 +02:00
2024-09-12 21:18:43 +02:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2023-12-18 14:01:33 -05:00
2024-01-25 15:48:46 -05:00
2023-12-18 14:01:33 -05:00
2025-03-13 14:07:23 -04:00
2023-12-20 17:24:48 -08:00
2024-09-16 15:06:20 -04:00
2024-09-16 15:06:20 -04:00
2024-11-12 23:03:52 +01:00
2024-09-16 15:06:20 -04:00
2024-11-12 23:03:52 +01:00
2024-11-12 23:03:52 +01:00
2024-01-25 15:48:46 -05:00
2024-01-25 15:48:46 -05:00
2025-05-28 12:04:51 -04:00
2025-10-07 14:42:11 +02:00
2025-11-24 16:53:58 +01:00
2024-03-18 08:29:44 +01:00
2025-08-28 18:07:59 -04:00
2025-11-25 13:46:19 +01:00
2025-03-04 09:23:29 +08:00
2025-10-07 14:42:11 +02:00
2025-03-04 17:15:36 -05:00
2025-01-08 11:12:59 -05:00
2023-12-18 14:01:33 -05:00
2024-09-16 15:06:20 -04:00
2024-01-25 15:48:46 -05:00
2024-11-06 12:10:06 +01:00
2025-01-08 11:12:59 -05:00
2024-01-25 15:48:46 -05:00
2024-09-16 15:06:20 -04:00