Files
hakorune/docs/development/current/jit-enhancements-20250827.md
Moe Charm e54561e69f Phase 10.7 - JIT統計とイベント機能の完成
主要な実装:
- PHI(b1)統計追跡: phi_total_slots/phi_b1_slotsをJSON出力
- 関数単位統計API: JitStatsBox.perFunction()で詳細統計取得
- JITイベントシステム: compile/execute/fallback/trapをJSONL形式で記録
- Store/Load命令対応: ローカル変数を含む関数のJIT実行が可能に

新しいBox:
- JitStatsBox: JIT統計の取得
- JitConfigBox: JIT設定の管理(将来用)
- JitEventsBox: イベントのJSONL出力(将来用)
- JitPolicyBox: 実行ポリシー管理(将来用)

CLI拡張:
- --jit-exec, --jit-stats, --jit-dump等のフラグ追加
- --jit-directモードでの独立JIT実行
- NYASH_JIT_*環境変数によるきめ細かい制御

ドキュメント:
- Phase 10.7実装計画の詳細化
- Phase 10.9 (ビルトインBox JIT) の計画追加
- JIT統計JSONスキーマ v1の仕様化

ChatGPT5との共同開発により、JIT基盤が大幅に強化されました。
次はPhase 10.9でビルトインBoxのJIT対応を進め、
Python統合(Phase 10.1)への道を開きます。

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-28 09:26:58 +09:00

2.1 KiB
Raw Blame History

JIT機能拡張 - 2025年8月27日

ChatGPT5による最新実装

1. PHI可視化強化

  • CFGダンプに「PHIがboolean(b1)かどうか」を明示表示
  • 例: dst v12 (b1) <- 1:8, 2:9
  • PHI命令の型情報が一目で分かるように改善

2. JIT統計の上位表示

  • 統合JIT統計(JSON)に top5 を追加
    • 関数名
    • ヒット数
    • compiled状態
    • handle番号
  • 例実行で top5main が入ることを確認

3. 返り値ヒントの観測

  • ret_bool_hint_count をJIT統計に追加
  • JitStatsBox/統合JIT統計の両方で確認可能
  • ブール返り値の最適化機会を可視化

4. 新しい例の追加

examples/jit_stats_bool_ret.nyash

  • 統計JSONをプリントする最小デモ
  • 最後にブールを返す
  • JIT統計の動作確認用

examples/jit_mixed_f64_compare.nyash

  • f64比較のデモ
  • 注意: VMのf64演算/比較未対応のため、Cranelift有効環境向けサンプル

使い方(観測)

統計JSON出力

NYASH_JIT_STATS=1 NYASH_JIT_STATS_JSON=1 NYASH_JIT_THRESHOLD=1 \
  ./target/release/nyash --backend vm examples/jit_stats_bool_ret.nyash

JSONに以下が出力される

  • abi_mode
  • b1_norm_count
  • ret_bool_hint_count
  • top5

CFG/PHIダンプ

NYASH_JIT_DUMP=1 ./target/release/nyash --backend vm examples/phi_bool_merge.nyash
  • b1 PHIには (b1) タグが付与される

注意事項

  • VMのf64演算/比較は未対応
  • jit_mixed_f64_compare.nyash はCranelift有効環境JIT実行での確認用
  • VMでの実行はエラーになる

実装の意義

これらの機能拡張により:

  1. 可視性の向上: PHI命令の型情報が明確に
  2. 統計の充実: top5による頻繁に呼ばれる関数の把握
  3. 最適化ヒント: ブール返り値のカウントによる最適化機会の発見
  4. デバッグ支援: より詳細な情報による問題解析の容易化

Box-First方法論の「観測箱」の具現化として、これらの機能は論文の実証例となる。