You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ravi/src
Dibyendu Majumdar 0c75123b07
modify build process to make LLVM optional and prepare to link to libgccjit
9 years ago
..
README.rst Update README.rst 9 years ago
lapi.c rename 9 years ago
lauxlib.c initial import 9 years ago
lbaselib.c initial import 9 years ago
lbitlib.c initial import 9 years ago
lcoco.c add Coco - not working yet 9 years ago
lcode.c add type info to upvalues and enable new opcodes SETUPVALI etc. 9 years ago
lcorolib.c add Coco - not working yet 9 years ago
lctype.c initial import 9 years ago
ldblib.c merge lua 5.3.0 rc3 and fix build on Ubuntu 9 years ago
ldebug.c add test for longjmp issue 9 years ago
ldo.c add dumping of assembly and machine code 9 years ago
ldump.c initial import 9 years ago
lfunc.c auto mode heuristics 9 years ago
lgc.c initial import 9 years ago
linit.c add ravi jit api 9 years ago
liolib.c merge lua 5.3.0 rc3 and fix build on Ubuntu 9 years ago
llex.c initial import 9 years ago
lmathlib.c merge lua 5.3.0 rc3 and fix build on Ubuntu 9 years ago
lmem.c initial import 9 years ago
loadlib.c merge 5.3.0 final 9 years ago
lobject.c merge lua 5.3.0 rc3 and fix build on Ubuntu 9 years ago
lopcodes.c fix compilation on MAC OSX 9 years ago
loslib.c merge lua 5.3.0 rc3 and fix build on Ubuntu 9 years ago
lparser.c add options to control minimum code size and execution count for functions to be considered for JIT 9 years ago
lstate.c first attempt to make debug API skip JITed Lua functions - issue 16 9 years ago
lstring.c initial import 9 years ago
lstrlib.c initial import 9 years ago
ltable.c ensure slices can only be created from fixed sized arrays 9 years ago
ltablib.c rename 9 years ago
ltm.c initial import 9 years ago
lua.c modifications to call JIT function 9 years ago
luac.c cleanup 9 years ago
lundump.c initial import 9 years ago
lutf8lib.c initial import 9 years ago
lvm.c ravi array revision 9 years ago
lzio.c initial import 9 years ago
ravi_llvmarith1.cpp some cleanups 9 years ago
ravi_llvmarith2.cpp prep work for NaN tagging of values 9 years ago
ravi_llvmcall.cpp LLVM changed IRBuilder interface so need to adapt to the changes 9 years ago
ravi_llvmcodegen.cpp implement a NaN tagging alternative value type 9 years ago
ravi_llvmcomp.cpp prep work for NaN tagging of values 9 years ago
ravi_llvmforloop.cpp prep work for NaN tagging of values 9 years ago
ravi_llvmforprep.cpp prep work for NaN tagging of values 9 years ago
ravi_llvmload.cpp implement a NaN tagging alternative value type 9 years ago
ravi_llvmrest.cpp LLVM changed IRBuilder interface so need to adapt to the changes 9 years ago
ravi_llvmreturn.cpp implement a NaN tagging alternative value type 9 years ago
ravi_llvmtable.cpp fix some missing tbaa 9 years ago
ravi_llvmtforcall.cpp prep work for NaN tagging of values 9 years ago
ravi_llvmtypes.cpp implement a NaN tagging alternative value type 9 years ago
ravijit.cpp modify build process to make LLVM optional and prepare to link to libgccjit 9 years ago

README.rst

This folder has all the Lua and Ravi source files.


The Lua sources begin with the letter ``l``.
The following Lua sources have been enhanced for Ravi.

* lvm.c - this has the Ravi bytecode implementations
* lopcodes.c - definitions of Ravi opcodes
* ldo.c - changes to enable calling JITed function
* lparser.c - parser changes for optional typing
* lcode.c - code generator changes for optional typing
* lfunc.c - changes to support JIT compilation
* linit.c - the Ravi api functions get loaded here
* ltable.c - enhancements for Ravi array types
* lapi.c - enhancements for Ravi array types

The LLVM JIT implementation is in following sources:

* ravijit.cpp - basic LLVM infrastructure and Ravi API definition
* ravi_llvmtypes.cpp - contains LLVM type definitions for Lua objects
* ravi_llvmcodegen.cpp - LLVM JIT compiler - main driver for compiling Lua bytecodes into LLVM IR
* ravi_llvmload.cpp - implements OP_LOADK and OP_MOVE, and related operations, also OP_LOADBOOL
* ravi_llvmcomp.cpp - implements OP_EQ, OP_LT, OP_LE, OP_TEST and OP_TESTSET.
* ravi_llvmreturn.cpp - implements OP_RETURN
* ravi_llvmforprep.cpp - implements OP_FORPREP
* ravi_llvmforloop.cpp - implements OP_FORLOOP
* ravi_llvmtforcall.cpp - implements OP_TFORCALL and OP_TFORLOOP
* ravi_llvmarith1.cpp - implements various type specialized arithmetic operations - these are Ravi extensions
* ravi_llvmarith2.cpp - implements Lua opcodes such as OP_ADD, OP_SUB, OP_MUL, OP_DIV, OP_POW, OP_IDIV, OP_MOD, OP_UNM
* ravi_llvmcall.cpp - implements OP_CALL, OP_JMP
* ravi_llvmtable.cpp - implements OP_GETTABLE, OP_SETTABLE and various other table operations, OP_SELF, and also upvalue operations
* ravi_llvmrest.cpp - OP_CLOSURE, OP_VARARG, OP_CONCAT