Issue #16941 has been reported by abhsha (Abhishek Sharma).

----------------------------------------
Bug #16941: MJIT doesn't identify Struct kind of instruction
https://bugs.ruby-lang.org/issues/16941

* Author: abhsha (Abhishek Sharma)
* Status: Open
* Priority: Normal
* ruby -v: 2.6.0
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
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 ? 



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>