diff --git a/src/mir/builder/control_flow/joinir/merge/instruction_rewriter.rs b/src/mir/builder/control_flow/joinir/merge/instruction_rewriter.rs index e4f0e26b..60ccfb55 100644 --- a/src/mir/builder/control_flow/joinir/merge/instruction_rewriter.rs +++ b/src/mir/builder/control_flow/joinir/merge/instruction_rewriter.rs @@ -194,10 +194,13 @@ pub(super) fn merge_and_rewrite( type_hint: None, } => MirInstruction::Phi { dst, + // Phase 172: Fix P0 - Remap BOTH block ID AND value ID for PHI incoming inputs: inputs .iter() .map(|(bb, val)| { - (local_block_map.get(bb).copied().unwrap_or(*bb), *val) + let remapped_bb = local_block_map.get(bb).copied().unwrap_or(*bb); + let remapped_val = remapper.remap_value(*val); + (remapped_bb, remapped_val) }) .collect(), type_hint: None,