Phase v10: Remove legacy v3/v4/v5 implementations
Removal strategy: Deprecate routes by disabling ENV-based routing - v3/v4/v5 enum types kept for binary compatibility - small_heap_v3/v4/v5_enabled() always return 0 - small_heap_v3/v4/v5_class_enabled() always return 0 - Any v3/v4/v5 ENVs are silently ignored, routes to LEGACY Changes: - core/box/smallobject_hotbox_v3_env_box.h: stub functions - core/box/smallobject_hotbox_v4_env_box.h: stub functions - core/box/smallobject_v5_env_box.h: stub functions - core/front/malloc_tiny_fast.h: remove alloc/free cases (20+ lines) Benefits: - Cleaner routing logic (v6/v7 only for SmallObject) - 20+ lines deleted from hot path validation - No behavioral change (routes were rarely used) Performance: No regression expected (v3/v4/v5 already disabled by default) Next: Set Learner v7 default ON, production testing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -161,10 +161,10 @@ static inline void* malloc_tiny_fast(size_t size) {
|
||||
route_trusted = false;
|
||||
} else if (!route_trusted &&
|
||||
route != TINY_ROUTE_LEGACY && route != TINY_ROUTE_HEAP &&
|
||||
route != TINY_ROUTE_HOTHEAP_V2 && route != TINY_ROUTE_SMALL_HEAP_V3 &&
|
||||
route != TINY_ROUTE_SMALL_HEAP_V4 && route != TINY_ROUTE_SMALL_HEAP_V5 &&
|
||||
route != TINY_ROUTE_HOTHEAP_V2 &&
|
||||
route != TINY_ROUTE_SMALL_HEAP_V6 && route != TINY_ROUTE_SMALL_HEAP_V7) {
|
||||
// Phase ALLOC-GATE-OPT-1: カウンタ散布 (3. route_for_class 呼び出し)
|
||||
// Note: v3/v4/v5 removed in Phase v10
|
||||
ALLOC_GATE_STAT_INC(route_for_class_calls);
|
||||
route = tiny_route_for_class((uint8_t)class_idx);
|
||||
}
|
||||
@ -256,34 +256,7 @@ static inline void* malloc_tiny_fast(size_t size) {
|
||||
}
|
||||
__attribute__((fallthrough));
|
||||
}
|
||||
case TINY_ROUTE_SMALL_HEAP_V3: {
|
||||
void* v3p = so_alloc((uint32_t)class_idx);
|
||||
if (TINY_HOT_LIKELY(v3p != NULL)) {
|
||||
return v3p;
|
||||
}
|
||||
so_v3_record_alloc_fallback((uint8_t)class_idx);
|
||||
// fallthrough to v2/v1
|
||||
__attribute__((fallthrough));
|
||||
}
|
||||
case TINY_ROUTE_SMALL_HEAP_V4: {
|
||||
void* v4p = small_heap_alloc_fast_v4(small_heap_ctx_v4_get(), class_idx);
|
||||
if (TINY_HOT_LIKELY(v4p != NULL)) {
|
||||
return v4p;
|
||||
}
|
||||
so_v3_record_alloc_fallback((uint8_t)class_idx);
|
||||
// fallthrough to v5/v2/v1
|
||||
__attribute__((fallthrough));
|
||||
}
|
||||
case TINY_ROUTE_SMALL_HEAP_V5: {
|
||||
// Phase v5-1: C6-only route stub (v1/pool fallback)
|
||||
SmallHeapCtxV5* ctx = small_heap_ctx_v5();
|
||||
void* v5p = small_alloc_fast_v5(size, (uint32_t)class_idx, ctx);
|
||||
if (TINY_HOT_LIKELY(v5p != NULL)) {
|
||||
return v5p;
|
||||
}
|
||||
// fallthrough to v2/v1
|
||||
__attribute__((fallthrough));
|
||||
}
|
||||
// Phase v10: v3/v4/v5 removed - routes now handled as LEGACY
|
||||
case TINY_ROUTE_HOTHEAP_V2: {
|
||||
void* v2p = tiny_hotheap_v2_alloc((uint8_t)class_idx);
|
||||
if (TINY_HOT_LIKELY(v2p != NULL)) {
|
||||
@ -525,25 +498,7 @@ static inline int free_tiny_fast(void* ptr) {
|
||||
}
|
||||
break; // fallthrough to legacy
|
||||
}
|
||||
case TINY_ROUTE_SMALL_HEAP_V5: {
|
||||
// Phase v5-2: C6-only full implementation
|
||||
// Phase FREE-LEGACY-BREAKDOWN-1: v5 は研究箱なので skip
|
||||
SmallHeapCtxV5* ctx = small_heap_ctx_v5();
|
||||
small_free_fast_v5(base, (uint32_t)class_idx, ctx);
|
||||
return 1;
|
||||
}
|
||||
case TINY_ROUTE_SMALL_HEAP_V4:
|
||||
if (class_idx == 7 || class_idx == 6 || class_idx == 5) {
|
||||
small_heap_free_fast_v4(small_heap_ctx_v4_get(), class_idx, base);
|
||||
// Phase FREE-LEGACY-BREAKDOWN-1: v4 は研究箱なので skip
|
||||
return 1;
|
||||
}
|
||||
break; // fallthrough to default
|
||||
case TINY_ROUTE_SMALL_HEAP_V3:
|
||||
so_free((uint32_t)class_idx, base);
|
||||
// Phase FREE-LEGACY-BREAKDOWN-1: カウンタ散布 (8. v3 route)
|
||||
FREE_PATH_STAT_INC(smallheap_v3_fast);
|
||||
return 1;
|
||||
// Phase v10: v3/v4/v5 removed - routes now handled as LEGACY
|
||||
case TINY_ROUTE_HOTHEAP_V2:
|
||||
tiny_hotheap_v2_free((uint8_t)class_idx, base, meta);
|
||||
// Phase FREE-LEGACY-BREAKDOWN-1: カウンタ散布 (v2 は tiny_heap_v1 にカウント)
|
||||
@ -570,9 +525,8 @@ static inline int free_tiny_fast(void* ptr) {
|
||||
// fallback: lookup failed but TinyHeap front is ON → use generic TinyHeap free
|
||||
if (route == TINY_ROUTE_HOTHEAP_V2) {
|
||||
tiny_hotheap_v2_record_free_fallback((uint8_t)class_idx);
|
||||
} else if (route == TINY_ROUTE_SMALL_HEAP_V3 || route == TINY_ROUTE_SMALL_HEAP_V4) {
|
||||
so_v3_record_free_fallback((uint8_t)class_idx);
|
||||
}
|
||||
// Phase v10: v3/v4 removed - no special fallback
|
||||
tiny_heap_free_class_fast(tiny_heap_ctx_for_thread(), class_idx, ptr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user