diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index 75e18d42..ff1cc3ba 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -1,5 +1,30 @@ # 本線タスク(現在) +## 更新メモ(2025-12-15 Phase 19-4 HINT-MISMATCH-CLEANUP) + +### Phase 19-4 HINT-MISMATCH-CLEANUP: `__builtin_expect(...,0)` mismatch cleanup — ✅ DONE + +**Result summary (Mixed 10-run)**: + +| Phase | Target | Result | Throughput | Key metric / Note | +|---:|---|---|---:|---| +| 19-4a | Wrapper ENV gates | ✅ GO | +0.16% | instructions -0.79% | +| 19-4b | Free hot/cold dispatch | ❌ NO-GO | -2.87% | revert(hint が正しい) | +| 19-4c | Free Tiny Direct gate | ✅ GO | +0.88% | cache-misses -16.7% | + +**Net (19-4a + 19-4c)**: +- Throughput: **+1.04%** +- Cache-misses: **-16.7%**(19-4c が支配的) +- Instructions: **-0.79%**(19-4a が支配的) + +**Key learning**: +- “UNLIKELY hint を全部削除”ではなく、**cond の実効デフォルト**(preset default ON/OFF)で判断する。 + - Preset default ON → UNLIKELY は逆(mismatch)→ 削除/見直し(19-4a, 19-4c) + - Preset default OFF → UNLIKELY は正しい → 維持(19-4b) + +**Ref**: +- `docs/analysis/PHASE19_FASTLANE_INSTRUCTION_REDUCTION_4_HINT_MISMATCH_AB_TEST_RESULTS.md` + ## 更新メモ(2025-12-15 Phase 19-3b ENV-SNAPSHOT-PASSDOWN) ### Phase 19-3b ENV-SNAPSHOT-PASSDOWN: Consolidate ENV snapshot reads across hot helpers — ✅ GO (+2.76%) diff --git a/docs/analysis/PHASE19_FASTLANE_INSTRUCTION_REDUCTION_4_HINT_MISMATCH_AB_TEST_RESULTS.md b/docs/analysis/PHASE19_FASTLANE_INSTRUCTION_REDUCTION_4_HINT_MISMATCH_AB_TEST_RESULTS.md new file mode 100644 index 00000000..2272708c --- /dev/null +++ b/docs/analysis/PHASE19_FASTLANE_INSTRUCTION_REDUCTION_4_HINT_MISMATCH_AB_TEST_RESULTS.md @@ -0,0 +1,30 @@ +# Phase 19-4: Hint-Mismatch Cleanup — A/B Test Results + +## Goal + +`__builtin_expect(..., 0)` が **preset default ON の gate** に残っている箇所を洗い出し、branch hint mismatch(+レイアウト悪化)を除去する。 + +## Results (Mixed 10-run) + +| Phase | Target | Result | Throughput | Key metric / Note | +|---:|---|---|---:|---| +| 19-4a | Wrapper ENV gates | ✅ GO | +0.16% | instructions -0.79% | +| 19-4b | Free hot/cold dispatch | ❌ NO-GO | -2.87% | revert(hint が正しい) | +| 19-4c | Free Tiny Direct gate | ✅ GO | +0.88% | cache-misses -16.7% | + +**Net (19-4a + 19-4c)**: +- Throughput: **+1.04%** +- Cache-misses: **-16.7%**(19-4c が支配的) +- Instructions: **-0.79%**(19-4a が支配的) + +## Key Finding: Hint mismatch ルール(修正) + +`__builtin_expect(cond, 0)` を「全部消す」ではなく、**cond の実効デフォルト**に合わせる。 + +- ✅ Preset default ON → UNLIKELY は逆(mismatch)→ **削除/見直し**(19-4a, 19-4c) +- ✅ Preset default OFF → UNLIKELY は正しい → **維持**(19-4b) + +## Notes + +- hint の効果は branch-miss だけでなく **hot text layout** に大きく影響するため、パッチは **小分け**(1-2 箇所)で導入し、Mixed の交互 A/B(10-run)で判定する。 +