From 61bc9ae455c3933f930d7a980a4cc4efc39afb6f Mon Sep 17 00:00:00 2001
From: Xavier Routh <xrouth2@illinois.edu>
Date: Sun, 2 Feb 2025 15:43:08 -0600
Subject: [PATCH] unforkify fix

---
 hercules_opt/src/fork_guard_elim.rs | 8 ++++----
 juno_scheduler/src/pm.rs            | 1 -
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/hercules_opt/src/fork_guard_elim.rs b/hercules_opt/src/fork_guard_elim.rs
index 052fd0e4..f6914b74 100644
--- a/hercules_opt/src/fork_guard_elim.rs
+++ b/hercules_opt/src/fork_guard_elim.rs
@@ -39,7 +39,6 @@ struct GuardedFork {
     guard_if: NodeID,
     fork_taken_proj: NodeID,
     fork_skipped_proj: NodeID,
-    guard_pred: NodeID,
     guard_join_region: NodeID,
     phi_reduce_map: HashMap<NodeID, NodeID>,
     factor: Factor, // The factor that matches the guard
@@ -302,7 +301,6 @@ fn guarded_fork(
         guard_if: if_node,
         fork_taken_proj: *control,
         fork_skipped_proj: other_pred,
-        guard_pred: if_pred,
         guard_join_region: join_control,
         phi_reduce_map: phi_nodes,
         factor,
@@ -323,13 +321,15 @@ pub fn fork_guard_elim(editor: &mut FunctionEditor, fork_join_map: &HashMap<Node
         join,
         fork_taken_proj,
         fork_skipped_proj,
-        guard_pred,
         phi_reduce_map,
         factor,
         guard_if,
         guard_join_region,
     } in guard_info
-    {
+    {   
+        let Some(guard_pred) = editor.get_uses(guard_if).next() else {
+            unreachable!()
+        };
         let new_fork_info = if let Factor::Max(idx, dc) = factor {
             let Node::Fork {
                 control: _,
diff --git a/juno_scheduler/src/pm.rs b/juno_scheduler/src/pm.rs
index db3904f7..dd2ae73a 100644
--- a/juno_scheduler/src/pm.rs
+++ b/juno_scheduler/src/pm.rs
@@ -1895,7 +1895,6 @@ fn run_pass(
                 if !inner_changed {
                     break;
                 }
-                break;
             }
         }
         Pass::ForkCoalesce => {
-- 
GitLab