From 1adf280354c957c96c5bb3eb010133384d0a34b3 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 31 Mar 2025 11:02:17 -0700 Subject: [PATCH] delete dead code in eval --- src/eval/eval_ir.c | 35 ----------------------------------- src/eval/eval_ir.h | 22 ---------------------- src/eval/eval_parse.c | 34 ---------------------------------- src/eval/eval_parse.h | 20 -------------------- src/eval/eval_types.h | 2 +- src/raddbg/raddbg_core.c | 2 +- 6 files changed, 2 insertions(+), 113 deletions(-) diff --git a/src/eval/eval_ir.c b/src/eval/eval_ir.c index 9722f37d..0ebd975e 100644 --- a/src/eval/eval_ir.c +++ b/src/eval/eval_ir.c @@ -82,8 +82,6 @@ e_select_ir_ctx(E_IRCtx *ctx) e_ir_state->type_auto_hook_cache_map = push_array(e_ir_state->arena, E_TypeAutoHookCacheMap, 1); e_ir_state->type_auto_hook_cache_map->slots_count = 256; e_ir_state->type_auto_hook_cache_map->slots = push_array(e_ir_state->arena, E_TypeAutoHookCacheSlot, e_ir_state->type_auto_hook_cache_map->slots_count); - e_ir_state->irtree_and_type_cache_slots_count = 1024; - e_ir_state->irtree_and_type_cache_slots = push_array(e_ir_state->arena, E_IRTreeAndTypeCacheSlot, e_ir_state->irtree_and_type_cache_slots_count); e_ir_state->string_id_gen = 0; e_ir_state->string_id_map = push_array(e_ir_state->arena, E_StringIDMap, 1); e_ir_state->string_id_map->id_slots_count = 1024; @@ -2993,39 +2991,6 @@ e_expr_irext_cast(Arena *arena, E_Expr *rhs, E_IRTreeAndType *rhs_irtree, E_Type return root; } -//////////////////////////////// -//~ rjf: IRified Expression Cache - -internal E_IRTreeAndType -e_irtree_and_type_from_expr__cached(E_Expr *expr) -{ - E_IRTreeAndType result = {&e_irnode_nil}; - { - U64 hash = e_hash_from_string(5381, str8_struct(&expr)); - U64 slot_idx = hash%e_ir_state->irtree_and_type_cache_slots_count; - E_IRTreeAndTypeCacheNode *node = 0; - for(E_IRTreeAndTypeCacheNode *n = e_ir_state->irtree_and_type_cache_slots[slot_idx].first; n != 0; n = n->next) - { - if(n->expr == expr) - { - node = n; - break; - } - } - if(node == 0) - { - node = push_array(e_ir_state->arena, E_IRTreeAndTypeCacheNode, 1); - SLLQueuePush(e_ir_state->irtree_and_type_cache_slots[slot_idx].first, e_ir_state->irtree_and_type_cache_slots[slot_idx].last, node); - node->irtree_and_type = e_irtree_and_type_from_expr(e_ir_state->arena, expr); - } - if(node != 0) - { - result = node->irtree_and_type; - } - } - return result; -} - //////////////////////////////// //~ rjf: Expression & IR-Tree => Lookup Rule diff --git a/src/eval/eval_ir.h b/src/eval/eval_ir.h index 93210498..a11f7e87 100644 --- a/src/eval/eval_ir.h +++ b/src/eval/eval_ir.h @@ -310,21 +310,6 @@ struct E_IRCtx //////////////////////////////// //~ rjf: IR State -typedef struct E_IRTreeAndTypeCacheNode E_IRTreeAndTypeCacheNode; -struct E_IRTreeAndTypeCacheNode -{ - E_IRTreeAndTypeCacheNode *next; - E_Expr *expr; - E_IRTreeAndType irtree_and_type; -}; - -typedef struct E_IRTreeAndTypeCacheSlot E_IRTreeAndTypeCacheSlot; -struct E_IRTreeAndTypeCacheSlot -{ - E_IRTreeAndTypeCacheNode *first; - E_IRTreeAndTypeCacheNode *last; -}; - typedef struct E_IRState E_IRState; struct E_IRState { @@ -337,8 +322,6 @@ struct E_IRState // rjf: caches E_UsedTagMap *used_tag_map; E_TypeAutoHookCacheMap *type_auto_hook_cache_map; - U64 irtree_and_type_cache_slots_count; - E_IRTreeAndTypeCacheSlot *irtree_and_type_cache_slots; U64 string_id_gen; E_StringIDMap *string_id_map; }; @@ -468,11 +451,6 @@ internal E_Expr *e_expr_irext_array_index(Arena *arena, E_Expr *lhs, E_IRTreeAnd internal E_Expr *e_expr_irext_deref(Arena *arena, E_Expr *rhs, E_IRTreeAndType *rhs_irtree); internal E_Expr *e_expr_irext_cast(Arena *arena, E_Expr *rhs, E_IRTreeAndType *rhs_irtree, E_TypeKey type_key); -//////////////////////////////// -//~ rjf: IRified Expression Cache - -internal E_IRTreeAndType e_irtree_and_type_from_expr__cached(E_Expr *expr); - //////////////////////////////// //~ rjf: Expression & IR-Tree => Lookup Rule diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index 9ab30a5c..6ecd95eb 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -634,8 +634,6 @@ e_select_parse_ctx(E_ParseCtx *ctx) } arena_pop_to(e_parse_state->arena, e_parse_state->arena_eval_start_pos); e_parse_state->ctx = ctx; - e_parse_state->parse_cache_slots_count = 1024; - e_parse_state->parse_cache_slots = push_array(e_parse_state->arena, E_ParseCacheSlot, e_parse_state->parse_cache_slots_count); } internal U32 @@ -2306,35 +2304,3 @@ e_parse_expr_from_text(Arena *arena, String8 text) scratch_end(scratch); return parse; } - -internal E_Parse -e_parse_expr_from_text__cached(String8 text) -{ - E_Parse parse = {0, &e_expr_nil}; - U64 hash = e_hash_from_string(5381, str8_struct(&text)); - U64 slot_idx = hash%e_parse_state->parse_cache_slots_count; - E_ParseCacheNode *node = 0; - for(E_ParseCacheNode *n = e_parse_state->parse_cache_slots[slot_idx].first; n != 0; n = n->next) - { - if(str8_match(n->string, text, 0)) - { - node = n; - break; - } - } - if(node == 0) - { - Temp scratch = scratch_begin(0, 0); - node = push_array(e_parse_state->arena, E_ParseCacheNode, 1); - SLLQueuePush(e_parse_state->parse_cache_slots[slot_idx].first, e_parse_state->parse_cache_slots[slot_idx].last, node); - node->string = push_str8_copy(e_parse_state->arena, text); - E_TokenArray tokens = e_token_array_from_text(scratch.arena, text); - node->parse = e_parse_expr_from_text_tokens(e_parse_state->arena, node->string, &tokens); - scratch_end(scratch); - } - if(node != 0) - { - parse = node->parse; - } - return parse; -} diff --git a/src/eval/eval_parse.h b/src/eval/eval_parse.h index 37343f2e..39e9c716 100644 --- a/src/eval/eval_parse.h +++ b/src/eval/eval_parse.h @@ -190,31 +190,12 @@ struct E_ParseCtx //////////////////////////////// //~ rjf: Parse State (stateful thread-local caching mechanisms, not provided by user) -typedef struct E_ParseCacheNode E_ParseCacheNode; -struct E_ParseCacheNode -{ - E_ParseCacheNode *next; - String8 string; - E_Parse parse; -}; - -typedef struct E_ParseCacheSlot E_ParseCacheSlot; -struct E_ParseCacheSlot -{ - E_ParseCacheNode *first; - E_ParseCacheNode *last; -}; - typedef struct E_ParseState E_ParseState; struct E_ParseState { Arena *arena; U64 arena_eval_start_pos; E_ParseCtx *ctx; - - // rjf: string -> parse cache - E_ParseCacheSlot *parse_cache_slots; - U64 parse_cache_slots_count; }; //////////////////////////////// @@ -296,6 +277,5 @@ internal E_Parse e_parse_type_from_text_tokens(Arena *arena, String8 text, E_Tok internal E_Parse e_parse_expr_from_text_tokens__prec(Arena *arena, String8 text, E_TokenArray *tokens, S64 max_precedence, U64 max_chain_count); internal E_Parse e_parse_expr_from_text_tokens(Arena *arena, String8 text, E_TokenArray *tokens); internal E_Parse e_parse_expr_from_text(Arena *arena, String8 text); -internal E_Parse e_parse_expr_from_text__cached(String8 text); #endif // EVAL_PARSE_H diff --git a/src/eval/eval_types.h b/src/eval/eval_types.h index df66f01c..e106fd52 100644 --- a/src/eval/eval_types.h +++ b/src/eval/eval_types.h @@ -184,7 +184,7 @@ struct E_ConsTypeParams E_EnumVal *enum_vals; }; -typedef struct E_ConsTypeNode E_ConsTypeNode; +typedef struct E_ConsTypeNode E_ConsTypeNode; struct E_ConsTypeNode { E_ConsTypeNode *key_next; diff --git a/src/raddbg/raddbg_core.c b/src/raddbg/raddbg_core.c index 540d3574..7c43a1f7 100644 --- a/src/raddbg/raddbg_core.c +++ b/src/raddbg/raddbg_core.c @@ -13892,7 +13892,7 @@ rd_frame(void) { RD_Cfg *watch = n->v; String8 expr = rd_expr_from_cfg(watch); - E_Parse parse = e_parse_expr_from_text__cached(expr); + E_Parse parse = e_parse_expr_from_text(scratch.arena, expr); if(parse.msgs.max_kind == E_MsgKind_Null) { for(E_Expr *expr = parse.exprs.first; expr != &e_expr_nil; expr = expr->next)