Adam Richardson
370d4ce200
rope: Micro optimize the creation of masks ( #41132 )
...
Using compiler explorer I saw that the compiler wasn't clever enough to
optimise away the branches in the masking code. I thought the compiler
would have a better chance if we always branched, which [turned out to
be the case](https://godbolt.org/z/PM594Pz18 ).
Running the benchmarks the biggest benefit I saw was:
```
push/65536 time: [2.9067 ms 2.9243 ms 2.9417 ms]
thrpt: [21.246 MiB/s 21.373 MiB/s 21.502 MiB/s]
change:
time: [-8.3452% -7.2617% -6.2009%] (p = 0.00 < 0.05)
thrpt: [+6.6108% +7.8303% +9.1050%]
Performance has improved.
```
But I did also see some regressions:
```
slice/4096 time: [66.195 µs 66.815 µs 67.448 µs]
thrpt: [57.915 MiB/s 58.464 MiB/s 59.012 MiB/s]
change:
time: [+3.7131% +5.1698% +6.6971%] (p = 0.00 < 0.05)
thrpt: [-6.2768% -4.9157% -3.5802%]
Performance has regressed.
```
Release Notes:
- N/A
2025-10-27 16:16:16 +01:00
..
2025-10-27 10:05:50 +00:00
2025-10-20 13:52:05 +00:00
2025-10-17 18:58:14 +00:00
2025-10-23 03:57:33 +00:00
2025-10-24 07:48:14 +00:00
2025-10-27 10:05:50 +00:00
2025-10-19 15:52:28 +00:00
2025-10-27 10:05:50 +00:00
2025-10-20 08:35:28 -03:00
2025-10-17 18:58:14 +00:00
2025-10-24 18:19:53 +02:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 21:56:57 +02:00
2025-10-23 17:17:41 +00:00
2025-10-21 10:43:22 +00:00
2025-10-17 18:58:14 +00:00
2025-10-25 02:02:06 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-23 22:38:40 -06:00
2025-10-17 18:58:14 +00:00
2025-10-20 13:26:20 +02:00
2025-10-26 12:44:34 +00:00
2025-10-21 10:43:22 +00:00
2025-10-21 10:43:22 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 14:52:23 +01:00
2025-10-26 13:24:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-24 13:25:58 -06:00
2025-10-23 21:04:22 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-24 18:19:53 +02:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-25 22:51:59 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-23 14:13:35 -04:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-21 10:43:22 +00:00
2025-10-27 11:00:37 +00:00
2025-10-22 17:55:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-24 07:52:51 -04:00
2025-09-11 13:56:06 -07:00
2025-10-24 07:52:51 -04:00
2025-10-26 13:24:26 +00:00
2025-10-24 07:52:51 -04:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-17 18:58:14 +00:00
2025-10-23 22:38:40 -06:00
2025-10-20 10:30:06 +00:00
2025-10-17 18:58:14 +00:00
2025-10-20 23:54:56 +03:00
2025-10-23 22:38:40 -06:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-27 08:26:39 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:00:52 +01:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-23 20:53:19 +00:00
2025-10-17 18:58:14 +00:00
2025-10-21 10:43:22 +00:00
2025-10-24 13:25:58 -06:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-26 13:24:26 +00:00
2025-10-25 22:51:59 +00:00
2025-10-22 19:52:38 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-25 20:15:17 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 10:13:26 -04:00
2025-10-17 18:58:14 +00:00
2025-10-27 08:26:39 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-20 17:20:09 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 21:56:57 +02:00
2025-10-20 18:23:46 +00:00
2025-10-17 18:58:14 +00:00
2025-10-23 17:17:41 +00:00
2025-10-23 07:37:37 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 10:13:26 -04:00
2025-10-23 16:46:27 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-23 22:38:40 -06:00
2025-10-25 01:44:32 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 15:01:13 +01:00
2025-10-26 12:44:34 +00:00
2025-10-26 13:24:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 16:16:16 +01:00
2025-10-24 07:52:51 -04:00
2025-10-23 21:45:48 -03:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 10:13:26 -04:00
2025-10-27 10:13:26 -04:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 10:13:26 -04:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 08:26:39 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-24 18:19:53 +02:00
2025-10-22 19:52:38 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 10:01:40 +00:00
2025-10-26 13:24:26 +00:00
2025-10-26 12:44:34 +00:00
2025-10-23 04:23:25 +05:30
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-23 16:46:27 +00:00
2025-10-22 19:52:38 +00:00
2025-10-24 07:52:51 -04:00
2025-10-24 14:03:01 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-25 01:44:32 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 09:53:37 -04:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-26 13:24:26 +00:00
2025-10-21 11:29:43 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00
2025-10-27 10:13:26 -04:00
2025-10-25 01:44:32 +00:00
2025-10-17 18:58:14 +00:00
2025-10-22 19:52:38 +00:00
2025-10-21 10:30:21 +00:00
2025-10-22 19:52:38 +00:00
2025-10-20 15:26:41 +00:00
2025-10-17 18:58:14 +00:00
2025-10-17 18:58:14 +00:00