diff --git a/hercules_cg/src/rt.rs b/hercules_cg/src/rt.rs index 88e8487cc76445b63fee279adb1b5e3948b5866d..313f7c10ad8b4d56c8b5a45bc7aca315aab0f807 100644 --- a/hercules_cg/src/rt.rs +++ b/hercules_cg/src/rt.rs @@ -1361,8 +1361,8 @@ impl<'a> RTContext<'a> { fn get_value(&self, id: NodeID, bb: NodeID, lhs: bool) -> String { let func = self.get_func(); if let Some((control, _, _)) = func.nodes[id.idx()].try_reduce() - && let fork = self.join_fork_map[&control] - && !self.nodes_in_fork_joins[&fork].contains(&bb) + && (control == bb + || !self.nodes_in_fork_joins[&self.join_fork_map[&control]].contains(&bb)) { format!("reduce_{}", id.idx()) } else if func.nodes[id.idx()].is_call()