feat(joinir): Phase 256 P1.5 - JoinInst::Select 命令サポート(根治)

## 変更内容

Task 1(既完了): boundary パラメータを bridge 経路全体に伝播
- conversion_pipeline.rs, bridge.rs(複数箇所), meta.rs, routing_legacy_binding.rs, execute_box.rs

Task 2-A~2-D: Select 命令の実装
- 2-A: MirInstruction::Select バリアント追加
- 2-B: JoinIR Select → MIR Select 直接変換(branch+phi展開廃止)
- 2-C:  joinir_id_remapper に Select remap case(ValueId変換の根治)
- 2-D: value_collector に Select case

## 根本原因解決

Pattern7 の JoinInst::Select が JoinIR→MIR で未対応
→ ValueId(1002) → ValueId(57) のリマップが行われず
→ "use of undefined value ValueId(57)" エラー

## 現在地

 cargo check: 0 errors
 Pattern7/6 VM test(Task 2-E LLVM実装後)

🧠 Generated with Claude Code
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-20 03:11:58 +09:00
parent 64f679354a
commit bfd324d7b9
8 changed files with 196 additions and 70 deletions

View File

@ -369,7 +369,8 @@ impl NormalizationExecuteBox {
bridge_module.phase = crate::mir::join_ir::JoinIrPhase::Structured;
}
let empty_meta: JoinFuncMetaMap = BTreeMap::new();
let mir_module = bridge_joinir_to_mir_with_meta(&bridge_module, &empty_meta)
// Phase 256 P1.5: Pass boundary to bridge for ValueId remapping
let mir_module = bridge_joinir_to_mir_with_meta(&bridge_module, &empty_meta, Some(&boundary))
.map_err(|e| format!("[normalization/execute] MIR conversion failed: {:?}", e))?;
// Merge with boundary