diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-23 07:22:27 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-08-23 07:22:27 +0000 |
commit | 18a208350b66385a06e768844a52b2d010c6721b (patch) | |
tree | 64a4d2372cfd7b84da125eee46962965b07697c6 /compile.c | |
parent | 874b88cd4f8c28d622e9b0667d07cfe5fed5b7a6 (diff) | |
download | ruby-18a208350b66385a06e768844a52b2d010c6721b.tar.gz |
compile.c: drop unused string
* compile.c (iseq_peephole_optimize): drop unused dynamic string
literal, without concatenation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'compile.c')
-rw-r--r-- | compile.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -2942,6 +2942,15 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal else if (previ == BIN(newarray) && iseq_pop_newarray(iseq, (INSN*)prev)) { ELEM_REMOVE(&iobj->link); } + else if (previ == BIN(concatstrings)) { + if (OPERAND_AT(prev, 0) == INT2FIX(1)) { + ELEM_REMOVE(prev); + } + else { + ELEM_REMOVE(&iobj->link); + INSN_OF(prev) = BIN(adjuststack); + } + } } } |