Phase v5-1: SmallObject v5 C6-only route stub 接続
- tiny_route_env_box.h: TINY_ROUTE_SMALL_HEAP_V5 enum 追加、route snapshot で C6→v5 分岐 - malloc_tiny_fast.h: alloc/free switch に v5 case 追加(v1/pool fallback) - smallobject_hotbox_v5.c: stub 実装(alloc は NULL 返却、free は no-op) - smallobject_hotbox_v5_box.h: 関数 signature に ctx パラメータ追加 - Makefile: core/smallobject_hotbox_v5.o をリンクリストに追加 - ENV_PROFILE_PRESETS.md: v5-1 プリセット追記 - CURRENT_TASK.md: Phase v5-1 完了記録 **特性**: - ENV: HAKMEM_SMALL_HEAP_V5_ENABLED=1 / HAKMEM_SMALL_HEAP_V5_CLASSES=0x40 で opt-in - テスト結果: C6-heavy (v5 OFF 15.5M → v5 ON 16.4M ops/s, 正常), Mixed 47.2M ops/s, SEGV/assert なし - 挙動は v1/pool fallback と同じ(実装は v5-2) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@ -11,6 +11,7 @@
|
||||
|
||||
#include "smallobject_hotbox_v3_env_box.h"
|
||||
#include "smallobject_hotbox_v4_env_box.h"
|
||||
#include "smallobject_v5_env_box.h"
|
||||
|
||||
typedef enum {
|
||||
TINY_ROUTE_LEGACY = 0,
|
||||
@ -18,6 +19,7 @@ typedef enum {
|
||||
TINY_ROUTE_HOTHEAP_V2 = 2, // TinyHotHeap v2
|
||||
TINY_ROUTE_SMALL_HEAP_V3 = 3, // SmallObject HotHeap v3 (C7-first,研究箱)
|
||||
TINY_ROUTE_SMALL_HEAP_V4 = 4, // SmallObject HotHeap v4 (stub, route未使用)
|
||||
TINY_ROUTE_SMALL_HEAP_V5 = 5, // SmallObject HotHeap v5 (C6-only route stub, Phase v5-1)
|
||||
} tiny_route_kind_t;
|
||||
|
||||
extern tiny_route_kind_t g_tiny_route_class[TINY_NUM_CLASSES];
|
||||
@ -25,7 +27,10 @@ extern int g_tiny_route_snapshot_done;
|
||||
|
||||
static inline void tiny_route_snapshot_init(void) {
|
||||
for (int i = 0; i < TINY_NUM_CLASSES; i++) {
|
||||
if (small_heap_v4_class_enabled((uint8_t)i)) {
|
||||
// Phase v5-1: C6-only v5 route stub (before v4 check)
|
||||
if (i == 6 && small_heap_v5_class_enabled(6)) {
|
||||
g_tiny_route_class[i] = TINY_ROUTE_SMALL_HEAP_V5;
|
||||
} else if (small_heap_v4_class_enabled((uint8_t)i)) {
|
||||
g_tiny_route_class[i] = TINY_ROUTE_SMALL_HEAP_V4;
|
||||
} else if (small_heap_v3_class_enabled((uint8_t)i)) {
|
||||
g_tiny_route_class[i] = TINY_ROUTE_SMALL_HEAP_V3;
|
||||
@ -54,7 +59,8 @@ static inline int tiny_route_is_heap_kind(tiny_route_kind_t route) {
|
||||
return 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_V4 ||
|
||||
route == TINY_ROUTE_SMALL_HEAP_V5;
|
||||
}
|
||||
|
||||
// C7 front が TinyHeap を使うか(Route snapshot 経由で判定)
|
||||
|
||||
Reference in New Issue
Block a user