summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/codegen.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/codegen.c b/src/codegen.c
index df5bc2acf..b0e6f8fd1 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -170,6 +170,10 @@ genop_peep(codegen_scope *s, mrb_code i, int val)
switch (c1) {
case OP_MOVE:
+ if (GETARG_A(i) == GETARG_B(i)) {
+ /* skip useless OP_MOVE */
+ return;
+ }
if (val) break;
switch (c0) {
case OP_MOVE: