Project

General

Profile

Actions

Bug #16941

closed

MJIT doesn't identify Struct kind of instruction

Added by abhsha (Abhishek Sharma) almost 4 years ago. Updated almost 4 years ago.

Status:
Closed
Target version:
-
ruby -v:
2.6.0p0 (2018-12-25 revision 66547) [x86_64-linux]
[ruby-core:98689]

Description

MJIT does not identify Struct instructions and gives a warning while compiling to C.

Example:
def my_method
1.times do
a_struct = Struct.new(:a).new
a_struct.a = "a"
end
end

my_method

$: ruby --jit-save-temps --jit-min-calls=1 --disable-gems --jit --jit-verbose=2 --jit-wait test.rb

output:
start compilation: a=@test.rb:3 -> /tmp/_ruby_mjit_p30696u2.c
MJIT warning: Skipped to compile unsupported instruction: opt_call_c_function
JIT failure (0.0ms): a=@test.rb:3 -> /tmp/_ruby_mjit_p30696u2.c

Are structs not recognised by JIT compiler?
We have this call in our programs many number of times (~ 10^6), it attempts every time and fails. Can this be a cause of programs to get slower with --jit enabled ?

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0