Actions
Bug #11203
closedChange method entries into VALUE
Bug #11203:
Change method entries into VALUE
Description
Now, rb_method_entry_t
is an allocated data pointed from method tables (class/module
has) and from control frame stacks.
I will change this data structure to make VALUE
(T_IMEMO/ment
).
And I put them onto value frames instead of control frame stacks.
This change has several advantages.
- Solve these issues.
- Simplify sweeping process of method entry
- We can remove
rb_control_frame_t::me
- No need to push CREF for every method invocation. Method entries know required CREF.
- We can share per method CREF only for make them public visibility scope.
- We can introduce other optimization techniques.
- We can remove
rb_control_frame_t::klass
field because method entries can manipulate this information. - We can introduce new method cache mechanism (maybe).
- We can remove
The following pictures show how SVAR/CREF/MENT are located at value stacks.
The following picture shows how alias was implemented.
Files
Actions