Files
hakorune/docs/development/roadmap/phases/phase-11.8_mir_cleanup/PLAN.md
Moe Charm 53d88157aa Phase 12: 統一TypeBox ABI実装開始 - ChatGPT5による極小コアABI基盤構築
- TypeBox ABI雛形: メソッドスロット管理システム追加
- Type Registry: Array/Map/StringBoxの基本メソッド定義
- Host API: C ABI逆呼び出しシステム実装
- Phase 12ドキュメント整理: 設計文書統合・アーカイブ化
- MIR Builder: クリーンアップと分離実装完了

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-03 05:04:56 +09:00

1.8 KiB
Raw Blame History

Phase 11.8 MIR Cleanup Plan (Core13)

目的

  • MIR を「最小の接着剤」に純化し、BoxCall へ集約。
  • 最適化は VM/JIT の boxcall 経路に集中脱仮想化・境界消去・Barrier

スコープ

  • BoxCall 集約: ArrayGet/Set, RefGet/Set → BoxCallget/set/getField/setField
  • 維持: BinOp/Compare は MIR に残す(定数畳み込み/分岐簡約を最大化)。
  • 効果: EffectMask の正確化、WriteBarrier の確実化。

段階導入トグルenv

  • NYASH_MIR_ARRAY_BOXCALL=1 … ArrayGet/Set → BoxCall を有効化
  • NYASH_MIR_REF_BOXCALL=1 … RefGet/Set → BoxCall を有効化
  • NYASH_MIR_CORE13=1 … Core13 セットの一括有効(将来拡張)

実装ステップ

  1. Optimizer パス(デフォルト OFF
    • ArrayGet/Set → BoxCall に変換
    • RefGet/Set → BoxCall に変換
    • 変換後の Effect/Barrier を整合
  2. VM: execute_boxcall の fastpath
    • (type_id, method_id) で Array/Field を高速化
    • WriteBarrier の確実化
  3. JIT: lower_boxcall の fastpath
    • Array: GEP+Load/StoreBounds/Barrier含む
    • Field: 内部表現に応じた inlining失敗時 plugin_invoke
  4. Smokes/Bench
    • array_access_sequential / array_access_random / field_access / arithmetic_loop
    • 基準: 速度 ±5%, メモリ ±10%, MIR サイズ -20% 目標
  5. 検証
    • SSA 保持Phi 導入後の整合)
    • 意味保存before/after 等価)

非スコープ(当面)

  • 算術/比較の BoxCall 化(最適化効率低下を避け据え置き)

完了基準

  • トグル ON でスモークとベンチが基準を満たす
  • VM/JIT ともに fastpath が発火し、BoxCall 経路での最適化が確認できる

関連

  • TECHNICAL_SPEC.md詳細仕様
  • docs/development/runtime/ENV_VARS.md環境変数索引