rust/src/liballoc
bors 70c33bb8e2 Auto merge of #53080 - hermord:rc-opt, r=alexcrichton
Change `Rc::inc_{weak,strong}` to better hint optimization to LLVM

As discussed in #13018, `Rc::inc_strong` and `Rc::inc_weak` are changed to allow compositions of `clone` and `drop` to be better optimized. Almost entirely as in [this comment](https://github.com/rust-lang/rust/issues/13018#issuecomment-408642184), except that `abort` on zero is added so that a `drop(t.clone())` does not produce a zero check followed by conditional deallocation.

This is different from #21418 in that it doesn't rely on `assume`, avoiding the prohibitive compilation slowdown.

[Before and after IR](https://gist.github.com/hermord/266e55451b7fe0bb8caa6e35d17c86e1).
2018-08-21 06:40:20 +00:00
..
benches Auto merge of #52553 - Pazzaz:vecdeque-append, r=SimonSapin 2018-08-18 08:56:12 +00:00
collections Auto merge of #52553 - Pazzaz:vecdeque-append, r=SimonSapin 2018-08-18 08:56:12 +00:00
tests Auto merge of #52553 - Pazzaz:vecdeque-append, r=SimonSapin 2018-08-18 08:56:12 +00:00
alloc.rs Add doc examples for std::alloc::{alloc,alloc_zeroed}. 2018-08-14 21:32:11 -04:00
borrow.rs Add #[must_use] to a few standard library methods 2018-03-30 23:06:05 -07:00
boxed.rs Rename Executor trait to Spawn 2018-08-06 12:18:47 +02:00
boxed_test.rs Add missing dyn in liballoc 2018-07-10 22:32:19 +02:00
Cargo.toml Add benchmark for VecDeque append 2018-08-10 21:52:00 +02:00
fmt.rs Reexport fmt::Alignment into std 2018-06-03 17:04:48 +02:00
lib.rs liballoc: enable feature(nll) for bootstrap 2018-08-09 01:50:49 -04:00
macros.rs fix some typos 2017-11-21 15:33:45 +01:00
prelude.rs Add the alloc::prelude module 2018-07-07 23:08:43 +02:00
raw_vec.rs Move core::alloc::CollectionAllocErr to alloc::collections 2018-06-29 14:01:33 +02:00
rc.rs Fixed typo 2018-08-05 02:41:14 -04:00
slice.rs Rollup merge of #51147 - tmccombs:sliceindex, r=SimonSapin 2018-06-02 13:14:25 -06:00
str.rs Rollup merge of #51807 - newpavlov:deprecate_str_slice, r=alexcrichton 2018-07-22 22:10:09 +08:00
string.rs Add links to std::char::REPLACEMENT_CHARACTER from docs. 2018-08-11 15:42:35 -04:00
sync.rs typos 2018-07-23 12:53:37 +02:00
task.rs Switch to bootstrapping from 1.29 beta 2018-08-01 11:59:08 -06:00
vec.rs Use SetLenOnDrop in Vec::truncate() 2018-07-31 20:53:53 +03:00