Project

General

Profile

Bug #14892

r63763 breaks -DMJIT_FORCE_ENABLE=1

Added by normalperson (Eric Wong) 8 months ago. Updated 8 months ago.

Status:
Closed
Priority:
Normal
Target version:
-
[ruby-core:87764]

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

r63763-fail.log (37 KB) r63763-fail.log normalperson (Eric Wong), 07/03/2018 09:51 AM

Associated revisions

Revision 8bec3e1f
Added by k0kubun (Takashi Kokubun) 8 months ago

insns.def: stop pushing unnecessary keys for MJIT

[Bug #14892]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 63875
Added by k0kubun (Takashi Kokubun) 8 months ago

insns.def: stop pushing unnecessary keys for MJIT

[Bug #14892]

Revision 63875
Added by k0kubun (Takashi Kokubun) 8 months ago

insns.def: stop pushing unnecessary keys for MJIT

[Bug #14892]

History

Updated by k0kubun (Takashi Kokubun) 8 months ago

  • 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.

Updated by wanabe (_ wanabe) 8 months ago

A mini reproductive command is here.

ruby --jit-wait --disable=gems -e '1000.times { a, b = nil }'

Updated by wanabe (_ wanabe) 8 months ago

And another one.

ruby --jit-wait --disable-gems -e '1000.times { break if /a/ =~ "ab" && !$~[0] }'

Updated by wanabe (_ wanabe) 8 months ago

Many cases (including a, b = nil) go well after r63863.
Now I found that there remain 2 issues at least.

  1. 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] }
  2. 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"] = {} }
#5

Updated by k0kubun (Takashi Kokubun) 8 months ago

  • 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