about summary refs log tree commit diff
path: root/src/optimize/stack2reg.rs
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2019-12-31 12:25:23 +0100
committerbjorn3 <bjorn3@users.noreply.github.com>2019-12-31 15:56:28 +0100
commitb47c89de0ec4377e2cf8d0c48cb9d1952440ca65 (patch)
tree3f8da213ac4e4f4670b9edfb55987443326e2304 /src/optimize/stack2reg.rs
parent790132523f051bd1396db9e9c46a18e8c3dcd19b (diff)
downloadrust-b47c89de0ec4377e2cf8d0c48cb9d1952440ca65.tar.gz
rust-b47c89de0ec4377e2cf8d0c48cb9d1952440ca65.zip
Remove unnecessary check from temporal_order
Diffstat (limited to 'src/optimize/stack2reg.rs')
-rw-r--r--src/optimize/stack2reg.rs28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/optimize/stack2reg.rs b/src/optimize/stack2reg.rs
index eeedb7542fd..ef0f99bf6b2 100644
--- a/src/optimize/stack2reg.rs
+++ b/src/optimize/stack2reg.rs
@@ -382,30 +382,10 @@ fn temporal_order(ctx: &Context, src: Inst, dest: Inst) -> TemporalOrder {
     debug_assert_ne!(src, dest);
 
     if ctx.domtree.dominates(src, dest, &ctx.func.layout) {
-        return TemporalOrder::DefinitivelyBefore;
+        TemporalOrder::DefinitivelyBefore
     } else if ctx.domtree.dominates(src, dest, &ctx.func.layout) {
-        return TemporalOrder::NeverBefore;
+        TemporalOrder::NeverBefore
+    } else {
+        TemporalOrder::MaybeBefore
     }
-
-    let src_ebb = ctx.func.layout.inst_ebb(src).unwrap();
-    let dest_ebb = ctx.func.layout.inst_ebb(dest).unwrap();
-
-    // FIXME O(stack_load count * ebb count)
-    // FIXME reuse memory allocations
-    let mut visited = EntitySet::new();
-    let mut todo = EntitySet::new();
-    todo.insert(dest_ebb);
-    while let Some(ebb) = todo.pop() {
-        if visited.contains(ebb) {
-            continue;
-        }
-        visited.insert(ebb);
-        if ebb == src_ebb {
-            return TemporalOrder::MaybeBefore;
-        }
-        for bb in ctx.cfg.pred_iter(ebb) {
-            todo.insert(bb.ebb);
-        }
-    }
-    TemporalOrder::NeverBefore
 }