about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatt Brubeck <mbrubeck@limpet.net>2020-09-03 15:38:57 -0700
committerMatt Brubeck <mbrubeck@limpet.net>2020-09-03 15:38:57 -0700
commitbd2313fc117fe7779b3c61336b4a62b064141509 (patch)
tree5d4f6fb3e0c73871b6eb17c92f859e4de1a320f1
parent3b0f3a0a1e25e2ac207c99492fd2a0f6fc356f35 (diff)
downloadrust-bd2313fc117fe7779b3c61336b4a62b064141509.tar.gz
rust-bd2313fc117fe7779b3c61336b4a62b064141509.zip
Update to hashbrown 0.9
-rw-r--r--Cargo.toml2
-rw-r--r--src/optimize/stack2reg.rs11
2 files changed, 5 insertions, 8 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 858a0f0e33e..187c75f6d5d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -23,7 +23,7 @@ byteorder = "1.2.7"
 indexmap = "1.0.2"
 cfg-if = "0.1.10"
 libloading = { version = "0.6.0", optional = true }
-hashbrown = "0.8.1"
+hashbrown = "0.9.0"
 
 # Uncomment to use local checkout of cranelift
 #[patch."https://github.com/bytecodealliance/wasmtime/"]
diff --git a/src/optimize/stack2reg.rs b/src/optimize/stack2reg.rs
index 7c0bd2710a6..b192a2ae832 100644
--- a/src/optimize/stack2reg.rs
+++ b/src/optimize/stack2reg.rs
@@ -389,27 +389,24 @@ fn remove_unused_stack_addr_and_stack_load(opt_ctx: &mut OptimizeContext<'_>) {
     // Replace all unused stack_addr and stack_load instructions with nop.
     let mut func = &mut opt_ctx.ctx.func;
 
-    // drain_filter() on hashbrown::HashSet drains the items that do *not* match the
-    // predicate. Once hashbrown gets updated to match the behaviour of std::drain_filter
-    // (0.8.2), the predicate will have to be reversed
     for stack_slot_users in opt_ctx.stack_slot_usage_map.values_mut() {
         stack_slot_users
             .stack_addr
             .drain_filter(|inst| {
-                !(stack_addr_load_insts_users
+                stack_addr_load_insts_users
                     .get(inst)
                     .map(|users| users.is_empty())
-                    .unwrap_or(true))
+                    .unwrap_or(true)
             })
             .for_each(|inst| StackSlotUsage::remove_unused_stack_addr(&mut func, inst));
 
         stack_slot_users
             .stack_load
             .drain_filter(|inst| {
-                !(stack_addr_load_insts_users
+                stack_addr_load_insts_users
                     .get(inst)
                     .map(|users| users.is_empty())
-                    .unwrap_or(true))
+                    .unwrap_or(true)
             })
             .for_each(|inst| StackSlotUsage::remove_unused_load(&mut func, inst));
     }