Phase v7-5b: C5+C6 multi-class expansion (+4.3% improvement)

- Add C5 (256B blocks) support alongside C6 (512B blocks)
- Same segment shared between C5/C6 (page_meta.class_idx distinguishes)
- SMALL_V7_CLASS_SUPPORTED() macro for class validation
- Extend small_v7_block_size() for C5 (switch statement)

A/B Result: C6-only v7 avg 7.64M ops/s → C5+C6 v7 avg 7.97M ops/s (+4.3%)
Criteria: C6 protected , C5 net positive , TLS bloat none 

ENV: HAKMEM_SMALL_HEAP_V7_CLASSES=0x60 (bit5+bit6)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Moe Charm (CI)
2025-12-12 05:11:02 +09:00
parent 17ceed619c
commit d5aa3110c6
5 changed files with 146 additions and 20 deletions

View File

@ -22,12 +22,20 @@
#define SMALL_SEGMENT_V7_MAGIC 0xC07E57u // C0(re) v7
// ============================================================================
// C6 Class Configuration (v7-2: C6-only)
// Class Configuration (v7-5b: C5+C6)
// ============================================================================
// C6: 513-768B → 512B blocks
#define SMALL_V7_C6_CLASS_IDX 6
#define SMALL_V7_C6_BLOCK_SIZE 512
// C5: 257-512B → 256B blocks (v7-5b)
#define SMALL_V7_C5_CLASS_IDX 5
#define SMALL_V7_C5_BLOCK_SIZE 256
// v7-5b: Class support check macro
#define SMALL_V7_CLASS_SUPPORTED(ci) ((ci) == 5 || (ci) == 6)
// ============================================================================
// Page Index Calculation
// ============================================================================