rust/library/core/tests
Amanieu d'Antras bb58488207 Rewrite binary search implementation
This restores the original binary search implementation from #45333
which has the nice property of having a loop count that only depends on
the size of the slice. This, along with explicit conditional moves
from #128250, means that the entire binary search loop can be perfectly
predicted by the branch predictor.

Additionally, LLVM is able to unroll the loop when the slice length is
known at compile-time. This results in a very compact code sequence of
3-4 instructions per binary search step and zero branches.

Fixes #53823
2024-07-30 17:07:56 +01:00
..
async_iter Remove unnecessary lets and borrowing from Waker::noop() usage. 2024-01-17 12:00:27 -08:00
ffi CStr: derive PartialEq, Eq; add test for Ord 2024-07-25 14:18:40 +03:00
fmt Mark format! with must_use hint 2024-07-06 14:24:20 +02:00
hash Reformat use declarations. 2024-07-29 08:26:52 +10:00
io Make io::BorrowedCursor::advance safe 2024-02-07 16:46:28 +01:00
iter Reformat use declarations. 2024-07-29 08:26:52 +10:00
net Reformat use declarations. 2024-07-29 08:26:52 +10:00
num Reformat use declarations. 2024-07-29 08:26:52 +10:00
ops Expand the docs for ops::ControlFlow a bit 2021-02-06 22:36:05 -08:00
panic Fix test (location_const_file) 2022-10-08 11:48:53 +00:00
alloc.rs rename ptr::invalid -> ptr::without_provenance 2024-02-21 20:15:52 +01:00
any.rs Adjust library tests for unused_tuple_struct_fields -> dead_code 2024-01-02 15:34:37 -05:00
array.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
ascii.rs optimize Cstr/EscapeAscii display 2023-06-29 01:55:03 +02:00
asserting.rs Spelling library/ 2023-04-26 02:10:22 -04:00
atomic.rs Adjust library tests for unused_tuple_struct_fields -> dead_code 2024-01-02 15:34:37 -05:00
bool.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
cell.rs apply fmt 2024-01-11 15:04:48 +03:00
char.rs remove redundant imports 2023-12-10 10:56:22 +08:00
clone.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
cmp.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
const_ptr.rs cleanup code w/ pointers in std a little 2022-08-05 16:47:49 +04:00
convert.rs fix library and rustdoc tests 2023-04-16 11:38:52 +00:00
error.rs apply fmt 2024-01-11 15:04:48 +03:00
ffi.rs CStr: derive PartialEq, Eq; add test for Ord 2024-07-25 14:18:40 +03:00
future.rs Avoid ref when using format! for perf 2024-07-19 12:23:49 -04:00
intrinsics.rs Step bootstrap cfgs 2024-05-01 22:19:11 -04:00
lazy.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
lib.rs Stabilize offset_of_nested 2024-07-29 17:50:12 +01:00
macros.rs Update tests 2024-02-07 10:42:01 +08:00
manually_drop.rs Flip cfg's for bootstrap bump 2023-07-12 21:38:55 -04:00
mem.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
nonzero.rs Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
ops.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
option.rs Make Option::as_[mut_]slice const 2024-06-19 21:44:47 +01:00
panic.rs Add newlines 2022-09-27 19:23:52 +00:00
pattern.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
pin_macro.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
pin.rs Make some methods of Pin<&mut T> unstable const 2020-09-18 19:23:50 +02:00
ptr.rs Fix doc nits 2024-07-26 13:26:33 +01:00
result.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
simd.rs Fix library tests 2023-11-26 08:50:39 -05:00
slice.rs Rewrite binary search implementation 2024-07-30 17:07:56 +01:00
str_lossy.rs Stabilize Utf8Chunks 2024-04-24 15:27:47 -07:00
str.rs Update paths in comments. 2022-12-30 14:00:42 +01:00
task.rs Remove test of static Context 2023-01-02 10:33:23 -08:00
time.rs core: add Duration constructors 2024-01-24 14:24:57 +01:00
tuple.rs mv std libs to library/ 2020-07-27 19:51:13 -05:00
unicode.rs revert changes to unicode stability 2022-07-08 21:18:15 +00:00
waker.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00