From 751ded74756f4d650e23e8cac8ce55081106c8cb Mon Sep 17 00:00:00 2001
From: Aaron Councilman <aaronjc4@illinois.edu>
Date: Fri, 28 Feb 2025 10:59:01 -0600
Subject: [PATCH] Improve fork coalesce check for intermediate control

---
 hercules_opt/src/fork_transforms.rs | 20 ++++----------------
 1 file changed, 4 insertions(+), 16 deletions(-)

diff --git a/hercules_opt/src/fork_transforms.rs b/hercules_opt/src/fork_transforms.rs
index cb0e7de4..12b91194 100644
--- a/hercules_opt/src/fork_transforms.rs
+++ b/hercules_opt/src/fork_transforms.rs
@@ -642,27 +642,15 @@ pub fn fork_coalesce_helper(
     }
 
     // Check for control between join-join and fork-fork
-    let Some(user) = editor
-        .get_users(outer_fork)
-        .filter(|node| editor.func().nodes[node.idx()].is_control())
-        .next()
-    else {
-        return None;
-    };
+    let (control, _) = editor.node(inner_fork).try_fork().unwrap();
 
-    if user != inner_fork {
+    if control != outer_fork {
         return None;
     }
 
-    let Some(user) = editor
-        .get_users(inner_join)
-        .filter(|node| editor.func().nodes[node.idx()].is_control())
-        .next()
-    else {
-        return None;
-    };
+    let control = editor.node(outer_join).try_join().unwrap();
 
-    if user != outer_join {
+    if control != inner_join {
         return None;
     }
 
-- 
GitLab