Commit Graph

1033 Commits

Author SHA1 Message Date
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 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 54ac25252c Use forceinline in selected places 2026-05-04 10:43:50 +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 215b14a762 Reimplement segmented_merge so that all iterator (input1, input2, output) can be segmented 2026-05-02 01:05:02 +02:00
Ion Gaztañaga 1b8ba217a6 Reimplement segmented_copy_n so that we can take advantage of source and destination segmentetion 2026-05-02 00:34:22 +02:00
Ion Gaztañaga 8921f4194d Remove forceinline 2026-05-02 00:32:05 +02:00
Ion Gaztañaga cd6a77ae20 Use sent_filter utility 2026-05-02 00:31:41 +02:00
Ion Gaztañaga 30352d2651 Add segtrio and sent_filter utilities 2026-05-02 00:30:45 +02:00
Ion Gaztañaga 70bfb493be remove forceinline 2026-05-02 00:30:18 +02:00
Ion Gaztañaga 6539476422 Alternative dual random-access iterator dispatching to avoid demoting iterators, removed make_wrapped_iterator usage. 2026-04-29 00:45:22 +02:00
Ion Gaztañaga f7990bd034 Reimplemented segmented_is_sorted_until to simplify and speed it up. The new implementation does an early check and there is no longer need to pass a boolean validity flag for the previous iterator. 2026-04-27 01:16:55 +02:00
Ion Gaztañaga 216e6b7f01 Implement deepest_local_iterator_impl::get 2026-04-27 01:07:52 +02:00
Ion Gaztañaga 8a8aff2e9d Fix compilation error when BOOST_CONTAINER_SEGMENTED_LOOP_UNROLLING is activated 2026-04-27 01:07:23 +02:00
Ion Gaztañaga ed68c8ea15 Simplify segment loop exit conditions. 2026-04-26 23:56:45 +02:00
Ion Gaztañaga ff744ecf2f Apply dual random access optimization to several algorithms 2026-04-26 00:41:41 +02:00
Ion Gaztañaga 1daeb0b488 Make segduo convertible from another segduo and activate the dual random-access optimization. 2026-04-26 00:40:59 +02:00
Ion Gaztañaga 4d407c8282 Make wrapped_iterator convertible to the original 2026-04-26 00:39:49 +02:00
Ion Gaztañaga a13ed0a7e8 forceinline core loop and simplify outside dest loop to avoid repeating conditions 2026-04-25 01:04:49 +02:00
Ion Gaztañaga 8cb5c0f093 Make segmented_copy multi segmented 2026-04-25 01:04:16 +02:00
Ion Gaztañaga 432439e8ba Further improve segmented_reverse for random-access iterators 2026-04-25 00:09:45 +02:00
Ion Gaztañaga 798133991c Optimize segmented_reverse for random-access iterators 2026-04-25 00:06:42 +02:00
Ion Gaztañaga f2b048a685 Direct implementation of segmented_fill[_n], calling segmented_generate[_n] can be suboptimal in some compilers. 2026-04-24 13:19:57 +02:00
Ion Gaztañaga 1586338ce0 Better formating for the unrolled code to avoid GCC warnings 2026-04-24 13:19:13 +02:00
Ion Gaztañaga d985b1d6cf Take "gen" by reference to avoid surprises 2026-04-24 13:18:46 +02:00
Ion Gaztañaga ac111207df correct wrapped_iterator file name 2026-04-23 23:58:22 +02:00
Ion Gaztañaga 345edcbc13 Tuned a bit is_sorted_until (sentinel case) 2026-04-23 23:53:28 +02:00
Ion Gaztañaga 050d688246 Added wrapped_iterator utility 2026-04-23 23:45:17 +02:00
Ion Gaztañaga 76fc1922e1 Remove redundant tests in segmented_copy_if_dst_dispatch 2026-04-22 23:19:46 +02:00
Ion Gaztañaga dcaf49b677 Performance improvements to nest, and fixed bug when allocators are unequal 2026-04-22 01:11:10 +02:00
Ion Gaztañaga 4039017e9b Make clear supporting negative difference requirs additional checks 2026-04-20 23:05:38 +02:00
Ion Gaztañaga 89218bfb41 Enable BOOST_CONTAINER_NEST_PREFETCH_NEXT_ELEMENT 2026-04-20 22:57:05 +02:00
Ion Gaztañaga 4c84305677 Enable forceinline again in Clang and MinGW 2026-04-20 00:47:18 +02:00
Ion Gaztañaga be299e5c47 Update "hub" and "nest" to review version 2026-04-20 00:46:29 +02:00