FFI: Prevent DSE across ffi.string().

This commit is contained in:
Mike Pall 2015-02-18 16:00:15 +01:00
parent dfa173b929
commit 704280fb80

View File

@ -793,6 +793,7 @@ TRef LJ_FASTCALL lj_opt_dse_xstore(jit_State *J)
IRRef ref = *refp; IRRef ref = *refp;
if (J->chain[IR_CALLXS] > lim) lim = J->chain[IR_CALLXS]; if (J->chain[IR_CALLXS] > lim) lim = J->chain[IR_CALLXS];
if (J->chain[IR_XBAR] > lim) lim = J->chain[IR_XBAR]; if (J->chain[IR_XBAR] > lim) lim = J->chain[IR_XBAR];
if (J->chain[IR_XSNEW] > lim) lim = J->chain[IR_XSNEW];
while (ref > lim) { /* Search for redundant or conflicting stores. */ while (ref > lim) { /* Search for redundant or conflicting stores. */
IRIns *store = IR(ref); IRIns *store = IR(ref);
switch (aa_xref(J, xr, fins, store)) { switch (aa_xref(J, xr, fins, store)) {