From cdece5cf36ec5414ed55fb8d759d2ba20ff209c1 Mon Sep 17 00:00:00 2001 From: Takashi Kokubun Date: Fri, 10 Mar 2023 13:08:10 -0800 Subject: RJIT: Remove unused code from headers --- rjit_c.h | 89 ---------------------------------------------------------------- 1 file changed, 89 deletions(-) (limited to 'rjit_c.h') diff --git a/rjit_c.h b/rjit_c.h index ccdf9dc4fc..e87286c2fe 100644 --- a/rjit_c.h +++ b/rjit_c.h @@ -13,95 +13,6 @@ #include "rjit.h" #include "shape.h" -// Macros to check if a position is already compiled using compile_status.stack_size_for_pos -#define NOT_COMPILED_STACK_SIZE -1 -#define ALREADY_COMPILED_P(status, pos) (status->stack_size_for_pos[pos] != NOT_COMPILED_STACK_SIZE) - -// Linked list of struct rb_rjit_unit. -struct rb_rjit_unit_list { - struct ccan_list_head head; - int length; // the list length -}; - -enum rb_rjit_unit_type { - // Single-ISEQ unit for unit_queue - RJIT_UNIT_ISEQ = 0, - // Multi-ISEQ unit for rjit_batch - RJIT_UNIT_BATCH = 1, - // All-ISEQ unit for rjit_compact - RJIT_UNIT_COMPACT = 2, -}; - -// The unit structure that holds metadata of ISeq for RJIT. -// TODO: Use different structs for ISEQ and BATCH/COMPACT -struct rb_rjit_unit { - struct ccan_list_node unode; - // Unique order number of unit. - int id; - // Type of this unit - enum rb_rjit_unit_type type; - - /* RJIT_UNIT_ISEQ */ - // ISEQ for a non-batch unit - rb_iseq_t *iseq; - // Only used by unload_units. Flag to check this unit is currently on stack or not. - bool used_code_p; - // rjit_compile's optimization switches - struct rb_rjit_compile_info compile_info; - // captured CC values, they should be marked with iseq. - const struct rb_callcache **cc_entries; - // ISEQ_BODY(iseq)->ci_size + ones of inlined iseqs - unsigned int cc_entries_size; - - /* RJIT_UNIT_BATCH, RJIT_UNIT_COMPACT */ - // Dlopen handle of the loaded object file. - void *handle; - // Units compacted by this batch - struct rb_rjit_unit_list units; // RJIT_UNIT_BATCH only -}; - -// Storage to keep data which is consistent in each conditional branch. -// This is created and used for one `compile_insns` call and its values -// should be copied for extra `compile_insns` call. -struct compile_branch { - unsigned int stack_size; // this simulates sp (stack pointer) of YARV - bool finish_p; // if true, compilation in this branch should stop and let another branch to be compiled -}; - -// For propagating information needed for lazily pushing a frame. -struct inlined_call_context { - int orig_argc; // ci->orig_argc - VALUE me; // vm_cc_cme(cc) - int param_size; // def_iseq_ptr(vm_cc_cme(cc)->def)->body->param.size - int local_size; // def_iseq_ptr(vm_cc_cme(cc)->def)->body->local_table_size -}; - -// Storage to keep compiler's status. This should have information -// which is global during one `rjit_compile` call. Ones conditional -// in each branch should be stored in `compile_branch`. -struct compile_status { - bool success; // has true if compilation has had no issue - int *stack_size_for_pos; // stack_size_for_pos[pos] has stack size for the position (otherwise -1) - // If true, JIT-ed code will use local variables to store pushed values instead of - // using VM's stack and moving stack pointer. - bool local_stack_p; - // Index of call cache entries captured to compiled_iseq to be marked on GC - int cc_entries_index; - // A pointer to root (i.e. not inlined) iseq being compiled. - const struct rb_iseq_constant_body *compiled_iseq; - int compiled_id; // Just a copy of compiled_iseq->jit_unit->id - // Mutated optimization levels - struct rb_rjit_compile_info *compile_info; - // If `inlined_iseqs[pos]` is not NULL, `rjit_compile_body` tries to inline ISeq there. - const struct rb_iseq_constant_body **inlined_iseqs; - struct inlined_call_context inline_context; -}; - -//================================================================================ -// -// New stuff from here -// - extern uint8_t *rb_rjit_mem_block; #define RJIT_RUNTIME_COUNTERS(...) struct rb_rjit_runtime_counters { size_t __VA_ARGS__; }; -- cgit v1.2.1