summaryrefslogtreecommitdiff
path: root/rjit_c.h
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2023-03-10 13:08:10 -0800
committerTakashi Kokubun <takashikkbn@gmail.com>2023-03-10 13:11:01 -0800
commitcdece5cf36ec5414ed55fb8d759d2ba20ff209c1 (patch)
tree34fb35e8f26df9d91b8006382d27d32886a17180 /rjit_c.h
parentc364e0745dae0371c542bff770038b210832700e (diff)
downloadruby-cdece5cf36ec5414ed55fb8d759d2ba20ff209c1.tar.gz
RJIT: Remove unused code from headers
Diffstat (limited to 'rjit_c.h')
-rw-r--r--rjit_c.h89
1 files changed, 0 insertions, 89 deletions
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__; };