smokes: add curated LLVM runner; archive legacy smokes; PHI-off unified across Bridge/Builder; LLVM resolver tracing; minimal Throw lowering; config env getters; dev profile and root cleaner; docs updated; CI workflow runs curated LLVM (PHI-on/off)
This commit is contained in:
@ -15,7 +15,13 @@ LifeBox Model(LBM)は「Box=Loop1」という見方でライフサイクル
|
||||
- 論文A(MIR13/IR設計): 本稿は将来の拡張。まずAを優先して仕上げ、その後に独立短論文としてまとめる。
|
||||
- 論文B(Nyash言語): birth/fini・async/generator の設計と橋渡し要素。
|
||||
|
||||
## 2025-09-16 追記: MIR進化計画
|
||||
- **MIR14→MIR13→MIR17の段階的移行**: `mir-evolution-plan.md` に詳細記載
|
||||
- Codexとの協働でLoopForm設計を具体化
|
||||
- PHI責務のLLVM層移管とLoopForm追加(+4命令)の戦略
|
||||
|
||||
---
|
||||
|
||||
- 下書き本文: `main-paper-jp.md`
|
||||
- MIR進化計画: `mir-evolution-plan.md`(新規追加)
|
||||
- 補助: 擬似MIRとLowering図、評価計画の雛形を本文内に記載
|
||||
|
||||
119
docs/private/papers/paper-e-loop-signal-ir/mir-evolution-plan.md
Normal file
119
docs/private/papers/paper-e-loop-signal-ir/mir-evolution-plan.md
Normal file
@ -0,0 +1,119 @@
|
||||
# MIR進化計画: MIR14 → MIR13 → MIR17
|
||||
|
||||
## 概要
|
||||
|
||||
LoopForm導入に向けた段階的なMIR進化戦略。PHI命令の責務をLLVM層に移管し、より高レベルな制御構造表現を導入する。
|
||||
|
||||
## 命令数の変遷
|
||||
|
||||
```
|
||||
MIR14(現在): 14命令(PHIあり)
|
||||
↓ Phase 15終盤
|
||||
MIR13: 13命令(PHI除去)
|
||||
↓ Phase 16
|
||||
MIR17: 17命令(LoopForm追加)
|
||||
```
|
||||
|
||||
## MIR13(Phase 15終盤)
|
||||
|
||||
### 削除される命令
|
||||
- **Phi**: SSA PHIノードの生成をLLVM層に移管
|
||||
|
||||
### 残る13命令
|
||||
1. Const
|
||||
2. Load / Store
|
||||
3. UnaryOp / BinOp / Compare / TypeOp
|
||||
4. Branch / Jump / Return
|
||||
5. NewBox / BoxCall
|
||||
6. ExternCall / Call
|
||||
7. Throw / Catch(既存維持)
|
||||
|
||||
### 実装方針
|
||||
- Bridge/BuilderはPHIを生成しない
|
||||
- LLVM層(llvmlite/Resolver)がCFGパターンからPHIを合成
|
||||
- VM/Interpreterは直線的実行を継続(PHI無視)
|
||||
|
||||
## MIR17(Phase 16)
|
||||
|
||||
### 追加される4命令(LoopForm)
|
||||
|
||||
1. **LoopHeader** `{ id, params[] }`
|
||||
- ループヘッダBBの宣言
|
||||
- params[]はループ搬送値のプレースホルダ
|
||||
|
||||
2. **LoopEnter** `{ header: bb, args[] }` (terminator)
|
||||
- Preheaderからヘッダへの遷移
|
||||
- args[]は搬送値の初期値
|
||||
|
||||
3. **LoopLatch** `{ header: bb, args[] }` (terminator)
|
||||
- 本体末尾からヘッダへのバックエッジ
|
||||
- args[]は更新後の搬送値
|
||||
|
||||
4. **LoopExit** `{ exit: bb }` (terminator)
|
||||
- ループからの脱出(break相当)
|
||||
|
||||
### なぜ+4命令か
|
||||
- ループの構造を明示的に表現
|
||||
- Preheader/Header/Body/Exitの役割を宣言的に
|
||||
- LLVM層でのPHI生成が機械的に可能
|
||||
|
||||
## 合流点の扱い(将来検討)
|
||||
|
||||
### MergeForm(追加候補)
|
||||
```rust
|
||||
// If/Else等の合流用(将来のMIR18以降)
|
||||
MergeHeader { id, params[] }
|
||||
MergeEnter { header: bb, args[] }
|
||||
```
|
||||
|
||||
## 移行のメリット
|
||||
|
||||
1. **責務分離の明確化**
|
||||
- MIR: 制御構造の宣言
|
||||
- LLVM: SSA表現の生成
|
||||
|
||||
2. **段階的移行**
|
||||
- Phase 15: PHI生成を止める(互換性維持)
|
||||
- Phase 16: LoopForm導入(新機能)
|
||||
|
||||
3. **将来拡張への道筋**
|
||||
- Generator/Async/Effectへの対応準備
|
||||
- LifeBox Model(LBM)への布石
|
||||
|
||||
## AI協働の記録(2025-09-16)
|
||||
|
||||
### Codex提案
|
||||
- PHI合成をllvmlite側で実施
|
||||
- LoopForm/MergeFormの構造化表現
|
||||
- TryRegionによる例外構造化(将来)
|
||||
|
||||
### 人間の洞察
|
||||
- 「MIR13に減らしてから+4でMIR17」
|
||||
- 段階的移行の重要性
|
||||
- 一気に変えないことの価値
|
||||
|
||||
### 合意形成
|
||||
- Phase 15でまずPHI非生成化
|
||||
- 安定後にLoopForm導入
|
||||
- 責務分離を徹底
|
||||
|
||||
## 実装チェックリスト
|
||||
|
||||
### Phase 15終盤(MIR13化)
|
||||
- [ ] Bridge: PHI生成を無効化するフラグ
|
||||
- [ ] llvmlite: Resolver実装(PHI合成)
|
||||
- [ ] Smoke: ループ搬送値のテスト
|
||||
- [ ] VM: PHI無視の動作確認
|
||||
|
||||
### Phase 16(MIR17化)
|
||||
- [ ] MIR: LoopForm命令の追加
|
||||
- [ ] Bridge: Loop構造の認識とLoopForm生成
|
||||
- [ ] llvmlite: LoopFormからPHIへの変換
|
||||
- [ ] ドキュメント: MIR17仕様書
|
||||
|
||||
## 関連文献
|
||||
|
||||
- 論文A(MIR13/14): 基本設計
|
||||
- 論文D(SSA構築): PHI生成の理論
|
||||
- 論文E(本稿): LoopForm理論
|
||||
- CURRENT_TASK.md: 実装計画
|
||||
Reference in New Issue
Block a user