From c7aa94687b733c112aca66ca22cc09c035879d8a Mon Sep 17 00:00:00 2001
From: Russel Arbore <russel.jma@gmail.com>
Date: Wed, 19 Feb 2025 21:35:50 -0600
Subject: [PATCH] Fix inlining id functions

---
 hercules_opt/src/inline.rs               | 6 +++++-
 juno_samples/fork_join_tests/src/gpu.sch | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/hercules_opt/src/inline.rs b/hercules_opt/src/inline.rs
index f01b2366..6e308274 100644
--- a/hercules_opt/src/inline.rs
+++ b/hercules_opt/src/inline.rs
@@ -210,7 +210,11 @@ fn inline_func(
             }
 
             // Finally, delete the call node.
-            edit = edit.replace_all_uses(id, old_id_to_new_id(called_return_data))?;
+            if let Node::Parameter { index } = called_func.nodes[called_return_data.idx()] {
+                edit = edit.replace_all_uses(id, args[index])?;
+            } else {
+                edit = edit.replace_all_uses(id, old_id_to_new_id(called_return_data))?;
+            }
             edit = edit.delete_node(control)?;
             edit = edit.delete_node(id)?;
 
diff --git a/juno_samples/fork_join_tests/src/gpu.sch b/juno_samples/fork_join_tests/src/gpu.sch
index 91bd6c79..364673cd 100644
--- a/juno_samples/fork_join_tests/src/gpu.sch
+++ b/juno_samples/fork_join_tests/src/gpu.sch
@@ -52,6 +52,7 @@ slf(auto.test2);
 infer-schedules(auto.test2);
 fork-interchange[0, 1](auto.test2);
 
+inline(test6);
 fork-tile[32, 0, false, true](test6@loop);
 let out = fork-split(test6@loop);
 let out = auto-outline(test6);
-- 
GitLab