diff --git a/hercules_opt/src/forkify.rs b/hercules_opt/src/forkify.rs index a6308d66eae3bd47b3d607fb8970679843599168..189670deed876b5fd7d9d9991e2d7a4aba9cad76 100644 --- a/hercules_opt/src/forkify.rs +++ b/hercules_opt/src/forkify.rs @@ -106,7 +106,7 @@ pub fn forkify_loop( else { return false; }; - + // Compute loop variance let loop_variance = compute_loop_variance(editor, l); let ivs = compute_induction_vars(editor.func(), l, &loop_variance); @@ -530,10 +530,11 @@ pub fn analyze_phis<'a>( let intersection: HashSet<_> = set1.intersection(&set2).cloned().collect(); // If this phi uses any other phis the node is loop dependant, - // we use `phis` because this phi can actually contain the loop iv and its fine. - if uses_for_dependance.any(|node| phis.contains(&node) && node != *phi) { - LoopPHI::LoopDependant(*phi) - } else if intersection.clone().iter().next().is_some() { + // // we use `phis` because this phi can actually contain the loop iv and its fine. + // if uses_for_dependance.any(|node| phis.contains(&node) && node != *phi) { + // LoopPHI::LoopDependant(*phi) + // } else + if intersection.clone().iter().next().is_some() { // PHIs on the frontier of the uses by the candidate phi, i.e in uses_for_dependance need // to have headers that postdominate the loop continue latch. The value of the PHI used needs to be defined // by the time the reduce is triggered (at the end of the loop's internal control). diff --git a/hercules_opt/src/loop_bound_canon.rs b/hercules_opt/src/loop_bound_canon.rs index f1ce872c9f8b31e8e1c1f3ba72a0df21d5858b26..3e194e2dda3319dd6c2c4ece4aea1af41e7e701b 100644 --- a/hercules_opt/src/loop_bound_canon.rs +++ b/hercules_opt/src/loop_bound_canon.rs @@ -275,7 +275,7 @@ pub fn canonicalize_single_loop_bounds( let new_binop_node = edit.add_node(Node::Binary { left, right: blah, op: BinaryOperator::LT }); edit = edit.replace_all_uses_where(binop_node, new_binop_node, |usee| *usee == if_node)?; - Some((init_id, bound_id, new_binop_node, if_node)) + Some((init_id, blah, new_binop_node, if_node)) } else {guard_info}; edit = edit.replace_all_uses_where(dc_bound_node, new_dc_bound_node, |usee| *usee == new_bop)?; @@ -289,7 +289,6 @@ pub fn canonicalize_single_loop_bounds( }; Ok(edit) }); - let update_expr_users: Vec<_> = editor .get_users(*update_expression)