rust/compiler/rustc_data_structures/src
bors 5171cc76c2 Auto merge of #77476 - tgnottingham:buffered_siphasher128, r=nnethercote
perf: buffer SipHasher128

This is an attempt to improve Siphasher128 performance by buffering input. Although it reduces instruction count, I'm not confident the effect on wall times, or lack-thereof, is worth the change.

---

Additional notes not reflected in source comments:

* Implementation choices were guided by a combination of results from rustc-perf and micro-benchmarks, mostly the former.
* ~~I tried a couple of different struct layouts that might be more cache friendly with no obvious effect.~~ Update: a particular struct layout was chosen, but it's not critical to performance. See comments in source and discussion below.
* I suspect that buffering would be important to a SIMD-accelerated algorithm, but from what I've read and my own tests, SipHash does not seem very amenable to SIMD acceleration, at least by SSE.
2020-10-25 09:23:45 +00:00
..
base_n mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
binary_search_util mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
graph Don't re-export std::ops::ControlFlow in the compiler. 2020-10-22 17:26:55 -07:00
obligation_forest Turn Outcome into an opaque type to remove some runtime checks 2020-10-15 08:32:41 +02:00
owning_ref mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sip128 SipHasher128: improve constant names and add more comments 2020-10-11 23:48:35 -07:00
small_c_str mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
snapshot_map mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sorted_map mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sso SsoHashSet/Map - genericiy over Q removed 2020-10-02 20:13:23 -05:00
stable_hasher Stable hashing: add comments and tests concerning platform-independence 2020-09-30 00:57:35 -07:00
tagged_ptr Use T::BITS instead of size_of::<T> * 8. 2020-09-19 06:54:42 +02:00
tiny_list mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
transitive_relation mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
atomic_ref.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
base_n.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
box_region.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
captures.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
const_cstr.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
fingerprint.rs Replace absolute paths with relative ones 2020-10-13 14:16:45 +02:00
flock.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
frozen.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
fx.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
jobserver.rs datastructures: replace lazy_static by SyncLazy from std 2020-09-01 22:06:47 +01:00
lib.rs Auto merge of #77476 - tgnottingham:buffered_siphasher128, r=nnethercote 2020-10-25 09:23:45 +00:00
macros.rs Remove unused static_assert macro 2020-09-20 11:40:51 +02:00
map_in_place.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
profiling.rs Upgrade to measureme 9.0.0 2020-10-24 22:39:42 -04:00
ptr_key.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sharded.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sip128.rs SipHasher128: improve constant names and add more comments 2020-10-11 23:48:35 -07:00
small_c_str.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sorted_map.rs Replace absolute paths with relative ones 2020-10-13 14:16:45 +02:00
stable_hasher.rs Replace absolute paths with relative ones 2020-10-13 14:16:45 +02:00
stable_map.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
stable_set.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
stack.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
svh.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
sync.rs datastructures: replace once_cell crate with an impl from std 2020-08-30 20:06:14 +01:00
tagged_ptr.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
temp_dir.rs Capitalize safety comments 2020-09-08 22:37:18 -04:00
thin_vec.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
tiny_list.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
transitive_relation.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
unhash.rs Avoid rehashing Fingerprint as a map key 2020-09-01 18:27:02 -07:00
vec_linked_list.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
work_queue.rs Remove unused code from remaining compiler crates 2020-10-14 04:14:32 +02:00