diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2019-07-03 10:00:50 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-07-03 10:39:22 +0900 |
commit | 10cc6bc4d9276023db21db1014969381de813ff8 (patch) | |
tree | 1ffea18eb8ea65f088623a4d6a627ff94a61da98 /mjit_compile.c | |
parent | 07e9a1d9986b36d9702b480de549c1301dd897e0 (diff) |
Just disable inlining with local varaible for now
This partially reverts commit 712a66b0741605f5b2db670a292b9bb352f8a716.
The previous fix made CI strange like:
http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/2124178
Let me just downgrade the behavior for now and deal with it later.
[Bug #15971]
Diffstat (limited to 'mjit_compile.c')
-rw-r--r-- | mjit_compile.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mjit_compile.c b/mjit_compile.c index 4110af3855..b6ed984b20 100644 --- a/mjit_compile.c +++ b/mjit_compile.c @@ -331,6 +331,19 @@ inlinable_iseq_p(const struct rb_iseq_constant_body *body) // * Do not read any `cfp->pc` if (insn != BIN(leave) && insn_may_depend_on_sp_or_pc(insn, body->iseq_encoded + (pos + 1))) return false; + // At this moment, `cfp->ep` in an inlined method is not working. + switch (insn) { + case BIN(getlocal): + case BIN(getlocal_WC_0): + case BIN(getlocal_WC_1): + case BIN(setlocal): + case BIN(setlocal_WC_0): + case BIN(setlocal_WC_1): + case BIN(getblockparam): + case BIN(getblockparamproxy): + case BIN(setblockparam): + return false; + } pos += insn_len(insn); } return true; |