]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc_passes/liveness.rs
Rollup merge of #68911 - jonas-schievink:inherent-overlap, r=petrochenkov
[rust.git] / src / librustc_passes / liveness.rs
index 606947bfbdd7ec9260e1b75adc533ab8175478dc..b355a47c39470559e5431d220e3349299b9dd280 100644 (file)
@@ -824,6 +824,12 @@ fn merge_from_succ(&mut self, ln: LiveNode, succ_ln: LiveNode, first_merge: bool
 
         let mut any_changed = false;
         self.indices2(ln, succ_ln, |this, idx, succ_idx| {
+            // This is a special case, pulled out from the code below, where we
+            // don't have to do anything. It occurs about 60-70% of the time.
+            if this.rwu_table.packed_rwus[succ_idx] == INV_INV_FALSE {
+                return;
+            }
+
             let mut changed = false;
             let mut rwu = this.rwu_table.get(idx);
             let succ_rwu = this.rwu_table.get(succ_idx);