diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-11-11 09:38:20 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-11-11 09:38:20 +0000 |
commit | fb106b932937e71b4d75032db98216065171d82b (patch) | |
tree | 4d493f6d138a2e20edb18050448e7363036f8011 | |
parent | 4d57720d1a8f8bdc492e6988bb01a716c814cbbd (diff) | |
download | ruby-fb106b932937e71b4d75032db98216065171d82b.tar.gz |
compile.c: comments for r52517 [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | compile.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -2001,11 +2001,19 @@ iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int do_tailcal } if (iobj->insn_id == BIN(pop)) { + /* + * putself / putnil / putobject obj / putstring "..." + * pop + * => + * # do nothing + */ LINK_ELEMENT *prev = iobj->link.prev; if (prev->type == ISEQ_ELEMENT_INSN) { enum ruby_vminsn_type previ = ((INSN *)prev)->insn_id; if (previ == BIN(putobject) || previ == BIN(putnil) || previ == BIN(putself) || previ == BIN(putstring)) { + /* just push operand or static value and pop soon, no + * side effects */ REMOVE_ELEM(prev); REMOVE_ELEM(&iobj->link); } |