about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-05-03 20:55:59 +0000
committerbors <bors@rust-lang.org>2015-05-03 20:55:59 +0000
commit796be61e9099a440c90f35636ec6a41f89f3639f (patch)
treeeca28d056bcf4ef5c7f66ae24f198ca7b49a73e7 /src/libstd
parent6b3d66b04f9ade6b3a46db4eb188e7397b44117a (diff)
parentf4176b52d3817b93570a73e2768736276d76ebf5 (diff)
downloadrust-796be61e9099a440c90f35636ec6a41f89f3639f.tar.gz
rust-796be61e9099a440c90f35636ec6a41f89f3639f.zip
Auto merge of #25070 - dotdash:inline_hash, r=alexcrichton
Since the hashmap and its hasher are implemented in different crates, we
currently can't benefit from inlining, which means that especially for
small, fixed size keys, there is a huge overhead in hash calculations,
because the compiler can't apply optimizations that only apply for these
keys.

Fixes the brainfuck benchmark in #24014.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/collections/hash/map.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs
index ec130e8233a..f82c1653be1 100644
--- a/src/libstd/collections/hash/map.rs
+++ b/src/libstd/collections/hash/map.rs
@@ -1600,6 +1600,7 @@ impl RandomState {
            reason = "hashing an hash maps may be altered")]
 impl HashState for RandomState {
     type Hasher = SipHasher;
+    #[inline]
     fn hasher(&self) -> SipHasher {
         SipHasher::new_with_keys(self.k0, self.k1)
     }