Commit Graph

521 Commits (master)

Author SHA1 Message Date
Dibyendu Majumdar 86a2adb4f7 issue #86: merge Lua 5.3.3
8 years ago
Dibyendu Majumdar 8948607b74 fix a compilation error due to multiline comment
8 years ago
Dibyendu Majumdar 2bf6a88192 issue #82 add support for step over and step out
8 years ago
Dibyendu Majumdar b84d41bdd2 issue #82 disable some Debug lib functions when debugger is running
8 years ago
Dibyendu Majumdar ed185aae9a issue #82 redirect Lua stdout and stderr to the debugger
8 years ago
Dibyendu Majumdar 5dc495720f the previous change related to module sharing between functions appears to have introduced memory leak - caught by asan; also apply fixes discussed in Lua mailing list
8 years ago
Dibyendu Majumdar 1ed019dffd issue #78 nearly done
8 years ago
Dibyendu Majumdar 5472c25f2c issue #78 wip
8 years ago
Dibyendu Majumdar 3d6204856c issue #78 work in progress
8 years ago
Dibyendu Majumdar 754536b01d issue #78 work in progress
8 years ago
Dibyendu Majumdar 402c4b2bc4 issue #78 work in progress
8 years ago
Dibyendu Majumdar a602f7246c ast wip
8 years ago
Dibyendu Majumdar 22146f6bc8 ast wip
8 years ago
Dibyendu Majumdar 8882799d67 abstract syntax tree
8 years ago
Dibyendu Majumdar 762ab319f5 issue #76 type assertions
9 years ago
Dibyendu Majumdar b23e0eab16 issue #76 type assertions
9 years ago
Dibyendu Majumdar 38f25882b6 issue #76 type assertion work in progress
9 years ago
Dibyendu Majumdar aa453e0aae issue #76: work on type assertion
9 years ago
Dibyendu Majumdar f036c53014 code reformat and OP-SELF implementation aligned with Lua 5.3.2
9 years ago
dibyendumajumdar add5ac8368 upgrade libgccjit implementation to cater for 5.3.2 merge
9 years ago
dibyendumajumdar 49b4f8840f merge 5.3.2 rc2
9 years ago
dibyendumajumdar 911c21a254 fix ltests.c compilation error
9 years ago
dibyendumajumdar a52a432a67 refactoring
9 years ago
dibyendumajumdar 704b6faf10 more work on issue #73
9 years ago
dibyendumajumdar 46fef09a7f some moe work on fixing issue #73 - more to do
9 years ago
dibyendumajumdar 4d0bcbe1f2 start 5.3.2 merge and also work on issue #73
9 years ago
Dibyendu Majumdar 70507a4ef6 doc updates
9 years ago
Dibyendu Majumdar 852cfee3da issue #71 add specialised bytecode for method calls when type is table and key is short string
9 years ago
Dibyendu Majumdar a11f7bbd27 setupval type specialized opcodes should not cause JIT failure
9 years ago
Dibyendu Majumdar 24d65a5c0a add notice regarding options enabled
9 years ago
Dibyendu Majumdar 085f035917 issue #61 more tests
9 years ago
Dibyendu Majumdar dac7789d7a issue #61 add more tests for typed values
9 years ago
Dibyendu Majumdar c4c8dad5b5 issue #61 fix bug in compilation
9 years ago
Dibyendu Majumdar aca5b3ef86 issue #60 compile TOTAB and MOVETAB
9 years ago
Dibyendu Majumdar 62e892e6aa issue #60 add optimized versions of table access with integer keys
9 years ago
Dibyendu Majumdar f04c5febd6 issue #60 JIT compile GETTABLE_S
9 years ago
Dibyendu Majumdar 1362b6dc6d issue #60 more work on implementing specialized bytecode for table get/set
9 years ago
Dibyendu Majumdar 4115f35867 issue #60 explore further optimization of table operations
9 years ago
Dibyendu Majumdar ed44f85a3d issue #57 adding test cases
9 years ago
Dibyendu Majumdar 84b5b6476c issue #56 check the type definitions
9 years ago
dibyendumajumdar 8a74a09510 issue #15 fix compilation error in ltests.c
9 years ago
Dibyendu Majumdar bdbb204d4c issue #58 update dump and undump to always include type information for local variables and upvalues; also change the format identifier to differentiate from standard Lua
9 years ago
Dibyendu Majumdar 3c9ed08585 issue #15 if emit_debug_trace() has been called then we can avoid setting savedpc again
9 years ago
Dibyendu Majumdar d970aa981e issue #15 add type checks to debug.setlocal()
9 years ago
Dibyendu Majumdar 40570edbfc issue #15 add new JIT option tracehook to enable per bytecode updates to savedpc and call to luaG_traceexec
9 years ago
Dibyendu Majumdar c1a157ce4a in JIT mode update savedpc when performing OP_CALL or OP_TAILCALL - see issue# 15
9 years ago
Dibyendu Majumdar d98520f2b2 start work on handling savedpc - experimental
9 years ago
Dibyendu Majumdar c2008d9439 add api ravitype() to enable extended type information
9 years ago
Dibyendu Majumdar d2fbb17572 allocate new LLVMContext per Lua global state
9 years ago
Dibyendu Majumdar 4fc119e5f0 add a gc collection in when JIT compiling
9 years ago
Dibyendu Majumdar a3f201da53 add phi instruction to LLVM binding
9 years ago
Dibyendu Majumdar f209f76876 fix issue #49
9 years ago
Dibyendu Majumdar b44d456ea7 implement interpreter version of some bitwise and comparison opcodes
9 years ago
Dibyendu Majumdar 21b305b8be syntactic support for declaring additional Lua types
9 years ago
Dibyendu Majumdar f936e2fd54 cleanup
9 years ago
Dibyendu Majumdar 1688c0c044 add ltests in the build
9 years ago
Dibyendu Majumdar 61d3e244a8 code cleanup
9 years ago
Dibyendu Majumdar 610b6bc516 more work on llvm bindings
9 years ago
Dibyendu Majumdar 20a14f87ba llvm binding helloworld
9 years ago
Dibyendu Majumdar b828dc43dc start work on Lua LLVM bindings
9 years ago
Dibyendu Majumdar ed1ac4b70c code reformat
9 years ago
Dibyendu Majumdar 0a75b4c941 try another fix for the L->top bug
9 years ago
Dibyendu Majumdar bba94efedd fix gcc compilation errors
9 years ago
Dibyendu Majumdar 527fdccd1f alernative way to reset L->top after calling luaV_execute() in JITed OP_CALL
9 years ago
Dibyendu Majumdar 65dd836d4a set L->top in OP_RETURN if returning to Lua function; Lua tests breaks as a result
9 years ago
Dibyendu Majumdar da91cad12a continue investigation of OP_RETURN bug
9 years ago
Dibyendu Majumdar c833336108 still debugging the bug related to L->top
9 years ago
Dibyendu Majumdar 6b06004c44 hard bug - L->top not being set correctly when JIT code calls interpreted code
9 years ago
Dibyendu Majumdar 72dc5b5750 debug compilation issue
9 years ago
Dibyendu Majumdar 689e09248f optimize bit shift when second operand is a constant
9 years ago
Dibyendu Majumdar 5491d88c1f refactor
9 years ago
dibyendumajumdar 2e56a9fab6 fix compilation errors on Linux
9 years ago
Dibyendu Majumdar fd03f82783 long overdue refactoring
9 years ago
dibyendumajumdar 38967d8b9e add option to disable array range checks
9 years ago
Dibyendu Majumdar f3681cb7e5 some code cleanup
9 years ago
Dibyendu Majumdar d80fe78b1c fix compilation error for forloop variant 1
9 years ago
Dibyendu Majumdar 594cfbda90 refactor api
9 years ago
Dibyendu Majumdar 9843f4fdc2 refactor and add couple of api functions
9 years ago
dibyendumajumdar 6543367bfc remove lcoco
9 years ago
Dibyendu Majumdar 5d67a7196d doc update
9 years ago
dibyendumajumdar 95ff076c2a remove some of arithmetic operators
9 years ago
Dibyendu Majumdar 261c8218a3 remove experimental NAN TAGGING solution (as it is not helpful) and fix bugs in SETLIST for numeric arrays (missing type conversion)
9 years ago
Dibyendu Majumdar 71e651c05e remove a number of numeric op codes
9 years ago
Dibyendu Majumdar e36acf332b in arithmetic operations use constants directly when possible
9 years ago
dibyendumajumdar f8e9265831 implement specialized comparison ops and refactor the JIT compiler to avoid unnecessary conversion to pointers
9 years ago
Dibyendu Majumdar d918977470 issue #40: generate inline code for comparison ops when types are known
9 years ago
Dibyendu Majumdar bdbabd4781 start work on inlining comparison operators in JIT compiler
9 years ago
Dibyendu Majumdar 6d0bd5e2a5 array index - zext instead of trunc; does it help performance?
9 years ago
Dibyendu Majumdar e65c6b614d reformat
9 years ago
Dibyendu Majumdar e24a3a21ef merge 5.3.1
9 years ago
dibyendumajumdar b612b00e41 prep for 5.3.1 merge
9 years ago
Dibyendu Majumdar f8a17a7b37 prepare for 5.3.1 merge
9 years ago
Dibyendu Majumdar a8a56ff938 reformat code
9 years ago
Dibyendu Majumdar bb6d02c08f bitwise ops wip
9 years ago
Dibyendu Majumdar 7ed12db6de bitwise ops wip
9 years ago
Dibyendu Majumdar e1835ddd6a prepare for bitwise ops
9 years ago
Dibyendu Majumdar f9fb46f17a constants can be directly assigned in some cases
9 years ago
dibyendumajumdar 02681b1219 remove the local variable base in libgccjit version
9 years ago
Dibyendu Majumdar 40c3f032d5 reformat code
9 years ago
Dibyendu Majumdar b65e5d2fa1 refactoring
9 years ago
Dibyendu Majumdar fcb22d1da2 refactoring
9 years ago
Dibyendu Majumdar c8380d3525 refactoring
9 years ago
Dibyendu Majumdar 4b5255b91f refactoring
9 years ago
Dibyendu Majumdar 94356ff1a0 refactoring
9 years ago
Dibyendu Majumdar bfb5fcd4c1 refactoring
9 years ago
dibyendumajumdar 4fbc7a1717 setupval workaround
9 years ago
dibyendumajumdar 62e3bf2148 Lua arith operators
9 years ago
dibyendumajumdar df65672e37 add -fno-strict-aliasing option
9 years ago
dibyendumajumdar 00d1845b38 debug output
9 years ago
dibyendumajumdar 57d89d90ee more opcodes but also found a bug that needs fixing
9 years ago
dibyendumajumdar a85f4690ab fix array op
9 years ago
dibyendumajumdar 5217c6d2b6 array get/set op codes in libgccjit
9 years ago
Dibyendu Majumdar 77aaebff38 code reformat
9 years ago
dibyendumajumdar 3b632ae4cc yet more bytecode implementations in libgccjit
9 years ago
dibyendumajumdar 7115b3809d yet more bytecode implementations in libgccjit
9 years ago
dibyendumajumdar d8a79d409b couple of more bytecodes in libgccjit
9 years ago
dibyendumajumdar 1292bad982 couple of more byte codes
9 years ago
dibyendumajumdar 67454b67b4 fix call to luaG_runerror
9 years ago
dibyendumajumdar 53e221aad7 implement OP_GETTABLE and OP_SETTABLE in libgccjit
9 years ago
dibyendumajumdar 5a58e143b1 implement OP_LEN in libgccjit
9 years ago
dibyendumajumdar 45d2f9ca73 implement OP_SELF in libgccjit
9 years ago
dibyendumajumdar 72417637ed implement OP_RAVI_MULXX and OP_RAVI_DIVXX in libgccjit - enabling mandel1.ravi benchmark
9 years ago
dibyendumajumdar 137b304166 implement OP_RAVI_SUBXX in libgccjit
9 years ago
dibyendumajumdar c83d77df68 implement OP_RAVI_SUBIF in libgccjit
9 years ago
dibyendumajumdar 5463d2ad6d implement OP_RAVI_SUBFF in libgccjit
9 years ago
dibyendumajumdar a0151a9452 implement OP_RAVI_SUBFF in libgccjit
9 years ago
dibyendumajumdar f4261e8853 implement OP_RAVI_ADDIN in libgccjit
9 years ago
dibyendumajumdar 6ec9f55bac ensure that comparison result is always stored in a local variable to avoid unforeseen interactions when the rvalue is used again
9 years ago
dibyendumajumdar 922b7a8ba3 fix bug in ravi_emit_store_reg_i_withtype() and implement ADDII (libgccjit)
9 years ago
dibyendumajumdar 6892bebb16 start on arithmetic ops for libgccjit
9 years ago
dibyendumajumdar c5752405c8 implement OP_CONCAT, OP_CLOSURE, OP_VARARG in libgccjit
9 years ago
dibyendumajumdar 9cab098a75 implement OP_RAVI_TOFLT in libgccjit
9 years ago
dibyendumajumdar 10ffc1d43c implement OP_RAVI_TOINT in libgccjit
9 years ago
dibyendumajumdar 2d2fd658bd implement OP_RAVI_MOVEF in libgccjit
9 years ago
dibyendumajumdar 3f83551df0 implement OP_RAVI_MOVEI in libgccjit
9 years ago
dibyendumajumdar bd32b92319 fix logical op issue
9 years ago
dibyendumajumdar e97bd37c93 more libgccjit implemenation
9 years ago
Dibyendu Majumdar 9573fb6c5b fix issue 37: missing type check when assigning values to array elements
9 years ago
dibyendumajumdar c7126c8e7f implement OP_NOT, OP_TESTSET for libgccjit
9 years ago
dibyendumajumdar af6aa10777 implement OP_TEST
9 years ago
dibyendumajumdar 0c5ec24f87 start on OP_TEST
9 years ago
dibyendumajumdar 7205991bc3 add OP_GETTABUP plus some basic tests for libgccjit
9 years ago
dibyendumajumdar 3df38e9ea0 start OP_EQ, OP_LE, OP_LT, OP_JMP and OP_CALL using libgccjit
9 years ago
dibyendumajumdar 45ab2fc449 start gcc implementation of comparison operations
9 years ago
dibyendumajumdar 0886f1e505 rename functions to match LLVM implementation names
9 years ago
dibyendumajumdar d145211021 implement OP_LOADNIL, OP_RAVI_LOADFZ and OP_RAVI_ADDFN
9 years ago
Dibyendu Majumdar 32755f654e prepare for Lua 5.3.1 merge
9 years ago
Dibyendu Majumdar 43d0b4472d code refactoring
9 years ago
Dibyendu Majumdar 7fc508518e fix broken LLVM build
9 years ago
dibyendumajumdar 2686966512 implement MOVE, FORLOOP_I1, FORPREP_I1 in libgccjit
9 years ago
dibyendumajumdar 7f8e10b9ac implement OP_FORPREP_I1
9 years ago
dibyendumajumdar 47e6fba514 implement LOADK in libgccjit
9 years ago
dibyendumajumdar c11c010b18 add meaningful label names
9 years ago
dibyendumajumdar fd85e874c6 gcc jit version of OP_RETURN
9 years ago
dibyendumajumdar 14b54c8250 gcc jit version of OP_RETURN (wip)
9 years ago
dibyendumajumdar 09e3abed57 gcc jit version of OP_RETURN (wip)
9 years ago
dibyendumajumdar 03339f1e73 jit function basics
9 years ago
dibyendumajumdar 493eaa1788 jit function basics
9 years ago
dibyendumajumdar e70ada6d84 jit function basics
9 years ago
dibyendumajumdar 89d979ca4a doc update
9 years ago
dibyendumajumdar c551b02cb0 start defining gcc types
9 years ago
dibyendumajumdar 418a4eb927 start defining gcc types
9 years ago
dibyendumajumdar 727657d670 start defining gcc types
9 years ago
dibyendumajumdar 6f0b0a58d2 start defining gcc types
9 years ago
dibyendumajumdar 9028176d4e start defining gcc types
9 years ago
dibyendumajumdar d249c80646 start defining gcc types
9 years ago
dibyendumajumdar e8a8414889 start defining gcc types
9 years ago
dibyendumajumdar 8a1b25530c start defining gcc types
9 years ago
dibyendumajumdar 7dd1a262c6 start defining gcc types
9 years ago
dibyendumajumdar cdb8e25c6a start defining gcc types
9 years ago
dibyendumajumdar ed235aa347 start defining gcc types
9 years ago
dibyendumajumdar 6023cbce15 start defining gcc types
9 years ago
dibyendumajumdar 3376477db2 add gcc jit files
9 years ago
Dibyendu Majumdar 9b62208c7c implement a NaN tagging alternative value type
9 years ago
Dibyendu Majumdar 12b17db642 NaN tagging of values - interpreter version
9 years ago
Dibyendu Majumdar b22d4893b4 fix some missing tbaa
9 years ago
Dibyendu Majumdar 9511014c5c ensure slices can only be created from fixed sized arrays
9 years ago
Dibyendu Majumdar c989eac5be prep work for NaN tagging of values
9 years ago
Dibyendu Majumdar 05743889b2 LLVM changed IRBuilder interface so need to adapt to the changes
9 years ago
Dibyendu Majumdar 3673805833 rename
9 years ago
Dibyendu Majumdar effc65e252 array library functions
9 years ago
Dibyendu Majumdar 5ea7c3bd28 ravi array revision
9 years ago
Dibyendu Majumdar d777bec358 revise ravi array struct to allow for modifiers
9 years ago
Dibyendu Majumdar 51b70bc655 compile against LLVM 3.7
9 years ago
Dibyendu Majumdar 2eaaf98dff refactor the asm code generation
9 years ago
Dibyendu Majumdar ab0e95ea18 add dumping of assembly and machine code
9 years ago
Dibyendu Majumdar bbcf31601e add options to control minimum code size and execution count for functions to be considered for JIT
9 years ago
Dibyendu Majumdar c70f5c2cb1 add test for longjmp issue
9 years ago
Dibyendu Majumdar c46d2340b1 add address / memory sanitizer
9 years ago
Dibyendu Majumdar 27637907c8 auto mode heuristics
9 years ago
Dibyendu Majumdar ce6e32e9bc add Coco - not working yet
9 years ago
Dibyendu Majumdar 1433bc7a28 refactor
9 years ago
Dibyendu Majumdar 91fa11043c refactor
9 years ago
Dibyendu Majumdar cad484221e refactor
9 years ago
Dibyendu Majumdar aa4f2f1643 refactor
9 years ago
Dibyendu Majumdar 287a9c34fd fix tbaa metadata issue# 28
9 years ago
Dibyendu Majumdar 29f7c22f9c implement pairs() for ravi arrays
9 years ago
Dibyendu Majumdar 15761f3cf0 add type info to upvalues and enable new opcodes SETUPVALI etc.
9 years ago
Dibyendu Majumdar 98bca6e083 allow ravi arrays to hold value at slot [0]; Lua core C api fixes for arrays; fix for ipairs()
9 years ago
Dibyendu Majumdar c5d917dead implement specialised fornum loop for integer positive step
9 years ago
Dibyendu Majumdar 3e61280b9d start work on specialized FORLOOP/FORPREP opcodes
9 years ago
Dibyendu Majumdar ee0b14d797 remove the conditional JIT compilation so that JIT compilation can be used in more scenarios
9 years ago
Dibyendu Majumdar e9616f5e79 review OP_RETURN
9 years ago
Dibyendu Majumdar 15c466561b add API to enable JIT, set optlevel and sizelevel; set default auto mode to false
9 years ago
Dibyendu Majumdar 3c7539c3ca implement OP_RAVI_TOARRAY? and OP_RAVI_MOVEA? op codes
9 years ago
Dibyendu Majumdar 614ecf0101 debug API to skip JITed Lua functions - issue 16
9 years ago
Dibyendu Majumdar 380dfbbd60 first attempt to make debug API skip JITed Lua functions - issue 16
9 years ago
Dibyendu Majumdar 7ea8f658f2 implement OP_RAVI_SETTABLE_AI
9 years ago
Dibyendu Majumdar 57c735e63f implement OP_RAVI_GETTABLE_AI and OP_RAVI_GETTABLE_AF
9 years ago
Dibyendu Majumdar 41e3426314 prep work for ravi array opcodes
9 years ago
Dibyendu Majumdar eb218bbabe implement OP_CLOSURE, OP_CONCAT and OP_VARARG
9 years ago
Dibyendu Majumdar a5fc572859 implement OP_SELF
9 years ago
Dibyendu Majumdar 822fc9bffe implement OP_SETUPVAL and OP_SETTABUP
9 years ago
Dibyendu Majumdar 4a886348e0 implement OP_POW and OP_UNM
9 years ago
Dibyendu Majumdar c41106ad57 implement OP_LEN
9 years ago
Dibyendu Majumdar d356fbef2b implement OP_IDIV
9 years ago
Dibyendu Majumdar a9614f8b08 add OP_MOD
9 years ago
Dibyendu Majumdar 31d5e3e333 implement OP_NOT
9 years ago
Dibyendu Majumdar 9125af5981 refactor/cleanup
9 years ago
Dibyendu Majumdar ab9771299a implement TFORCALL and TFORLOOP
9 years ago
Dibyendu Majumdar 362a5445e4 implement OP_NEWTABLE, OP_SETLIST, and OP_TAILCALL (as OP_CALL)
9 years ago
Dibyendu Majumdar 6e79b422ec implement NEWARRAYI and NEWARRAYF
9 years ago
Dibyendu Majumdar df91c9a2a9 implement GETUPVAL and GETTABUP and fix bug in LOADBOOL
9 years ago
Dibyendu Majumdar 92532969a3 upvalues wip
9 years ago
Dibyendu Majumdar 4101af2e1a implement OP_DIV
9 years ago
Dibyendu Majumdar ef74e153c9 implement OP_ADD, OP_SUB and OP_MUL
9 years ago
dibyendumajumdar 4947bf0781 fix compilation error on Ubuntu
9 years ago
Dibyendu Majumdar d85ca455d4 reimplement array types to use native arrays rather than TValue elements
9 years ago
Dibyendu Majumdar ff6493c71e add prototype for luaD_call
9 years ago
Dibyendu Majumdar 476375db4f implement OP_TEST and OP_TESTSET
9 years ago
Dibyendu Majumdar b238cb4818 implement OP_SETTABLE and OP_GETTABLE
9 years ago
Dibyendu Majumdar 5755551881 implement OP_LOADBOOL
9 years ago
Dibyendu Majumdar 73238be863 fix call to llvm::verifyFunction()
9 years ago
Dibyendu Majumdar 28e02be882 implement TOINT and TOFLT
9 years ago
Dibyendu Majumdar 419636c8b0 implement MOVEF and some code cleanup
9 years ago
Dibyendu Majumdar 660d1b2e8d add copyright notice
9 years ago
Dibyendu Majumdar 0e6336ce8c added auto compile mode
9 years ago
Dibyendu Majumdar 51dbea0dc4 add ravi jit api
9 years ago
Dibyendu Majumdar 74e2a829d1 implement OP_CALL
9 years ago
Dibyendu Majumdar c94b382231 fix bug in arith operators - need to set type
9 years ago
Dibyendu Majumdar d6b2302aee implement DIVFF, DIVFI, DIVIF, DIVII
9 years ago
Dibyendu Majumdar d6f7714ff8 implement MULFF, MULFI, MULII, MULFN, MULIN
9 years ago
Dibyendu Majumdar 82de651a56 implement SUBFF, SUBFI, SUBIF, SUBII, SUBFN, SUBNF, SUBIN, SUBNI
9 years ago
Dibyendu Majumdar 51dc1259c7 code reformat
9 years ago
Dibyendu Majumdar a7b74eaeca convert some tests so that they are compiled
9 years ago
Dibyendu Majumdar 4fed31825c compiler warnings cleanup
9 years ago
Dibyendu Majumdar 1ee38fedf4 implement ADDFF, ADDFI, ADDII
9 years ago
Dibyendu Majumdar d1fef594d4 implement LOADIZ and ADDIN
9 years ago
Dibyendu Majumdar 2279fb7656 move alloca to entry block
9 years ago
Dibyendu Majumdar 6edfc4bfa0 implement loadfz, loadnil, addfn
9 years ago