Moe Charm (CI)
cfa587c61d
Phase 8-Step1-3: Unified Cache hot path optimization (config macro + prewarm + PGO init removal)
Goal: Reduce branches in Unified Cache hot paths (-2 branches per op)
Expected improvement: +2-3% in PGO mode
Changes:
1. Config Macro (Step 1):
- Added TINY_FRONT_UNIFIED_CACHE_ENABLED macro to tiny_front_config_box.h
- PGO mode: compile-time constant (1)
- Normal mode: runtime function call unified_cache_enabled()
- Replaced unified_cache_enabled() calls in 3 locations:
* unified_cache_pop() line 142
* unified_cache_push() line 182
* unified_cache_pop_or_refill() line 228
2. Function Declaration Fix:
- Moved unified_cache_enabled() from static inline to non-static
- Implementation in tiny_unified_cache.c (was in .h as static inline)
- Forward declaration in tiny_front_config_box.h
- Resolves declaration conflict between config box and header
3. Prewarm (Step 2):
- Added unified_cache_init() call to bench_fast_init()
- Ensures cache is initialized before benchmark starts
- Enables PGO builds to remove lazy init checks
4. Conditional Init Removal (Step 3):
- Wrapped lazy init checks in #if !HAKMEM_TINY_FRONT_PGO
- PGO builds assume prewarm → no init check needed (-1 branch)
- Normal builds keep lazy init for safety
- Applied to 3 functions: unified_cache_pop(), unified_cache_push(), unified_cache_pop_or_refill()
Performance Impact:
PGO mode: -2 branches per operation (enabled check + init check)
Normal mode: Same as before (runtime checks)
Branch Elimination (PGO):
Before: if (!unified_cache_enabled()) + if (slots == NULL)
After: if (!1) [eliminated] + [init check removed]
Result: -2 branches in alloc/free hot paths
Files Modified:
core/box/tiny_front_config_box.h - Config macro + forward declaration
core/front/tiny_unified_cache.h - Config macro usage + PGO conditionals
core/front/tiny_unified_cache.c - unified_cache_enabled() implementation
core/box/bench_fast_box.c - Prewarm call in bench_fast_init()
Note: BenchFast mode has pre-existing crash (not caused by these changes)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 17:58:42 +09:00
..
2025-11-09 18:55:50 +09:00
2025-11-09 18:55:50 +09:00
2025-11-07 01:27:04 +09:00
2025-11-29 17:58:42 +09:00
2025-11-16 06:36:02 +09:00
2025-11-20 07:32:30 +09:00
2025-11-13 06:50:20 +09:00
2025-11-13 01:45:30 +09:00
2025-11-29 07:57:49 +09:00
2025-11-29 06:57:03 +09:00
2025-11-13 01:45:30 +09:00
2025-11-29 09:04:32 +09:00
2025-11-28 01:10:26 +09:00
2025-11-29 06:47:13 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-26 12:33:49 +09:00
2025-11-07 01:27:04 +09:00
2025-11-21 23:00:24 +09:00
2025-11-26 12:33:49 +09:00
2025-11-07 01:27:04 +09:00
2025-11-20 07:32:30 +09:00
2025-11-29 06:57:03 +09:00
2025-11-07 01:27:04 +09:00
2025-11-17 02:47:58 +09:00
2025-11-29 06:47:13 +09:00
2025-11-17 02:47:58 +09:00
2025-11-15 22:08:51 +09:00
2025-11-27 03:41:07 +09:00
2025-11-16 07:51:37 +09:00
2025-11-26 17:12:41 +09:00
2025-11-29 14:39:07 +09:00
2025-11-17 02:47:58 +09:00
2025-11-07 01:27:04 +09:00
2025-11-29 14:39:07 +09:00
2025-11-07 01:27:04 +09:00
2025-11-29 16:17:34 +09:00
2025-11-20 07:32:30 +09:00
2025-11-12 02:45:00 +09:00
2025-11-12 02:45:00 +09:00
2025-11-28 16:08:44 +09:00
2025-11-28 17:10:32 +09:00
2025-11-07 01:27:04 +09:00
2025-11-29 15:45:29 +09:00
2025-11-29 14:39:07 +09:00
2025-11-17 02:47:58 +09:00
2025-11-17 02:47:58 +09:00
2025-11-17 02:47:58 +09:00
2025-11-28 17:10:32 +09:00
2025-11-11 01:47:06 +09:00
2025-11-06 21:54:12 +09:00
2025-11-06 21:54:12 +09:00
2025-11-06 21:54:12 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-07 01:27:04 +09:00
2025-11-06 21:54:12 +09:00
2025-11-20 07:32:30 +09:00
2025-11-26 12:33:49 +09:00
2025-11-13 01:45:30 +09:00
2025-11-13 06:50:20 +09:00
2025-11-28 13:42:39 +09:00
2025-11-22 03:30:47 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 14:11:37 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 14:11:37 +09:00
2025-11-17 05:29:08 +09:00
2025-11-16 07:51:37 +09:00
2025-11-16 05:48:59 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-22 02:46:57 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 13:42:39 +09:00
2025-11-26 12:33:49 +09:00
2025-11-12 02:45:00 +09:00
2025-11-29 08:44:29 +09:00
2025-11-29 11:58:37 +09:00
2025-11-29 17:58:42 +09:00
2025-11-29 11:58:37 +09:00
2025-11-29 07:57:49 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 13:42:39 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-20 07:32:30 +09:00
2025-11-28 13:42:39 +09:00
2025-11-29 07:57:49 +09:00
2025-11-29 08:44:29 +09:00
2025-11-22 06:50:38 +09:00
2025-11-17 02:47:58 +09:00
2025-11-29 06:57:03 +09:00
2025-11-17 02:47:58 +09:00