gccjit-ravi534
Dibyendu Majumdar 7 years ago
parent 5fb89d4c07
commit 1ca8eba968

@ -1,3 +1,4 @@
mkdir xcodellvm
cd xcodellvm
cmake -DCMAKE_BUILD_TYPE=Debug -G Xcode -DLLVM_JIT=ON -DCMAKE_INSTALL_PREFIX=$HOME/ravi -DLLVM_DIR=$HOME/LLVM/share/llvm/cmake ..
#cmake -DCMAKE_BUILD_TYPE=Debug -G Xcode -DLLVM_JIT=ON -DCMAKE_INSTALL_PREFIX=$HOME/ravi -DLLVM_DIR=$HOME/LLVM/share/llvm/cmake ..
cmake -DCMAKE_BUILD_TYPE=Debug -G Xcode -DLLVM_JIT=ON -DCMAKE_INSTALL_PREFIX=$HOME/ravi -DLLVM_DIR=$HOME/LLVM5/lib/cmake/llvm ..

@ -789,6 +789,8 @@ static void emit_settable_aii(struct function *fn, int A, int B,
static void emit_settable_ai(struct function *fn, int A, int B,
int C, bool known_int, int pc)
{
(void)pc;
(void)known_int;
emit_reg(fn, "ra", A);
emit_reg_or_k(fn, "rb", B);
emit_reg_or_k(fn, "rc", C);
@ -829,6 +831,8 @@ static void emit_settable_aff(struct function *fn, int A, int B,
static void emit_settable_af(struct function *fn, int A, int B,
int C, bool known_int, int pc)
{
(void)pc;
(void)known_int;
emit_reg(fn, "ra", A);
emit_reg_or_k(fn, "rb", B);
emit_reg_or_k(fn, "rc", C);

@ -1056,10 +1056,10 @@ void RaviCodeGenerator::emit_extern_declarations(RaviFunctionDef *def) {
def->types->luaH_getstrT, reinterpret_cast<void *>(&luaH_getstr),
"luaH_getstr");
def->luaH_getstrF->addFnAttr(llvm::Attribute::AttrKind::ReadOnly);
def->luaH_getstrF->setDoesNotAlias(1);
def->luaH_getstrF->setDoesNotCapture(1);
def->luaH_getstrF->setDoesNotAlias(2);
def->luaH_getstrF->setDoesNotCapture(2);
//def->luaH_getstrF->setDoesNotAlias(1);
//def->luaH_getstrF->setDoesNotCapture(1);
//def->luaH_getstrF->setDoesNotAlias(2);
//def->luaH_getstrF->setDoesNotCapture(2);
def->luaV_finishgetF = def->raviF->addExternFunction(
def->types->luaV_finishgetT, reinterpret_cast<void *>(&luaV_finishget),
"luaV_finishget");

@ -422,7 +422,11 @@ llvm::Function *RaviJITModule::addExternFunction(llvm::FunctionType *type,
return f;
}
void RaviJITModule::dump() { module_->dump(); }
void RaviJITModule::dump() {
#if defined(LLVM_ENABLE_DUMP)
module_->dump();
#endif
}
// Dumps the machine code
// Will execute the passes as required by currently set

@ -552,6 +552,7 @@ static llvm::Value *get_value(lua_State *L, int idx) {
Dump an LLVM object
*/
static int dump_content(lua_State *L) {
#if defined(LLVM_ENABLE_DUMP)
TypeHolder *th = nullptr;
StructTypeHolder *sth = nullptr;
PointerTypeHolder *ph = nullptr;
@ -601,6 +602,7 @@ static int dump_content(lua_State *L) {
phi->phi->dump();
return 0;
}
#endif
return 0;
}

@ -1320,6 +1320,7 @@ LuaLLVMTypes::LuaLLVMTypes(llvm::LLVMContext &context) : mdbuilder(context) {
}
void LuaLLVMTypes::dump() {
#if defined(LLVM_ENABLE_DUMP)
GCObjectT->dump();
fputs("\n", stdout);
TValueT->dump();
@ -1354,5 +1355,6 @@ void LuaLLVMTypes::dump() {
fputs("\n", stdout);
lua_StateT->dump();
fputs("\n", stdout);
#endif
}
}

@ -62,8 +62,9 @@ int test1() {
elements.push_back(llvm::Type::getInt8Ty(*context));
elements.push_back(llvm::Type::getInt8Ty(*context));
structType->setBody(elements);
#if defined(LLVM_ENABLE_DUMP)
structType->dump();
#endif
// Create printf declaration
std::vector<llvm::Type *> args;
args.push_back(llvm::Type::getInt8PtrTy(*context));
@ -120,7 +121,9 @@ int test1() {
// return i
builder.CreateRet(tmp2);
#if defined(LLVM_ENABLE_DUMP)
module->dump();
#endif
// Lets create the MCJIT engine
std::string errStr;
@ -187,7 +190,9 @@ int test2() {
elements.push_back(llvm::Type::getInt8Ty(context));
elements.push_back(llvm::Type::getInt8Ty(context));
structType->setBody(elements);
#if defined(LLVM_ENABLE_DUMP)
structType->dump();
#endif
// Create declaration for mytest
// int mytest(RaviGCObject *obj)

Loading…
Cancel
Save