mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-28 22:31:49 -07:00
delete dead code in eval
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user