lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Impressive that jit 2.x performs loop hoisting, but how is it that neither assert nor type need to be checked? The only thing I can think of is that it is assumed that they are both stored in upvalues, and that jit 2.x checks that nothing modifies those upvalues. If so, wouldn't that cause problems with debug.setupvalue =/? Intrigued. Sounds good though.

- Alex

----- Original Message ----- From: "Mike Pall"


The first line is transformed into a single ISNUM ucode. This is
a type-checking guard which exits the trace if its precondition
later turns out not to be true.

The bytecode generated for the first line is not trivial (it has
two calls and a conditional expression). The transformation to a
single ucode is quite involved, but most of it can be done while
recording: