Peng Liu
ab3d793982
[libc++] Optimize ranges::move{,_backward} for vector<bool>::iterator ( #121109 )
...
As a follow-up to #121013 (which optimized `ranges::copy`) and #121026
(which optimized `ranges::copy_backward`), this PR enhances the
performance of `std::ranges::{move, move_backward}` for
`vector<bool>::iterator`, addressing a subtask outlined in issue #64038 .
The optimizations bring performance improvements analogous to those
achieved for the `{copy, copy_backward}` algorithms: up to 2000x for
aligned moves and 60x for unaligned moves. Moreover, comprehensive
tests covering up to 4 storage words (256 bytes) with odd and even bit
sizes are provided, which validate the proposed optimizations in this
patch.
2025-02-19 11:36:45 -05:00
..
2025-02-19 11:36:45 -05:00
2025-01-18 14:50:53 +00:00
2025-01-09 19:02:35 +01:00
2024-10-31 02:20:10 +01:00
2025-02-17 19:08:07 +01:00
2025-01-23 13:18:54 +01:00
2024-10-31 02:20:10 +01:00
2024-11-16 19:25:03 +01:00
2025-02-19 08:21:56 -05:00
2024-10-31 02:20:10 +01:00
2024-11-06 10:38:19 +01:00
2025-01-28 12:35:33 +01:00
2024-10-12 09:49:52 +02:00
2025-01-08 11:12:59 -05:00
2025-01-08 11:12:59 -05:00
2025-02-13 08:54:56 +01:00
2025-01-25 18:30:00 +00:00
2025-02-14 18:37:59 +01:00
2025-01-25 18:30:00 +00:00
2025-02-05 11:39:49 -05:00
2023-12-18 14:01:33 -05:00
2025-01-08 11:12:59 -05:00
2025-02-05 08:37:09 -05:00
2024-09-12 21:18:43 +02:00
2025-01-08 11:12:59 -05:00
2025-02-14 10:08:23 +01:00
2024-12-23 14:32:59 +08:00
2024-11-16 19:25:03 +01:00
2025-01-28 15:43:21 -05:00
2025-01-24 09:34:42 +01:00
2025-01-04 14:49:22 +01:00
2025-02-10 21:19:46 +01:00
2024-11-13 11:57:16 +01:00
2025-01-23 13:18:54 +01:00
2025-01-08 11:12:59 -05:00
2025-02-15 20:11:48 +01:00
2025-01-10 15:21:58 -05:00
2025-01-08 17:34:48 -05:00
2025-01-08 11:12:59 -05:00
2025-01-08 11:12:59 -05:00
2025-02-07 15:50:17 +01:00
2025-01-13 09:10:36 -05:00
2025-02-19 21:31:56 +08:00
2025-02-13 08:54:43 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-09-17 11:22:27 -04:00
2025-02-19 11:36:45 -05:00
2025-02-17 08:55:14 -05:00
2024-11-06 10:39:19 +01:00
2025-01-30 21:10:56 +01:00
2025-01-27 12:41:00 -05:00
2025-02-18 12:12:23 +01:00
2025-01-08 11:12:59 -05:00
2025-01-08 11:12:59 -05:00
2025-01-30 21:10:56 +01:00
2024-10-23 17:07:15 -04:00
2025-01-14 10:24:35 -05:00
2025-01-08 11:12:59 -05:00
2025-01-08 11:12:59 -05:00
2025-01-17 14:22:40 -05:00
2025-01-14 12:10:57 -05:00
2024-12-21 13:01:48 +01:00
2025-01-30 14:55:05 -05:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-02-09 15:08:30 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-02-10 21:19:46 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-30 21:10:56 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-24 09:34:42 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-25 18:30:00 +00:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-30 21:10:56 +01:00
2025-01-29 15:25:43 +02:00
2025-01-10 14:14:14 -05:00
2025-01-20 14:15:50 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2025-01-24 09:34:42 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-30 21:10:56 +01:00
2025-01-30 10:45:47 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-02-10 21:19:46 +01:00
2024-12-21 13:01:48 +01:00
2025-02-10 21:19:46 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-02-15 10:38:59 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2025-01-10 11:42:42 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-02-15 20:15:32 +01:00
2024-12-21 13:01:48 +01:00
2025-01-08 11:12:59 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-17 14:22:40 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-23 07:33:26 -08:00
2024-12-23 07:33:26 -08:00
2024-12-21 13:01:48 +01:00
2025-01-23 11:01:58 +01:00
2025-02-19 10:52:01 -05:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-24 09:34:42 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-21 22:49:24 +02:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2024-12-21 13:01:48 +01:00
2025-01-20 18:00:15 +01:00
2025-01-20 18:00:15 +01:00
2024-12-21 13:01:48 +01:00
2024-12-24 18:22:18 -08:00
2025-02-19 21:31:56 +08:00
2024-12-21 13:01:48 +01:00
2025-02-19 09:06:51 +08:00
2024-12-23 07:33:26 -08:00
2024-12-21 13:01:48 +01:00