rust/src/librustc_data_structures
bors 4a365a29d6 Auto merge of #61020 - HeroicKatora:master, r=matthewjasper
librustc_data_structures: Speedup union of sparse and dense hybrid set

This optimization speeds up the union of a hybrid bitset when that
switches it from a sparse representation to a dense bitset. It now
clones the dense bitset and integrate only the spare elements instead of
densifying the sparse bitset, initializing all elements, and then a
union on two dense bitset, touching all words a second time.

It's not completely certain if the added complexity is worth it but I would
like to hear some feedback in any case. Benchmark results from my machine:

```
Now:  bit_set::union_hybrid_sparse_to_dense ... bench:          72 ns/iter (+/- 5)
Previous: bit_set::union_hybrid_sparse_to_dense ... bench:          90 ns/iter (+/- 6)
```

This being the second iteration of trying to improve the speed, since I missed the return value in the first, and forgot to run the relevant tests. Oops.
2019-06-22 15:12:15 +00:00
..
graph Kill dead code dominator code. 2019-04-09 11:48:31 +01:00
obligation_forest rustc: doc comments 2019-02-10 23:42:32 +00:00
owning_ref Separate librustc_data_structures module 2019-06-16 14:17:01 +03:00
snapshot_map librustc_data_structures => 2018 2019-02-09 01:36:22 +09:00
sorted_map Separate librustc_data_structures module 2019-06-16 14:17:01 +03:00
base_n.rs rustc: doc comments 2019-02-10 23:42:32 +00:00
bit_set.rs Auto merge of #61020 - HeroicKatora:master, r=matthewjasper 2019-06-22 15:12:15 +00:00
box_region.rs Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
Cargo.toml rustc: use indexmap instead of a plain vector for upvars. 2019-06-01 19:17:22 +03:00
const_cstr.rs Remove licenses 2018-12-25 21:08:33 -07:00
fingerprint.rs librustc_data_structures => 2018 2019-02-09 01:36:22 +09:00
flock.rs Remove bitrig support from rust 2019-05-13 11:09:06 +02:00
fx.rs rustc: use indexmap instead of a plain vector for upvars. 2019-06-01 19:17:22 +03:00
indexed_vec.rs Add Step::sub_usize 2019-05-25 02:53:08 +02:00
interner.rs Remove licenses 2018-12-25 21:08:33 -07:00
jobserver.rs Clean up jobserver integration 2019-04-09 07:44:10 +02:00
lib.rs Make the rustc driver and interface demand driven 2019-03-10 04:49:45 +01:00
macros.rs Stabilize underscore_const_names: stage0 -> bootstrap. 2019-06-10 06:17:39 +02:00
ptr_key.rs librustc_data_structures => 2018 2019-02-09 01:36:22 +09:00
sip128.rs rustc: doc comments 2019-02-10 23:42:32 +00:00
small_c_str.rs Remove licenses 2018-12-25 21:08:33 -07:00
sorted_map.rs Separate librustc_data_structures module 2019-06-16 14:17:01 +03:00
stable_hasher.rs Add more functionality to BitMatrix 2019-06-10 14:46:40 -07:00
svh.rs rustc: doc comments 2019-02-10 23:42:32 +00:00
sync.rs Add some comments 2019-03-06 04:47:08 +01:00
thin_vec.rs Allow attributes in formal function parameters 2019-06-09 07:58:40 -03:00
tiny_list.rs librustc_data_structures => 2018 2019-02-09 01:36:22 +09:00
transitive_relation.rs rustc: doc comments 2019-02-10 23:42:32 +00:00
vec_linked_list.rs librustc_data_structures => 2018 2019-02-09 01:36:22 +09:00
work_queue.rs rustc: doc comments 2019-02-10 23:42:32 +00:00