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->op1 = store->op2 = 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. */
|
||||
}
|
||||
goto doemit;
|
||||
|
Loading…
Reference in New Issue
Block a user