delete dead code in eval

This commit is contained in:
Ryan Fleury
2025-03-31 11:02:17 -07:00
parent 833bee35e3
commit 1adf280354
6 changed files with 2 additions and 113 deletions
-35
View File
@@ -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
-22
View File
@@ -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
-34
View File
@@ -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;
}
-20
View File
@@ -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
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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)