Commit Graph

47 Commits (bd782cedd5079a49e30310837c899e98ce11c95c)

Author SHA1 Message Date
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