Phase 9.78h: VM BinOp and/or short-circuit + BoxRef<Integer> arithmetic; add diagnostic hooks. Update CURRENT_TASK with progress and VM path-tracing TODO. Align docs: MIR26 canonical spec and phase docs.

This commit is contained in:
Moe Charm
2025-08-26 00:06:35 +09:00
parent 3a8f7092e6
commit f82ad5a84d
19 changed files with 534 additions and 69 deletions

View File

@ -1,5 +1,8 @@
# 🏆 Phase 10: LLVM Direct AOT最高性能実現
Status: DeferredCranelift JITをPhase 10の主経路に採用、AOTは後段研究
Last Updated: 2025-08-25
## 📋 Summary
MIR→LLVM IR直接変換による最高性能AOT実現。Cranelift JITをスキップし、実用優先戦略でLLVMの強力な最適化を直接活用する。

View File

@ -0,0 +1,62 @@
# Phase 10: Cranelift JIT BackendMIR→VM→Cranelift
Status: Planned (Primary path for native speed)
Last Updated: 2025-08-25
## 🎯 ゴール
- 実行系の主経路を「MIR→VM」を維持しつつ、ホットパスをCraneliftでJIT化して高速化する。
- LLVM AOTは後段Phase 11以降の研究対象へ繰り延べ。
## 🔗 位置づけ
- これまでの案MIR→LLVM AOTを改め、現実的な開発速度と安定性を優先してCranelift JITを先行。
- VMとのハイブリッド実行OSR/ホットカウントに基づくJITを採用。
## 📐 アーキテクチャ
```
AST → MIR → Optimizer → VM Dispatcher
└─(Hot)→ Cranelift JIT (fn単位)
```
- VMが命令カウント・プロファイルを集計し、しきい値超過関数をJITコンパイル。
- JIT済み関数は関数テーブルから直接呼び出し、VMはフォールバック先として維持。
## 📋 スコープ
1) 基盤
- JITマネージャ関数プロファイル・コンパイルキャッシュ
- Craneliftコード生成MIR→CLIF Lower
- 呼出しABINyash VMスタック/レジスタとのブリッジ)
2) 命令カバレッジ(段階導入)
- Phase A: Const/Copy/BinOp/Compare/Jump/Branch/Return純関数相当
- Phase B: Call/BoxCall/ArrayGet/ArraySetホットパス対応
- Phase C: TypeOp/Ref*/Weak*/Barrier必要最小
3) ランタイム連携
- Boxの所有・参照モデルを維持共有/クローンの意味論を破らない)
- 例外・TypeErrorはVMの例外パスへエスケープ
## ✅ 受け入れ基準Milestone
- M1: 算術/比較/分岐/returnの関数がJIT化され、VMより高速に実行
- M2: Array/Mapの代表操作get/set/push/sizeがJITで安定動作
- M3: BoxCallホットパス特にArray/Mapで有意な高速化2×目標
- M4: 回帰防止のベンチと`--vm-stats`連携JITカウント/時間)
## 🪜 実装ステップ
1. JITマネージャ/関数プロファイルの導入VM統計と統合
2. MIR→CLIF Lower骨子基本型/算術/比較/制御)
3. 呼出しABIブリッジ引数/戻り値/BoxRefの表現
4. JIT関数テーブル + VMディスパッチ切替
5. Array/Map/BoxCallのホットパス最適化
6. TypeOp/Ref/Weak/Barrierの必要最小を実装
7. ベンチ/スナップショット整備・回帰検出
## ⚠️ 依存・前提
- MIR26整合TypeOp/WeakRef/Barrierの統合前提
- P2PBox再設計Phase 9.xを先に安定化しておくVM/プラグインE2E維持
## 📚 参考
- Cranelift: Peepmatic/CLIF、simple_jitの最小例
- JIT/VMハイブリッド: LuaJIT/HotSpotのOSR設計
---
備考: LLVM AOTはPhase 11以降の研究路線に移行設計ドキュメントは維持

View File

@ -1,5 +1,8 @@
# Phase 10: LLVM Backend SkeletonMIR→LLVM IR AOT 最小実装)
Status: DeferredCranelift JIT先行のため、AOTは後段で検討
Last Updated: 2025-08-25
目的
- MIRからLLVM IRへの直接変換と、最小AOTパイプラインを構築するための実装ガイドCopilot向けタスクリスト
- Phase 9.7ABI/BIDExternCallを前提に、外部呼び出しの取り扱いも含めて安全に前進。