feat: フェーズM実装 - no_phi_mode完全撤廃でPHI一本化達成
✅ **コア実装完了**: - MirBuilder: phi.rs, exprs_peek.rs全no_phi_mode分岐削除 - LoopBuilder: 3箇所のno_phi_mode分岐をPHI命令に統一 - edge_copy関連: insert_edge_copy()メソッド含む数十行削除 ⚡ **効果**: - 数百行削減によりPhase 15の80k→20k圧縮目標に大幅貢献 - 常にPHI命令使用でMIR生成の一貫性向上 - フェーズS制御フロー統一と合わせて設計改善達成 🎯 **次段階**: JSON v0 Bridge対応→collect_prints動作確認 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -50,16 +50,11 @@ impl super::MirBuilder {
|
||||
target: merge_block,
|
||||
})?;
|
||||
self.start_new_block(merge_block)?;
|
||||
if self.is_no_phi_mode() {
|
||||
for (pred, val) in phi_inputs {
|
||||
self.insert_edge_copy(pred, result_val, val)?;
|
||||
}
|
||||
} else {
|
||||
self.emit_instruction(super::MirInstruction::Phi {
|
||||
dst: result_val,
|
||||
inputs: phi_inputs,
|
||||
})?;
|
||||
}
|
||||
// フェーズM: 常にPHI命令を使用(no_phi_mode撤廃)
|
||||
self.emit_instruction(super::MirInstruction::Phi {
|
||||
dst: result_val,
|
||||
inputs: phi_inputs,
|
||||
})?;
|
||||
return Ok(result_val);
|
||||
}
|
||||
|
||||
@ -122,16 +117,11 @@ impl super::MirBuilder {
|
||||
|
||||
// Merge and yield result
|
||||
self.start_new_block(merge_block)?;
|
||||
if self.is_no_phi_mode() {
|
||||
for (pred, val) in phi_inputs {
|
||||
self.insert_edge_copy(pred, result_val, val)?;
|
||||
}
|
||||
} else {
|
||||
self.emit_instruction(super::MirInstruction::Phi {
|
||||
dst: result_val,
|
||||
inputs: phi_inputs,
|
||||
})?;
|
||||
}
|
||||
// フェーズM: 常にPHI命令を使用(no_phi_mode撤廃)
|
||||
self.emit_instruction(super::MirInstruction::Phi {
|
||||
dst: result_val,
|
||||
inputs: phi_inputs,
|
||||
})?;
|
||||
Ok(result_val)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user