Vladimir Makarov
Vladimir Makarov is a software developer. His major interests lay in algorithms, programming languages, compilers and JITs. Vladimir finished Moscow Institute of Physics and Technology and got his PhD in computer science in Russian Academy of Sciences.
Last 20 years he has been working on GCC at RedHat. Vladimir started his work on Ruby MRI in 2015. His MRI projects are new hash tables and ongoing implementation of new VM instructions and MJIT.
Vladimir lives in Toronto, Canada.
Vladimir Makarov's contributions
Register allocation in the Go compiler
Vladimir Makarov
Dive into register allocation in the Go compiler, including the register allocator's components, how it works, and its advantages and disadvantages.
An MIR-based JIT prototype for Ruby
Vladimir Makarov
Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.
How I developed a faster Ruby interpreter
Vladimir Makarov
Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).
Code specialization for the MIR lightweight JIT compiler
Vladimir Makarov
Learn about a code specialization technique that creates a universal, lightweight JIT (Just-in-Time) compiler to generate machine code for the MIR project.
The MIR C interpreter and Just-in-Time (JIT) compiler
Vladimir Makarov
Find out how the MIR project's C JIT compiler and interpreter compares to other C compilers for generated code and compilation speed.
MIR: A lightweight JIT compiler project
Vladimir Makarov
Take an in-depth look at the MIR lightweight JIT compiler project's goals and state of development, such as the addition of support for CRuby.
Register Transfer Language for CRuby
Vladimir Makarov
This post shows the advantages and disadvantages of using register transfer language (RTL) for CRuby, and it compares the performance of RTL CRuby with that of trunk CRuby.
Towards The Ruby 3x3 Performance Goal
Vladimir Makarov
This blog post is about my work to improve CRuby performance by introducing new virtual machine instructions and a JIT. It is loosely based on my presentation at RubyKaigi 2017 in Hiroshima, Japan. Version 3 of Ruby should be 3 times faster than version 2.
Register allocation in the Go compiler
Dive into register allocation in the Go compiler, including the register allocator's components, how it works, and its advantages and disadvantages.
An MIR-based JIT prototype for Ruby
Get insights for improving JIT (just-in-time) compiler performance for Ruby based on a GCC engineer's experience developing an MIR-based JIT prototype.
How I developed a faster Ruby interpreter
Learn about 8 optimization techniques for a faster interpreter in Ruby which I developed using a dynamically specialized internal representation (IR).
Code specialization for the MIR lightweight JIT compiler
Learn about a code specialization technique that creates a universal, lightweight JIT (Just-in-Time) compiler to generate machine code for the MIR project.
The MIR C interpreter and Just-in-Time (JIT) compiler
Find out how the MIR project's C JIT compiler and interpreter compares to other C compilers for generated code and compilation speed.
MIR: A lightweight JIT compiler project
Take an in-depth look at the MIR lightweight JIT compiler project's goals and state of development, such as the addition of support for CRuby.
Register Transfer Language for CRuby
This post shows the advantages and disadvantages of using register transfer language (RTL) for CRuby, and it compares the performance of RTL CRuby with that of trunk CRuby.
Towards The Ruby 3x3 Performance Goal
This blog post is about my work to improve CRuby performance by introducing new virtual machine instructions and a JIT. It is loosely based on my presentation at RubyKaigi 2017 in Hiroshima, Japan. Version 3 of Ruby should be 3 times faster than version 2.