mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Revert "Revert "This commit implements the Object Shapes technique in CRuby.""
This reverts commit 9a6803c90b
.
This commit is contained in:
parent
5ffbb2be18
commit
ad63b668e2
41 changed files with 2311 additions and 893 deletions
|
@ -8,6 +8,7 @@
|
|||
#include "builtin.h"
|
||||
#include "mjit.h"
|
||||
#include "mjit_unit.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
|
||||
|
@ -48,7 +49,6 @@ struct compile_status {
|
|||
// Mutated optimization levels
|
||||
struct rb_mjit_compile_info *compile_info;
|
||||
bool merge_ivar_guards_p; // If true, merge guards of ivar accesses
|
||||
rb_serial_t ivar_serial; // ic_serial of IVC in is_entries (used only when merge_ivar_guards_p)
|
||||
size_t max_ivar_index; // Max IVC index in is_entries (used only when merge_ivar_guards_p)
|
||||
// If `inlined_iseqs[pos]` is not NULL, `mjit_compile_body` tries to inline ISeq there.
|
||||
const struct rb_iseq_constant_body **inlined_iseqs;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue