nyash-codex
e2d061d113
fix(loop/phi): loop header pinned receiver PHI の未定義ValueId解消
**問題**: TestArgs.process/1 で `Invalid value: use of undefined value ValueId(14)`
- loop条件でのmethod call(args.length())がpin_to_slotで pinned receiver作成
- header PHIが未定義のValueIdを参照していた
**根本原因**:
- pinned変数のheader PHI作成時、`preheader_value = value` として
header blockで作成された値を使用
- 正しくは preheader block の元値を参照すべき
**修正内容**:
1. **find_copy_source ヘルパー追加** (src/mir/loop_builder.rs:50-80)
- Copy命令を遡ってpreheaderの元値を特定
- NYASH_LOOP_TRACE=1 でデバッグ出力
2. **pinned変数PHI作成ロジック強化** (lines 368-410)
- NEW pinned変数: find_copy_source()で正しいpreheader値取得
- INHERITED pinned変数: pre_vars_snapshot から値取得
- PHI inputs に正しい preheader_value を設定
3. **LoopFormOps::new_value修正** (lines 1122-1127)
- value_gen.next() → next_value_id() に統一
- 関数ローカルアロケーター使用でValueId整合性確保
4. **next_value_id可視性拡大** (src/mir/builder/utils.rs:33)
- pub(super) → pub(crate) でループビルダーから使用可能に
**テスト結果**:
✅ Test1 (Direct VM): PASS
✅ Test3 (MIR verify): PASS
⚠️ Test2 (Stage-B): ValueId(17)はif-block PHI問題(別issue)
**残存問題**:
- Stage-B の ValueId(17) はループ前のif-blockで発生
- if-block PHI reassignment (%0 = phi [%2, bb3]) の構造的問題
- 別タスクで対処予定
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 06:31:31 +09:00
..
2025-11-03 23:21:48 +09:00
2025-11-08 00:46:34 +09:00
2025-11-17 03:19:03 +09:00
2025-09-24 14:13:15 +09:00
2025-08-18 21:10:06 +09:00
2025-08-18 20:53:48 +09:00
2025-09-25 01:09:48 +09:00
2025-11-08 17:04:21 +09:00
2025-09-25 05:03:59 +09:00
2025-11-10 23:17:46 +09:00
2025-11-08 15:49:25 +09:00
2025-11-17 00:48:18 +09:00
2025-09-17 07:43:07 +09:00
2025-09-28 01:39:12 +09:00
2025-09-20 05:00:31 +09:00
2025-11-14 15:54:57 +09:00
2025-11-13 16:40:58 +09:00
2025-11-06 15:41:52 +09:00
2025-09-17 07:43:07 +09:00
2025-11-17 06:31:31 +09:00
2025-11-15 22:32:13 +09:00
2025-11-11 02:07:12 +09:00
2025-11-10 23:17:46 +09:00
2025-11-17 02:38:54 +09:00
2025-11-17 03:19:03 +09:00
2025-09-23 02:15:56 +09:00
2025-09-24 09:30:42 +09:00
2025-09-17 07:43:07 +09:00
2025-11-06 22:34:18 +09:00
2025-11-07 21:04:01 +09:00
2025-09-17 07:43:07 +09:00
2025-11-13 16:40:58 +09:00
2025-11-07 21:04:01 +09:00
2025-11-06 15:41:52 +09:00
2025-09-25 05:03:59 +09:00
2025-09-25 05:03:59 +09:00
2025-09-27 08:45:25 +09:00
2025-09-17 07:43:07 +09:00
2025-11-13 18:55:14 +09:00
2025-09-17 07:43:07 +09:00
2025-09-17 07:43:07 +09:00
2025-11-13 16:40:58 +09:00
2025-11-10 23:17:46 +09:00
2025-11-09 23:40:36 +09:00
2025-09-17 07:43:07 +09:00
2025-09-17 07:43:07 +09:00
2025-11-13 16:40:58 +09:00
2025-09-17 07:43:07 +09:00
2025-09-19 12:13:43 +09:00
2025-09-17 07:43:07 +09:00
2025-09-17 07:43:07 +09:00