Bug #14892
closed
r63763 breaks -DMJIT_FORCE_ENABLE=1
Added by normalperson (Eric Wong) over 6 years ago.
Updated over 6 years ago.
Description
r63763 ("give up insn attr handles_frame") breaks -DMJIT_FORCE_ENABLE=1
(commit 6b534134a78e3e43c344682c3585e1abab015216 in git)
Related [Bug #14809] [Bug #14834]
Is this being worked on? I mentioned it in [ruby-core:87674],
"make test" fails in test_insns.rb for me on Debian 9 (x86 and amd64).
Not sure what's wrong.
Reverting that commit allows even "make exam" to pass for me.
Files
- Assignee set to k0kubun (Takashi Kokubun)
I recognize that. I'm currently taking time for RubyBench project but planning to take a look after that. Please ignore the -DMJIT_FORCE_ENABLE=1 until I fix it.
A mini reproductive command is here.
ruby --jit-wait --disable=gems -e '1000.times { a, b = nil }'
And another one.
ruby --jit-wait --disable-gems -e '1000.times { break if /a/ =~ "ab" && !$~[0] }'
Many cases (including a, b = nil
) go well after r63863.
Now I found that there remain 2 issues at least.
-
pc
is set to next_pos
when insn is opt_xxx
and body->catch_except_p
is falsy.
- ex.
1000.times { break if /a/ =~ "ab" && !$~[0] }
-
opt_aref_with
/ opt_aset_with
push rb_str_resurrect(key)
when MJIT execution is cancelled, but it is unexpected for VM's opt_aref_with
/ opt_aset_with
.
- ex.
1000.times { Thread.current["a"] = {} }
- Status changed from Open to Closed
Applied in changeset trunk|r63875.
insns.def: stop pushing unnecessary keys for MJIT
[Bug #14892]
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0