Commit Graph

1766 Commits

Author SHA1 Message Date
Ion Gaztañaga 4784eacef3 Fixes #337 ("New -Wundef warning") 2026-05-19 23:59:44 +02:00
Ion Gaztañaga a06e8bde73 Fix post-increment bug in "compose" 2026-05-15 14:58:52 +02:00
Ion Gaztañaga 69d682f0fa Tidy segmented_iterator_traits for deque iterators 2026-05-14 23:52:02 +02:00
Ion Gaztañaga c7956ed6de Update changelog for 1.92 2026-05-14 10:11:41 +02:00
Ion Gaztañaga 198b2a076d Fixes #336 ("Compile error with erase and small_vector<std::string>") 2026-05-14 10:05:33 +02:00
Ion Gaztañaga 44317b29d6 Fix documentation for is_partitioned 2026-05-12 15:06:46 +02:00
Ion Gaztañaga c51340678c Implemented first recursive search_n implementation. Add random-access iterator overloads 2026-05-10 01:28:24 +02:00
Ion Gaztañaga 77952aa951 Refactor segmented benches in groups, added additional bench to search_n 2026-05-10 01:27:39 +02:00
Ion Gaztañaga acfe58c5d1 Avoid unneeded indirection in segmented_is_sorted_until without predicate 2026-05-10 00:58:31 +02:00
Ion Gaztañaga 9e4de47d45 Recover multi segmentation 2026-05-10 00:57:37 +02:00
Ion Gaztañaga db3ba9a983 Add BOOST_RESTRICT to segmented_count 2026-05-10 00:56:19 +02:00
Ion Gaztañaga 75b698f17d Added BOOST_CONTAINER_SEGMENTED_DISABLE_PRAGMA_UNROLL / BOOST_CONTAINER_SEGMENTED_ENABLE_PRAGMA_UNROLL handling 2026-05-10 00:12:29 +02:00
Ion Gaztañaga 3148e4877c Fix BOOST_CONTAINER_UNROLL for Clang 2026-05-09 23:37:16 +02:00
Ion Gaztañaga 542c76dbcd Remove unneeded segmented_fill_dispatch 2026-05-09 23:15:04 +02:00
Ion Gaztañaga a0b8a366e2 Add flag to disable bidirectional iterator algorithms 2026-05-07 16:44:18 +02:00
Ion Gaztañaga 8dece7ac31 Optimize segmented partition 2026-05-07 16:43:44 +02:00
Ion Gaztañaga 22438f626e Handle BENCH_ON define to trigger the long run 2026-05-06 18:05:00 +02:00
Ion Gaztañaga 5e09015223 Limit code alignement for GCC >= 9 2026-05-06 16:15:29 +02:00
Ion Gaztañaga b6f0114405 Protect BOOST_CONTAINER_UNROLL_PRAGMA for GCC >= 15 because a bug in the middle-end can trigger un-ignorable warnings when the loop can't be unrolled 2026-05-06 16:14:20 +02:00
Ion Gaztañaga 7dfd0cafb9 Add align-functions=64", "align-loops=32 for GCC to make benchmarks more independent of code alignment. 2026-05-06 13:00:12 +02:00
Ion Gaztañaga 2085b112e2 Add BOOST_CONTAINER_SEGMENTED_UNROLL to segmented algorithms 2026-05-06 12:59:45 +02:00
Ion Gaztañaga c075bafd70 Added BOOST_CONTAINER_UNROLL and BOOST_CONTAINER_SEGMENTED_UNROLL 2026-05-06 12:50:03 +02:00
Ion Gaztañaga 017debc400 Use 128 block size for tests 2026-05-06 00:03:04 +02:00
Ion Gaztañaga 82f8370e0c Selective forceinline 2026-05-06 00:02:30 +02:00
Ion Gaztañaga b6a5bdb102 Use segmented_find_if to take advantage of potential unrolling 2026-05-05 16:33:22 +02:00
Ion Gaztañaga 2e0809bea0 Fix sorted_until_rec bug when BOOST_CONTAINER_SEGMENTED_LOOP_UNROLLING is activated 2026-05-05 16:31:22 +02:00
Ion Gaztañaga 562707ff8b Take advantage of random access iterators in the source range to avoid bounds checking on segmented iterators 2026-05-05 14:08:52 +02:00
Ion Gaztañaga ce2bbf6f67 Reduce number of overloads an simplify implementation 2026-05-05 12:10:51 +02:00
Ion Gaztañaga 10e6e52b5d Use forceinline in for_each 2026-05-05 10:19:56 +02:00
Ion Gaztañaga 48a6bf4c85 Add BOOST_CONTAINER_SEGMENTED_COUNT_BRANCHLESS option 2026-05-05 10:19:30 +02:00
Ion Gaztañaga adefd94a9d Add missing BOOST_RESTRICT 2026-05-05 00:54:34 +02:00
Ion Gaztañaga aff6cc2343 Use BOOST_RESTRICT to improve aliasing analysis 2026-05-05 00:40:19 +02:00
Ion Gaztañaga 2ab08aafe7 Activate again MyInt benchs 2026-05-05 00:02:17 +02:00
Ion Gaztañaga 2558a77272 Optimized "partition" using the same strategy as segmented_reverse for bidirectional iterators (taking advantage of disjoint ranges) 2026-05-05 00:01:32 +02:00
Ion Gaztañaga 73c3c897ca Avoid references to avoid aliasing slowdowns 2026-05-05 00:00:24 +02:00
Ion Gaztañaga cff30de4c9 Simplify segmented_mismatch_iter2_bounded 2026-05-04 23:58:44 +02:00
Ion Gaztañaga dd1308fd0e Reimplemented to avoid aliasing issues. 2026-05-04 16:03:32 +02:00
Ion Gaztañaga 0454dfe325 Selective forceinline 2026-05-04 16:03:12 +02:00
Ion Gaztañaga d1812c25b4 Use goto for consistency 2026-05-04 13:22:15 +02:00
Ion Gaztañaga 49e0c9e0bb Use BOOST_RESTRICT to avoid suboptimal aliasing. 2026-05-04 12:30:17 +02:00
Ion Gaztañaga 54144ad54a Add forceinline in selected places 2026-05-04 11:02:46 +02:00
Ion Gaztañaga daed6adf4f Improved formatting of code under BOOST_CONTAINER_SEGMENTED_LOOP_UNROLLING 2026-05-04 10:45:09 +02:00
Ion Gaztañaga 7597ba7662 Implement BOOST_CONTAINER_BENCH_SEGMENTED_GROUP macro to select a sub-group of benchmarks depending on the number of used ranges (1-3). 2026-05-04 10:44:35 +02:00
Ion Gaztañaga 54ac25252c Use forceinline in selected places 2026-05-04 10:43:50 +02:00
Ion Gaztañaga c451e3f2f9 Add segmente input and output testing to more algorithms 2026-05-03 23:23:42 +02:00
Ion Gaztañaga e85fe7a449 Implement segmented input and output management 2026-05-03 23:23:08 +02:00
Ion Gaztañaga 8bd6381871 Protect output iterator segmentation with BOOST_CONTAINER_DISABLE_MULTI_SEGMENTED_ALGO 2026-05-03 22:34:13 +02:00
Ion Gaztañaga 02086c39d7 Write direct implementation 2026-05-03 22:21:13 +02:00
Ion Gaztañaga 456ffb906b Remove BOOST_CONTAINER_SEGMENTED_ENABLE_DUAL_RA_OPTIMIZATION 2026-05-03 22:20:53 +02:00
Ion Gaztañaga 9d38794a18 Add more segmented input/output combinations to the test 2026-05-02 01:05:24 +02:00