Mike Pall
0af3f47ba0
Add allocation sinking and store sinking optimization.
2012-07-02 23:47:12 +02:00
Mike Pall
9589e11e44
Avoid recursive GC steps after GC-triggered trace exit.
2012-03-20 14:18:14 +01:00
Mike Pall
10ef109eef
Bump copyright date to 2012.
2012-01-23 22:42:42 +01:00
Mike Pall
a0d7827554
Generalize handling of stack checks indicated by highest exit + 1.
2011-10-24 16:11:38 +02:00
Mike Pall
84683405fb
Don't save/restore tmptv with copyTV.
2011-10-24 15:58:54 +02:00
Mike Pall
4c9318792f
Save tmptv state for trace recorder across RECORD vmevent.
2011-10-14 00:43:17 +02:00
Mike Pall
bed0f18466
Remove temporary mcode limit error from application stack.
2011-08-09 00:45:26 +02:00
Mike Pall
82eca898db
Prefer recording loops over calls.
...
Hotcounts are decremented by 2 for loops and by 1 for calls.
2011-06-29 01:52:23 +02:00
Mike Pall
deeb8196c4
Reorganize trace linking and track link types.
2011-06-28 23:23:34 +02:00
Mike Pall
3dbae4ffc2
Clean up temporary bytecode patching.
2011-06-28 23:19:36 +02:00
Mike Pall
b6a7fc5330
Cleanup prototype flags.
2011-06-09 13:54:40 +02:00
Mike Pall
8c32b38ca3
Flatten and compress in-memory debug info (saves ~70%).
2011-06-09 01:27:37 +02:00
Mike Pall
585cf05dbd
Move debugging/introspection functionality to lj_debug.c.
2011-06-07 21:37:24 +02:00
Mike Pall
51ee3d951e
Minor change to bytecode penalty code for consistency.
2011-06-07 20:44:55 +02:00
Mike Pall
4057620bf5
Treat extra exit from stack check like a parent exit.
2011-05-26 18:02:42 +02:00
Mike Pall
fb46370e56
Cleanup of target dependencies.
2011-05-16 19:32:47 +02:00
Mike Pall
67d3ac9b19
Fix some portability issues with the JIT compiler.
2011-05-09 20:46:58 +02:00
Mike Pall
77ba7726e2
FFI: Save errno/GetLastError() around allocations, hooks etc.
2011-05-08 22:33:04 +02:00
Mike Pall
bfce3c1127
DUALNUM: Handle integer type in JIT compiler.
2011-03-10 01:57:24 +01:00
Mike Pall
b613216efc
Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.
...
Add generic HIOP instruction for extra backend functionality.
Add support for HIOP to x86 backend.
Use POWI for 64 bit integer x^k, too.
POWI is lowered to a call by SPLIT or the x64 backend.
2011-02-02 02:29:37 +01:00
Mike Pall
a285415b01
One more fix for the trace flush logic. Sigh.
2011-01-26 02:34:30 +01:00
Mike Pall
96ef87bdfd
Clear bytecode penalty cache in jit.flush().
2011-01-23 19:06:19 +01:00
Mike Pall
f529d22869
Another fix for the trace flush logic. I'll get this right someday.
...
Thanks to David Manura.
2011-01-22 20:32:23 +01:00
Mike Pall
685dfc3172
Fix for the fix for the trace flush logic.
2011-01-18 22:17:27 +01:00
Mike Pall
751eff9f97
Cleanup and fix trace flush logic.
2011-01-18 21:08:23 +01:00
Mike Pall
66ba1e68aa
Add trace recorder infrastructure for instruction post-processing.
2011-01-17 01:20:10 +01:00
Mike Pall
06f99fc3df
Bump copyright date to 2011.
2011-01-09 17:12:53 +01:00
Mike Pall
badff4ed0a
Fix error location while recording metamethods.
2010-12-15 19:44:30 +01:00
Mike Pall
5a13fa69d9
Add IR_KINT64.
2010-12-05 22:12:31 +01:00
Mike Pall
c88169dc46
Record y = select(x, ...) idiom.
2010-09-13 01:23:19 +02:00
Mike Pall
8fa1db826c
Create symbol table of JIT-compiled code for use with Linux perf tools.
...
Enable with: -DLUAJIT_USE_PERFTOOLS
2010-05-01 04:27:14 +02:00
Mike Pall
2e24770ed3
Simplify management of current trace. Drop lazy save.
2010-04-25 13:53:33 +02:00
Mike Pall
721b73fecb
Turn traces into true GC objects (GCtrace).
2010-04-25 03:32:29 +02:00
Mike Pall
932cda0fe3
Replace on-trace GC frame syncing with interpreter exit.
...
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.
2010-04-19 00:43:35 +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
6038866f7d
Pass MULTRES or negated error code in RD to lj_vm_exit_interp.
...
Fixes overwrite of saved r12 after trace exit.
2010-03-23 18:31:17 +01:00
Mike Pall
16f33422f1
Restore MULTRES for snapshots pointing to CALLM etc. bytecodes.
2010-03-13 17:45:09 +01:00
Mike Pall
e7b737aa12
Implement down-recursion.
2010-03-01 06:45:30 +01:00
Mike Pall
a0fbb05bf0
Make penalty PRNG available for general use by compiler.
2010-02-26 17:01:33 +01:00
Mike Pall
b95294572c
Move SIMD constants to jit_State to keep them in the low 4GB.
2010-02-24 23:17:17 +01:00
Mike Pall
857f538eac
Fix exit state for 64 bit mode.
2010-02-24 01:18:49 +01:00
Mike Pall
8ae2f9feaa
Randomize penalties for aborts and add blacklisting.
2010-02-23 19:41:32 +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
65586ca4dc
Adapt bytecode patching/unpatching for hot calls.
2010-02-18 17:17:50 +01:00
Mike Pall
59f54be9d3
Update trace recorder infrastructure for hot calls.
2010-02-18 06:07:31 +01:00
Mike Pall
afa07e0c46
Improve error reporting for traces aborted in non-Lua functions.
2010-02-15 22:44:23 +01:00
Mike Pall
e664945e0b
Change record vmevent parameters. Dump function id on FUNC*.
2010-02-15 22:26:33 +01:00
Mike Pall
3452bfcf8c
Add generic function handling for debug modules.
...
Don't call record vmevent for non-Lua functions.
2010-02-15 17:36:29 +01:00
Mike Pall
b838cd8dca
Minor cleanup of trace event handling.
2010-02-15 16:41:52 +01:00
Mike Pall
c93138b59e
Major redesign of function call handling.
...
Drop call gates. Use function headers, dispatched like bytecodes.
Emit BC_FUNCF/BC_FUNCV bytecode at PC 0 for all Lua functions.
C functions and ASM fast functions get extra bytecodes.
Modify internal calling convention: new base in BASE (formerly in RA).
Can now use better C function wrapper semantics (dynamic on/off).
Prerequisite for call hooks with zero-overhead if disabled.
Prerequisite for compiling recursive calls.
Prerequisite for efficient 32/64 bit prototype guards.
2010-02-13 04:51:56 +01:00
Mike Pall
c8d55e8506
32/64 bit memory ref cleanup, part 1: GCproto ->bc and ->k.
2010-02-05 00:07:32 +01:00
Mike Pall
318e86c7eb
Clean up frame depth checks and loop detection.
2010-02-03 14:55:56 +01:00
Mike Pall
c1c9abeab7
Add extra check to suppress hotcall event during recording.
2010-02-03 14:34:30 +01:00
Mike Pall
725da9224d
Don't modify jit_State and exit counters while in vmevent.
...
Fixes crash with hot loop in TEXIT callback which cleared J->parent.
2010-01-28 02:30:12 +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
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
8a9cfa4b45
Define CFRAME structure for x64 interpreter.
2009-12-28 23:45:32 +01:00
Mike Pall
bc47063708
Use fastcall for remaining 1-arg/2-arg calls from interpreter.
...
Simplifies conversion to x64 calling conventions.
2009-12-27 17:42:41 +01:00
Mike Pall
6adab430af
Adapt primary inbound calls in x64 interpreter.
...
Change argument order for lj_vm_cpcall() to simplify x64 interpreter.
2009-12-17 22:08:20 +01:00
Mike Pall
1d1fed48a0
RELEASE LuaJIT-2.0.0-beta2
2009-12-08 19:49:20 +01:00
Mike Pall
55b1695971
RELEASE LuaJIT-2.0.0-beta1
2009-12-08 19:46:35 +01:00