mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Fix DSE of USTORE. Have to remove OBAR, too.
This commit is contained in:
parent
39112fd6fb
commit
3ed5172fe4
@ -422,6 +422,19 @@ TRef LJ_FASTCALL lj_opt_dse_ustore(jit_State *J)
|
|||||||
store->t.irt = IRT_NIL;
|
store->t.irt = IRT_NIL;
|
||||||
store->op1 = store->op2 = 0;
|
store->op1 = store->op2 = 0;
|
||||||
store->prev = 0;
|
store->prev = 0;
|
||||||
|
if (ref+1 < J->cur.nins &&
|
||||||
|
store[1].o == IR_OBAR && store[1].op1 == xref) {
|
||||||
|
IRRef1 *bp = &J->chain[IR_OBAR];
|
||||||
|
IRIns *obar;
|
||||||
|
for (obar = IR(*bp); *bp > ref+1; obar = IR(*bp))
|
||||||
|
bp = &obar->prev;
|
||||||
|
/* Remove OBAR, too. */
|
||||||
|
*bp = obar->prev;
|
||||||
|
obar->o = IR_NOP;
|
||||||
|
obar->t.irt = IRT_NIL;
|
||||||
|
obar->op1 = obar->op2 = 0;
|
||||||
|
obar->prev = 0;
|
||||||
|
}
|
||||||
/* Now emit the new store instead. */
|
/* Now emit the new store instead. */
|
||||||
}
|
}
|
||||||
goto doemit;
|
goto doemit;
|
||||||
|
Loading…
Reference in New Issue
Block a user