summaryrefslogtreecommitdiff
path: root/src/lj_record.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV.Mike Pall2011-03-071-2/+3
|
* Suppress recording of retried fast functions.Mike Pall2011-03-071-0/+4
|
* Eliminate dead slots in snapshots using bytecode data-flow analysis.Mike Pall2011-02-221-5/+3
|
* Add workaround for lj_meta_tset() newkey inconsistency.Mike Pall2011-02-151-1/+2
|
* FFI: Record ffi.abi().Mike Pall2011-02-081-2/+5
|
* FFI: Optimize snapshots for cdata comparisons.Mike Pall2011-02-051-5/+9
|
* Fix metamethod comparisons triggered by BC_ISEQP/BC_ISNEP.Mike Pall2011-02-051-1/+1
|
* Treat metatables of special userdata objects as immutable.Mike Pall2011-02-051-12/+26
|
* Add compile-time option LUAJIT_ENABLE_CHECKHOOK. Disabled by default.Mike Pall2011-01-191-0/+21
| | | | This checks for asynchronously set hooks from compiled code.
* Differentiate between IR_KPTR and IR_KKPTR.Mike Pall2011-01-191-3/+3
| | | | | | | IR_KPTR holds a const pointer to possibly non-const content. IR_KKPTR holds a const pointer to definitely const content. Note that only content known by the VM to be const qualifies. Content tagged as const by users (e.g. const char *) doesn't.
* Cleanup and fix trace flush logic.Mike Pall2011-01-181-0/+1
|
* FFI: Record 64 bit integer comparisons and pointer comparisons.Mike Pall2011-01-171-0/+1
|
* Add trace recorder infrastructure for instruction post-processing.Mike Pall2011-01-171-0/+20
|
* Fix assertion.Mike Pall2011-01-161-1/+4
|
* FFI: Add 64 bit integer comparisons and pointer comparisons.Mike Pall2011-01-131-0/+29
|
* Bump copyright date to 2011.Mike Pall2011-01-091-1/+1
|
* FFI: Add support for cdata constants to IR.Mike Pall2011-01-021-0/+5
|
* Refactoring of conversion ops, part 4: use CONV instead of TOINT/TONUM.Mike Pall2010-12-311-11/+11
| | | | Also narrow CONV.int.num and CONV.i64.num.
* FFI: Treat cdata metatable+methods as immutable in trace recorder.Mike Pall2010-12-081-0/+13
|
* Add IR_KINT64.Mike Pall2010-12-051-1/+2
|
* Rename IRT_PTR to IRT_P32.Mike Pall2010-12-051-20/+20
|
* Split off fast function recording to lj_ffrecord.c.Mike Pall2010-12-051-826/+38
|
* Improve unrolling heuristics for non-looping inner loops.Mike Pall2010-11-251-1/+2
|
* Disable Lua 5.2 features by default. See -DLUAJIT_ENABLE_LUA52COMPAT.Mike Pall2010-11-191-1/+4
|
* Add support for __pairs and __ipairs metamethods (from Lua 5.2).Mike Pall2010-11-181-27/+36
|
* Fix recording of y = select(n, ...) for non-int indexes.Mike Pall2010-10-111-0/+2
|
* Decouple SLOAD type and optional conversion.Mike Pall2010-10-111-9/+11
|
* Specialize bytecode for pairs()/next() iterator. Speedup: 3.5x.Mike Pall2010-09-301-0/+2
| | | | | | Parser predict pairs/next and emits specialized bytecode. Bytecode is descpecialized at runtime if the prediction was wrong. Store slot index in hidden control var to avoid key lookups.
* Add IR_VLOAD for vararg loads.Mike Pall2010-09-141-2/+2
| | | | Also fixes the broken AA improvement in the last commit.
* Avoid unnecessary vararg loads.Mike Pall2010-09-141-1/+2
|
* Record y = select(x, ...) idiom.Mike Pall2010-09-131-0/+59
|
* Record select().Mike Pall2010-09-131-0/+42
|
* Record vararg expressions with varargs defined off-trace.Mike Pall2010-09-131-23/+57
| | | | Add SLOAD variant to access the frame type/size.
* Fix tailcalls from vararg functions.Mike Pall2010-09-131-1/+8
|
* Fix off-by-one errors in maxslot calculation of trace recorder.Mike Pall2010-09-121-2/+2
|
* Record vararg expressions with known fixed number of results.Mike Pall2010-09-121-1/+27
|
* Record calls to vararg functions.Mike Pall2010-09-121-2/+36
| | | | | | This loop is now roughly 1000x faster than the Lua interpreter: local function f(a,b,...) end; for i=1,2e8 do f(1,2,i) end Yet another silly microbenchmark -- I know.
* Turn some lua_State fields into 32 bit pointers.Mike Pall2010-09-091-1/+2
| | | | lua_State now fits into one cache line on x64.
* PPC: Clean up masked shift/rotate target settings.Mike Pall2010-08-291-3/+2
|
* Abstract out pointer hash to hashrot(). Tune hash constants.Mike Pall2010-07-211-10/+1
|
* Add weak guards. Emit TNEW/TDUP with a guard bit.Mike Pall2010-05-081-2/+2
|
* Treat the tag of a TValue as unsigned everywhere.Mike Pall2010-04-251-1/+1
|
* Make metamethod names proper GC roots.Mike Pall2010-04-251-7/+5
|
* Simplify management of current trace. Drop lazy save.Mike Pall2010-04-251-6/+6
|
* Turn traces into true GC objects (GCtrace).Mike Pall2010-04-251-7/+6
|
* No longer let the GC replace dead keys with the LJ_TDEADKEY tag.Mike Pall2010-04-211-2/+7
| | | | | | | | Important: this changes the semantics of the write barrier! Carefully read the big comment block in lj_obj.h This helps HREFK key slot specialization and allows safely hoisting HREF/HREFK across GC steps, too (fix for a barely reproducible bug). Dead keys are only removed during a table resize (as before).
* Replace on-trace GC frame syncing with interpreter exit.Mike Pall2010-04-191-7/+16
| | | | | | | Need to sync GC objects to stack only during atomic GC phase. Need to setup a proper frame structure only for calling finalizers. Force an exit to the interpreter and let it handle the uncommon cases. Finally solves the "NYI: gcstep sync with frames" issue.
* Generate EQ(HREF, niltv) for load path, too (better CSE).Mike Pall2010-03-281-1/+7
|
* Fix precondition check for NEWREF.Mike Pall2010-03-281-2/+2
| | | | A check for nil value is not enough. Must check for ptr == niltv.
* Avoid snapshots for returns to known callers.Mike Pall2010-03-211-2/+2
|