aboutsummaryrefslogtreecommitdiff
path: root/src/lj_opt_dce.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-08-11 22:04:38 +0200
committerMike Pall <mike>2011-08-11 22:04:38 +0200
commit05ef03e2d04ccde3c881166268575308315a6ea0 (patch)
treea3c2088217fadb18663422ba74a67e114a39037c /src/lj_opt_dce.c
parente8fa76feace720c8348f08fd0e0c9f0656277987 (diff)
downloadluajit-05ef03e2d04ccde3c881166268575308315a6ea0.tar.gz
luajit-05ef03e2d04ccde3c881166268575308315a6ea0.tar.bz2
luajit-05ef03e2d04ccde3c881166268575308315a6ea0.zip
Don't bother to chain NOPs.
Diffstat (limited to 'src/lj_opt_dce.c')
-rw-r--r--src/lj_opt_dce.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lj_opt_dce.c b/src/lj_opt_dce.c
index 253fe3d2..0587262d 100644
--- a/src/lj_opt_dce.c
+++ b/src/lj_opt_dce.c
@@ -47,17 +47,15 @@ static void dce_propagate(jit_State *J)
47 pchain[ir->o] = &ir->prev; 47 pchain[ir->o] = &ir->prev;
48 } else if (!ir_sideeff(ir)) { 48 } else if (!ir_sideeff(ir)) {
49 *pchain[ir->o] = ir->prev; /* Reroute original instruction chain. */ 49 *pchain[ir->o] = ir->prev; /* Reroute original instruction chain. */
50 *pchain[IR_NOP] = (IRRef1)ins;
51 ir->t.irt = IRT_NIL; 50 ir->t.irt = IRT_NIL;
52 ir->o = IR_NOP; /* Replace instruction with NOP. */ 51 ir->o = IR_NOP; /* Replace instruction with NOP. */
53 ir->op1 = ir->op2 = 0; 52 ir->op1 = ir->op2 = 0;
54 pchain[IR_NOP] = &ir->prev; 53 ir->prev = 0;
55 continue; 54 continue;
56 } 55 }
57 if (ir->op1 >= REF_FIRST) irt_setmark(IR(ir->op1)->t); 56 if (ir->op1 >= REF_FIRST) irt_setmark(IR(ir->op1)->t);
58 if (ir->op2 >= REF_FIRST) irt_setmark(IR(ir->op2)->t); 57 if (ir->op2 >= REF_FIRST) irt_setmark(IR(ir->op2)->t);
59 } 58 }
60 *pchain[IR_NOP] = 0; /* Terminate NOP chain. */
61} 59}
62 60
63/* Dead Code Elimination. 61/* Dead Code Elimination.