docs: Phase 196 Implementation Results documentation
Updated documentation with Phase 196 completion details: 1. phase196-select-bug-fix.md: - Added "Implementation Results" section with fix details - Before/After code examples - Complete test results (all patterns PASS) - Reference to phase196-select-bug-analysis.md 2. joinir-architecture-overview.md: - Added Select expansion invariant to InstructionRewriter section - "PHI inputs must use remapper.remap_instruction() remapped ValueIds" - "InstructionRewriter only remaps block IDs, not ValueIds" 3. CURRENT_TASK.md: - Marked Phase 196 as complete with summary - Added Phase 197 as next candidate (JsonParser deployment) All Phase 196 documentation now complete. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -276,6 +276,10 @@ JoinIR ラインで守るべきルールを先に書いておくよ:
|
||||
- continuation 関数(k_exit)をスキップし、Return → exit ブロック Jump に変換。
|
||||
- `JoinFragmentMeta.expr_result` と exit_bindings をヘッダ PHI 経由で収集し、`exit_phi_inputs` / `carrier_inputs` を復活させた(SSA‑undef 修正済み)。
|
||||
- tail call を Branch/Jump に書き換えつつ、LoopHeaderPhiInfo に latch 入力を記録する。
|
||||
- **Select 展開の不変条件(Phase 196)**:
|
||||
- PHI の入力 ValueId は必ず `remapper.remap_instruction()` で remap 済みの MIR ValueId を使用。
|
||||
- InstructionRewriter では ValueId の二重 remap を行わない(block ID のみ remap)。
|
||||
- 詳細: [phase196-select-bug-analysis.md](./phase196-select-bug-analysis.md)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user