Files
hakmem/core/tiny_c6_inline_slots.c
Moe Charm (CI) 0009ce13b3 Phase 75-1: C6-only Inline Slots (P2) - GO (+2.87%)
Modular implementation of hot-class inline slots optimization:
- Created 5 new boxes: env_box, tls_box, fast_path_api, integration_box, test_script
- Single decision point at TLS init (ENV gate: HAKMEM_TINY_C6_INLINE_SLOTS=0/1)
- Integration: 2 minimal boundary points (alloc/free paths for C6 class)
- Default OFF: zero overhead when disabled (full backward compatibility)

Results (10-run Mixed SSOT, WS=400):
- Baseline (C6 inline OFF):  44.24 M ops/s
- Treatment (C6 inline ON):  45.51 M ops/s
- Delta: +1.27 M ops/s (+2.87%)

Status:  GO - Strong improvement via C6 ring buffer fast-path
Mechanism: Branch elimination on unified_cache_push/pop for C6 allocations
Next: Phase 75-2 (add C5 inline slots, target 85% C4-C7 coverage)

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

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-18 08:22:09 +09:00

19 lines
624 B
C

// tiny_c6_inline_slots.c - Phase 75-1: C6 Inline Slots TLS Variable Definition
//
// Goal: Define TLS variable for C6 inline slots
// Scope: C6 class only (1KB per thread)
#include "box/tiny_c6_inline_slots_tls_box.h"
// ============================================================================
// TLS Variable Definition
// ============================================================================
// TLS instance (one per thread)
// Zero-initialized by default (all slots NULL, head=0, tail=0)
__thread TinyC6InlineSlots g_tiny_c6_inline_slots = {
.slots = {0}, // All NULL
.head = 0,
.tail = 0,
};