rust/src/libcore
bors d332aead90 Auto merge of #25434 - dotdash:gep, r=alexcrichton
Using regular pointer arithmetic to iterate collections of zero-sized types
doesn't work, because we'd get the same pointer all the time. Our
current solution is to convert the pointer to an integer, add an offset
and then convert back, but this inhibits certain optimizations.

What we should do instead is to convert the pointer to one that points
to an i8\*, and then use a LLVM GEP instructions without the inbounds
flag to perform the pointer arithmetic. This allows to generate pointers
that point outside allocated objects without causing UB (as long as you
don't dereference them), and it wraps around using two's complement,
i.e. it behaves exactly like the wrapping_* operations we're currently
using, with the added benefit of LLVM being able to better optimize the
resulting IR.
2015-05-16 19:17:30 +00:00
..
fmt core: made the core formatter to use a new flt2dec. 2015-05-06 14:21:41 +09:00
hash Restore HashMap performance by allowing some functions to be inlined 2015-05-03 14:08:30 +02:00
num Auto merge of #24612 - lifthrasiir:flt2dec, r=pnkfelix 2015-05-09 14:56:56 +00:00
str docs: Update FromStr documentation 2015-05-11 03:41:53 +02:00
any.rs Add downcasting to std::error::Error 2015-04-30 18:20:22 -07:00
array.rs Implement AsRef and AsMut for fixed-sized arrays 2015-03-25 01:37:08 +02:00
atomic.rs Squeeze the last bits of tasks in documentation in favor of thread 2015-05-09 02:24:18 +09:00
cell.rs Rebasing 2015-05-13 14:35:53 +12:00
char.rs deprecate Unicode functions that will be moved to crates.io 2015-04-16 17:03:05 -04:00
clone.rs pluralize doc comment verbs and add missing periods 2015-04-13 13:57:51 -04:00
cmp.rs Convert #[lang="..."] to #[lang = "..."] 2015-05-09 14:50:28 -05:00
cmp_macros.rs std: Remove #[old_orphan_check] from PartialEq 2015-03-31 13:39:14 -07:00
convert.rs TRPL: Borrow and AsRef 2015-05-12 10:53:50 -04:00
default.rs Remove doc-comment default::Default imports 2015-04-22 09:42:36 -04:00
intrinsics.rs Allow for better optimizations of iterators for zero-sized types 2015-05-15 15:30:22 +02:00
iter.rs doc: unwrap is discouraged, so use Some 2015-05-10 23:39:13 +02:00
lib.rs libs: Move favicon URLs to HTTPS 2015-05-15 16:04:01 -07:00
macros.rs Writer -> Write in macro docs 2015-05-13 10:47:33 -04:00
marker.rs Remove SNAP comments 2015-05-13 16:37:17 +12:00
mem.rs Remove SNAP comments 2015-05-13 16:37:17 +12:00
nonzero.rs Remove SNAP comments 2015-05-13 16:37:17 +12:00
ops.rs Remove SNAP comments 2015-05-13 16:37:17 +12:00
option.rs Fix incorrect link in Option documentation. 2015-05-04 17:53:08 +01:00
panicking.rs Convert #[lang="..."] to #[lang = "..."] 2015-05-09 14:50:28 -05:00
prelude.rs std: Remove deprecated AsOsStr/Str/AsSlice traits 2015-04-21 11:37:34 -07:00
ptr.rs rollup merge of #24610: nagisa/offset-docs 2015-04-29 15:45:34 -07:00
raw.rs Fix a tiny typo in core::raw 2015-04-22 23:06:32 +02:00
result.rs rollup merge of #24636: alexcrichton/remove-deprecated 2015-04-21 15:28:53 -07:00
simd.rs Fallout in public-facing and semi-public-facing libs 2015-04-01 11:23:45 -04:00
slice.rs Auto merge of #25434 - dotdash:gep, r=alexcrichton 2015-05-16 19:17:30 +00:00
tuple.rs core: Update tuple doc 2015-03-15 18:16:03 +01:00
ty.rs markers -> marker 2015-01-07 12:10:31 +13:00