Comprehensive legacy cleanup and architecture consolidation
Summary of Changes: MOVED TO ARCHIVE: - core/hakmem_tiny_legacy_slow_box.inc → archive/ * Slow path legacy code preserved for reference * Superseded by Gatekeeper Box architecture - core/superslab_allocate.c → archive/superslab_allocate_legacy.c * Legacy SuperSlab allocation implementation * Functionality integrated into new Box system - core/superslab_head.c → archive/superslab_head_legacy.c * Legacy slab head management * Refactored through Box architecture REMOVED DEAD CODE: - Eliminated unused allocation policy variants from ss_allocation_box.c * Reduced from 127+ lines of conditional logic to focused implementation * Removed: old policy branches, unused allocation strategies * Kept: current Box-based allocation path ADDED NEW INFRASTRUCTURE: - core/superslab_head_stub.c (41 lines) * Minimal stub for backward compatibility * Delegates to new architecture - Enhanced core/superslab_cache.c (75 lines added) * Added missing API functions for cache management * Proper interface for SuperSlab cache integration REFACTORED CORE SYSTEMS: - core/hakmem_super_registry.c * Moved registration logic from scattered locations * Centralized SuperSlab registry management - core/hakmem_tiny.c * Removed 27 lines of redundant initialization * Simplified through Box architecture - core/hakmem_tiny_alloc.inc * Streamlined allocation path to use Gatekeeper * Removed legacy decision logic - core/box/ss_allocation_box.c/h * Dramatically simplified allocation policy * Removed conditional branches for unused strategies * Focused on current Box-based approach BUILD SYSTEM: - Updated Makefile for archive structure - Removed obsolete object file references - Maintained build compatibility SAFETY & TESTING: - All deletions verified: no broken references - Build verification: RELEASE=0 and RELEASE=1 pass - Smoke tests: 100% pass rate - Functional verification: allocation/free intact Architecture Consolidation: Before: Multiple overlapping allocation paths with legacy code branches After: Single unified path through Gatekeeper Boxes with clear architecture Benefits: - Reduced code size and complexity - Improved maintainability - Single source of truth for allocation logic - Better diagnostic/observability hooks - Foundation for future optimizations 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -206,9 +206,11 @@ static inline int fastcache_push(int class_idx, hak_base_ptr_t ptr);
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// Legacy Slow Allocation Path - EXTRACTED to hakmem_tiny_legacy_slow_box.inc
|
||||
// Legacy Slow Allocation Path - ARCHIVED
|
||||
// ============================================================================
|
||||
#include "hakmem_tiny_legacy_slow_box.inc"
|
||||
// Note: tiny_slow_alloc_fast() and related legacy slow path implementation
|
||||
// have been moved to archive/hakmem_tiny_legacy_slow_box.inc and are no
|
||||
// longer compiled. The current slow path uses Box化された hak_tiny_alloc_slow().
|
||||
|
||||
|
||||
// ============================================================================
|
||||
@ -493,18 +495,9 @@ static inline void* hak_tiny_alloc_superslab_try_fast(int class_idx) {
|
||||
#include "hakmem_tiny_smallmag.inc.h"
|
||||
|
||||
// ============================================================================
|
||||
// Phase 6 Fast Path Options (mutually exclusive)
|
||||
// Phase 6 Fast Path Option (Metadata Header)
|
||||
// ============================================================================
|
||||
// Choose ONE of the following Phase 6 optimizations:
|
||||
//
|
||||
// Phase 6-1.5: Alignment Guessing (LEGACY - committed 2025-11-02)
|
||||
// - Enable: -DHAKMEM_TINY_PHASE6_ULTRA_SIMPLE=1
|
||||
// - Speed: 235 M ops/sec
|
||||
// - Memory: 0% overhead
|
||||
// - Method: Guess size class from pointer alignment (__builtin_ctzl)
|
||||
// - Risk: Alignment assumptions may break with future changes
|
||||
//
|
||||
// Phase 6-1.6: Metadata Header (NEW - recommended for production)
|
||||
// Phase 6-1.6: Metadata Header (recommended)
|
||||
// - Enable: -DHAKMEM_TINY_PHASE6_METADATA=1
|
||||
// - Speed: 450-480 M ops/sec (expected, Phase 6-1 level)
|
||||
// - Memory: ~6-12% overhead (8 bytes/allocation)
|
||||
@ -514,14 +507,6 @@ static inline void* hak_tiny_alloc_superslab_try_fast(int class_idx) {
|
||||
// ============================================================================
|
||||
|
||||
// Forward declarations for Phase 6 alloc/free functions
|
||||
#ifdef HAKMEM_TINY_PHASE6_ULTRA_SIMPLE
|
||||
void* hak_tiny_alloc_ultra_simple(size_t size);
|
||||
void hak_tiny_free_ultra_simple(void* ptr);
|
||||
#endif
|
||||
|
||||
#if defined(HAKMEM_TINY_PHASE6_METADATA) && defined(HAKMEM_TINY_PHASE6_ULTRA_SIMPLE)
|
||||
#error "Cannot enable both PHASE6_METADATA and PHASE6_ULTRA_SIMPLE"
|
||||
#endif
|
||||
|
||||
|
||||
// ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user