From 66688cde3b31f8244e8afda6b724c1f525a67dd6 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 11 Nov 2015 09:38:20 +0000 Subject: compile.c: comments for r52517 [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- compile.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/compile.c b/compile.c index bd41fefeef..3e3499405a 100644 --- a/compile.c +++ b/compile.c @@ -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); } -- cgit v1.2.3