mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-07 06:18:42 +00: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 = 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_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->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_gen = 0;
|
||||||
e_ir_state->string_id_map = push_array(e_ir_state->arena, E_StringIDMap, 1);
|
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;
|
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;
|
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
|
//~ rjf: Expression & IR-Tree => Lookup Rule
|
||||||
|
|
||||||
|
|||||||
@@ -310,21 +310,6 @@ struct E_IRCtx
|
|||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
//~ rjf: IR State
|
//~ 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;
|
typedef struct E_IRState E_IRState;
|
||||||
struct E_IRState
|
struct E_IRState
|
||||||
{
|
{
|
||||||
@@ -337,8 +322,6 @@ struct E_IRState
|
|||||||
// rjf: caches
|
// rjf: caches
|
||||||
E_UsedTagMap *used_tag_map;
|
E_UsedTagMap *used_tag_map;
|
||||||
E_TypeAutoHookCacheMap *type_auto_hook_cache_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;
|
U64 string_id_gen;
|
||||||
E_StringIDMap *string_id_map;
|
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_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);
|
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
|
//~ 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);
|
arena_pop_to(e_parse_state->arena, e_parse_state->arena_eval_start_pos);
|
||||||
e_parse_state->ctx = ctx;
|
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
|
internal U32
|
||||||
@@ -2306,35 +2304,3 @@ e_parse_expr_from_text(Arena *arena, String8 text)
|
|||||||
scratch_end(scratch);
|
scratch_end(scratch);
|
||||||
return parse;
|
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)
|
//~ 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;
|
typedef struct E_ParseState E_ParseState;
|
||||||
struct E_ParseState
|
struct E_ParseState
|
||||||
{
|
{
|
||||||
Arena *arena;
|
Arena *arena;
|
||||||
U64 arena_eval_start_pos;
|
U64 arena_eval_start_pos;
|
||||||
E_ParseCtx *ctx;
|
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__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_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(Arena *arena, String8 text);
|
||||||
internal E_Parse e_parse_expr_from_text__cached(String8 text);
|
|
||||||
|
|
||||||
#endif // EVAL_PARSE_H
|
#endif // EVAL_PARSE_H
|
||||||
|
|||||||
@@ -13892,7 +13892,7 @@ rd_frame(void)
|
|||||||
{
|
{
|
||||||
RD_Cfg *watch = n->v;
|
RD_Cfg *watch = n->v;
|
||||||
String8 expr = rd_expr_from_cfg(watch);
|
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)
|
if(parse.msgs.max_kind == E_MsgKind_Null)
|
||||||
{
|
{
|
||||||
for(E_Expr *expr = parse.exprs.first; expr != &e_expr_nil; expr = expr->next)
|
for(E_Expr *expr = parse.exprs.first; expr != &e_expr_nil; expr = expr->next)
|
||||||
|
|||||||
Reference in New Issue
Block a user