Commit Graph

126 Commits

Author SHA1 Message Date
Mike Pall
db1b399af1 Bump copyright date to 2016. 2016-03-03 12:02:22 +01:00
Mike Pall
39eddd3b96 Always merge snapshots without instructions inbetween.
Thanks to Vyacheslav Egorov.
2016-01-18 12:02:01 +01:00
Mike Pall
20f4141b1a FFI: Properly unsink non-standard cdata allocations. 2015-12-28 13:02:35 +01:00
Mike Pall
776c6935ed Merge branch 'master' into v2.1 2015-10-15 02:29:37 +02:00
Mike Pall
4808e62a9a Drop marks from replayed instructions when sinking.
Reported by Vyacheslav Egorov.
2015-10-15 02:28:04 +02:00
Mike Pall
0b09c971c9 Merge branch 'master' into v2.1 2015-10-01 16:16:18 +02:00
Mike Pall
ef087aa678 Fix unsinking check.
Reported by Elias Hogstvedt. Debugged and fixed by Vyacheslav Egorov.
2015-10-01 16:12:48 +02:00
Mike Pall
a3a6866d4c Re-enable trace stitching.
Thanks to Vyacheslav Egorov.
2015-08-29 23:24:26 +02:00
Mike Pall
0a5045c34e Merge branch 'master' into v2.1 2015-01-06 00:12:45 +01:00
Mike Pall
86913b9bbf Bump copyright date to 2015. 2015-01-05 23:59:31 +01:00
Mike Pall
cb481ddc8f Add LJ_GC64 mode: 64 bit GC object references.
Actually NaN tagging with 47 bit pointers and 13+4 bit tags.
2015-01-03 15:23:58 +01:00
Mike Pall
054e6abe37 Add LJ_FR2 mode: Two-slot frame info. 2015-01-03 15:04:38 +01:00
Mike Pall
5cb6e2eaaf Cleanup of TValue setters. No functional changes. 2014-12-20 01:48:00 +01:00
Mike Pall
881f48f980 Cleanup of frame handling. No functional changes. 2014-12-15 02:27:27 +01:00
Mike Pall
d3e3700180 Merge branch 'master' into v2.1 2014-04-03 21:48:34 +02:00
Mike Pall
111b2e8711 Fix top slot calculation for snapshots with continuations. 2014-04-03 21:45:57 +02:00
Mike Pall
4e78b9bb12 Merge branch 'master' into v2.1 2014-01-19 13:12:23 +01:00
Mike Pall
45c067dddd FFI: Fix cts->L for cdata unsinking in snapshot restore. 2014-01-19 13:09:20 +01:00
Mike Pall
a9d4543601 Merge branch 'master' into v2.1 2014-01-16 23:18:34 +01:00
Mike Pall
ef59e54820 Bump copyright date to 2014. 2014-01-16 23:10:16 +01:00
Mike Pall
b5d741fa7e Add trace stitching. 2013-12-25 02:55:25 +01:00
Mike Pall
f1e7a4477c Fix snapshot restore for exit to function header. 2013-09-13 00:33:58 +02:00
Mike Pall
2c3e80d4fd FFI: Must sink XBAR together with XSTOREs. 2013-05-23 22:15:51 +02:00
Mike Pall
4a44c4ff69 Bump copyright date to 2013. 2013-02-11 12:54:48 +01:00
Mike Pall
a6d636c508 Preserve snapshot #0 PC for all traces (potential gcstep exit). 2012-09-01 00:58:00 +02:00
Mike Pall
23abbd9ef3 Only replay sunk stores up to the snapshot reference. 2012-07-29 21:37:45 +02:00
Mike Pall
834ff6d36d Fix slot flags in snapshot replay. 2012-07-20 18:52:29 +02:00
Mike Pall
f1b4fa844b Fix restore of sunk CNEWI with implicit P32 to P64 conversion. 2012-07-18 18:02:32 +02:00
Mike Pall
7c056488d9 Drop range limit for sunk stores relative to sunk allocation. 2012-07-04 21:16:06 +02:00
Mike Pall
c740a30223 Invoke SPLIT pass in side trace for rejoined sunk stores. 2012-07-03 12:41:21 +02:00
Mike Pall
2df19049ef Avoid strict aliasing issues. 2012-07-03 00:03:01 +02:00
Mike Pall
0af3f47ba0 Add allocation sinking and store sinking optimization. 2012-07-02 23:47:12 +02:00
Mike Pall
afeb4e2c51 Handle initial snapshot for side traces in lj_snap.c only. 2012-07-02 22:52:15 +02:00
Mike Pall
0688de5483 Add IR_PVAL instruction for non-slot parent links. 2012-07-02 22:47:20 +02:00
Mike Pall
7ae3832f20 Move snapshot replay for side traces to lj_snap.c. 2012-07-02 13:37:55 +02:00
Mike Pall
cda3630565 Clean up RegSP handling for parent link instructions. 2012-07-01 22:44:54 +02:00
Mike Pall
eacecc90e1 Clean up snapshot restore. 2012-06-30 20:45:59 +02:00
Mike Pall
7266e27404 Correctly preserve snapshot #0 PC for root traces (insert NOP). 2012-06-08 19:22:59 +02:00
Mike Pall
f3197046b8 Preserve snapshot #0 PC for root traces. 2012-05-14 17:35:05 +02:00
Mike Pall
10ef109eef Bump copyright date to 2012. 2012-01-23 22:42:42 +01:00
Mike Pall
1a42c03807 Fix stack check in side exit. 2011-11-25 19:36:48 +01:00
Mike Pall
f8a4769fb2 Keep maximum frame extent in snap->topslot. 2011-11-20 17:56:47 +01:00
Mike Pall
dc2a39e46d Get rid of snap->depth. 2011-11-20 13:23:25 +01:00
Mike Pall
113f8e9ac2 Fix data-flow analysis for BC_ITERL. 2011-06-27 01:11:11 +02:00
Mike Pall
f50d8986d8 Fix data-flow analysis for BC_UCLO. 2011-06-07 11:51:04 +02:00
Mike Pall
46955be1e2 Fix handling of number constants in snapshots in SPLIT pass. 2011-05-27 01:56:25 +02:00
Mike Pall
138f54352a Split up FP IR instructions with SPLIT pass for soft-float targets. 2011-05-22 17:44:58 +02:00
Mike Pall
fb46370e56 Cleanup of target dependencies. 2011-05-16 19:32:47 +02:00
Mike Pall
1ac71f1fa8 ARM: Add LJ_SOFTFP define. Add support for soft-float slot handling. 2011-05-16 02:38:07 +02:00
Mike Pall
67d3ac9b19 Fix some portability issues with the JIT compiler. 2011-05-09 20:46:58 +02:00
Mike Pall
a1c887e3b9 Fix data-flow analysis for BC_ITERC. 2011-03-19 17:30:15 +01:00
Mike Pall
bfce3c1127 DUALNUM: Handle integer type in JIT compiler. 2011-03-10 01:57:24 +01:00
Mike Pall
4c97cc7730 Eliminate dead slots in snapshots using bytecode data-flow analysis. 2011-02-22 22:39:12 +01:00
Mike Pall
03946ac978 DUALNUM: Add integer type to core VM. 2011-02-17 00:44:14 +01:00
Mike Pall
06f99fc3df Bump copyright date to 2011. 2011-01-09 17:12:53 +01:00
Mike Pall
c2c08ba9b3 Record calls to vararg functions.
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.
2010-09-12 01:44:13 +02:00
Mike Pall
96957a4551 Turn some lua_State fields into 32 bit pointers.
lua_State now fits into one cache line on x64.
2010-09-09 12:28:17 +02:00
Mike Pall
721b73fecb Turn traces into true GC objects (GCtrace). 2010-04-25 03:32:29 +02:00
Mike Pall
fbe092c22d Fix setup of RD when dispatching to function headers after exit. 2010-04-09 14:26:18 +02:00
Mike Pall
db756430ee Don't copy SNAP_NORESTORE mark into loops and suppress restore in exit. 2010-04-08 01:32:26 +02:00
Mike Pall
16f33422f1 Restore MULTRES for snapshots pointing to CALLM etc. bytecodes. 2010-03-13 17:45:09 +01:00
Mike Pall
4c9f71be5d Major 32/64 bit cleanups in assembler and exit handling.
Add 64 bit lightuserdata handling. Keep the tagged 64 bit value.
Allocate/save/restore 64 bit spill slots for 64 bit lightuserdata.
Fix code generation for 64 bit loads/stores/moves/compares.
Fix code generation for stack pointer adjustments.
Add fixed spill slot definitions for x64. Reduce reserved spill slots.
Disable STRREF + ADD fusion in 64 bit mode (avoid negative 32 bit ofs).
2010-02-24 07:09:34 +01:00
Mike Pall
c1362dcac9 Don't eliminate SLOAD restores across RETF.
Move restore-elimination logic into snapshot_slots().
2010-02-23 03:08:49 +01:00
Mike Pall
c52da1f2da Rethrow errors from trace exit handling from the right C frame. 2010-02-19 03:13:48 +01:00
Mike Pall
2b22b9e710 Drop obsolete shadow frame link stack. 2010-02-18 03:19:46 +01:00
Mike Pall
b838cd8dca Minor cleanup of trace event handling. 2010-02-15 16:41:52 +01:00
Mike Pall
565eb39574 Drop frame clearing in exit handling and JIT compiled code. 2010-02-11 01:50:32 +01:00
Mike Pall
7256690364 Add shadow frame link stack for trace recorder.
Simplifies snapshots. Prerequisite for pre-call snapshots.
Increases consistency for fast function calls, too.
2010-02-04 03:08:29 +01:00
Mike Pall
3aeb892262 Eliminate IR_FRAME. Replace with KGC and TRef/SnapEntry flags. 2010-01-27 03:50:29 +01:00
Mike Pall
d216cdb2b9 Add frame and continuation flags to TRef and SnapEntry. 2010-01-27 02:17:56 +01:00
Mike Pall
67ca399a30 Compress snapshots using a simple, extensible 1D-compression.
Typically reduces storage overhead for snapshot maps by 60%.
The extensible format is a prerequisite for the next redesign steps:
Eliminate IR_FRAME and implement return-to-lower-frame.
2010-01-26 21:49:04 +01:00
Mike Pall
34d84f8836 Fill gaps in frames (caused by metamethod calls) with nil.
Simplifies storing snapshots to stack.
2010-01-26 00:45:30 +01:00
Mike Pall
47f1bc80d8 Use dedicated type for snapshot map entry.
Preparatory work for compressed snapshots.
2010-01-25 19:51:52 +01:00
Mike Pall
4d9be5b8f8 Bump all copyright dates to 2010. 2010-01-09 14:28:11 +01:00
Mike Pall
3f1f9e11f4 Fast forward to sync public repo.
Compile math.sinh(), math.cosh(), math.tanh() and math.random().
Compile various io.*() functions.
Drive the GC forward on string allocations in the parser.
Improve KNUM fuse vs. load heuristics.
Add abstract C call handling to IR.
2009-12-08 20:35:29 +01:00
Mike Pall
55b1695971 RELEASE LuaJIT-2.0.0-beta1 2009-12-08 19:46:35 +01:00