[vmkit-commits] [vmkit] r68317 - in /vmkit/trunk: include/jnjvm/JavaCompiler.h lib/JnJVM/Compiler/JITInfo.cpp lib/JnJVM/VMCore/JavaTypes.cpp tools/llcj/llcj.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Thu Apr 2 08:06:38 PDT 2009
Author: geoffray
Date: Thu Apr 2 10:06:38 2009
New Revision: 68317
URL: http://llvm.org/viewvc/llvm-project?rev=68317&view=rev
Log:
Add some code to try dlsym signature callbacks instead of
always generating them.
Modified:
vmkit/trunk/include/jnjvm/JavaCompiler.h
vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
vmkit/trunk/tools/llcj/llcj.cpp
Modified: vmkit/trunk/include/jnjvm/JavaCompiler.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JavaCompiler.h?rev=68317&r1=68316&r2=68317&view=diff
==============================================================================
--- vmkit/trunk/include/jnjvm/JavaCompiler.h (original)
+++ vmkit/trunk/include/jnjvm/JavaCompiler.h Thu Apr 2 10:06:38 2009
@@ -34,8 +34,6 @@
}
virtual void setMethod(JavaMethod* meth, void* ptr, const char* name) {
- fprintf(stderr, "Implement me");
- abort();
}
virtual bool isStaticCompiling() {
Modified: vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp?rev=68317&r1=68316&r2=68317&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp Thu Apr 2 10:06:38 2009
@@ -341,13 +341,13 @@
char* buf = (char*)alloca((signature->keyName->size << 1) + 1 + 11);
signature->nativeName(buf, type);
res = Function::Create(virt ? getVirtualBufType() : getStaticBufType(),
- GlobalValue::InternalLinkage, buf,
+ GlobalValue::ExternalLinkage, buf,
Mod->getLLVMModule());
} else {
res = Function::Create(virt ? getVirtualBufType() : getStaticBufType(),
- GlobalValue::InternalLinkage, "",
+ GlobalValue::ExternalLinkage, "",
Mod->getLLVMModule());
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp?rev=68317&r1=68316&r2=68317&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp Thu Apr 2 10:06:38 2009
@@ -105,28 +105,48 @@
intptr_t Signdef::staticCallBuf() {
if (!_staticCallBuf) {
- initialLoader->getCompiler()->staticCallBuf(this);
+ char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
+ nativeName(buf, "static_buf");
+ bool unused = false;
+ _staticCallBuf = initialLoader->loadInLib(buf, unused);
+ if (!_staticCallBuf)
+ initialLoader->getCompiler()->staticCallBuf(this);
}
return _staticCallBuf;
}
intptr_t Signdef::virtualCallBuf() {
if (!_virtualCallBuf) {
- initialLoader->getCompiler()->virtualCallBuf(this);
+ char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
+ nativeName(buf, "virtual_buf");
+ bool unused = false;
+ _virtualCallBuf = initialLoader->loadInLib(buf, unused);
+ if (!_virtualCallBuf)
+ initialLoader->getCompiler()->virtualCallBuf(this);
}
return _virtualCallBuf;
}
intptr_t Signdef::staticCallAP() {
if (!_staticCallAP) {
- initialLoader->getCompiler()->staticCallAP(this);
+ char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
+ nativeName(buf, "static_ap");
+ bool unused = false;
+ _staticCallAP = initialLoader->loadInLib(buf, unused);
+ if (!_staticCallAP)
+ initialLoader->getCompiler()->staticCallAP(this);
}
return _staticCallAP;
}
intptr_t Signdef::virtualCallAP() {
if (!_virtualCallAP) {
- initialLoader->getCompiler()->virtualCallAP(this);
+ char* buf = (char*)alloca((keyName->size << 1) + 1 + 11);
+ nativeName(buf, "virtual_ap");
+ bool unused = false;
+ _virtualCallAP = initialLoader->loadInLib(buf, unused);
+ if (!_virtualCallAP)
+ initialLoader->getCompiler()->virtualCallAP(this);
}
return _virtualCallAP;
}
Modified: vmkit/trunk/tools/llcj/llcj.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/llcj/llcj.cpp?rev=68317&r1=68316&r2=68317&view=diff
==============================================================================
--- vmkit/trunk/tools/llcj/llcj.cpp (original)
+++ vmkit/trunk/tools/llcj/llcj.cpp Thu Apr 2 10:06:38 2009
@@ -29,10 +29,12 @@
bool runGCC = true;
char* className = 0;
+ bool shared = false;
for (int i = 1; i < argc; ++i) {
if (!strcmp(argv[i], "-shared")) {
gccArgv[gccArgc++] = argv[i];
+ shared = true;
} else if (!strcmp(argv[i], "-O1") || !strcmp(argv[i], "-O2") ||
!strcmp(argv[i], "-O3")) {
opt = argv[i];
@@ -141,7 +143,13 @@
}
if (!res) {
- sys::Path LlcOut = tempDir;
+ sys::Path LlcOut;
+
+ if (runGCC)
+ LlcOut= tempDir;
+ else
+ LlcOut = sys::Path(sys::Path::GetCurrentDirectory());
+
LlcOut.appendComponent(className);
LlcOut.appendSuffix("s");
@@ -153,14 +161,15 @@
}
const char* llcArgv[8];
- llcArgv[0] = Prog.toString().c_str();
- llcArgv[1] = Out.toString().c_str();
- llcArgv[2] = "-relocation-model=pic";
- llcArgv[3] = "-disable-fp-elim";
- llcArgv[4] = "-f";
- llcArgv[5] = "-o";
- llcArgv[6] = LlcOut.toString().c_str();
- llcArgv[7] = 0;
+ int i = 0;
+ llcArgv[i++] = Prog.toString().c_str();
+ llcArgv[i++] = Out.toString().c_str();
+ if (shared) llcArgv[i++] = "-relocation-model=pic";
+ llcArgv[i++] = "-disable-fp-elim";
+ llcArgv[i++] = "-f";
+ llcArgv[i++] = "-o";
+ llcArgv[i++] = LlcOut.toString().c_str();
+ llcArgv[i++] = 0;
res = sys::Program::ExecuteAndWait(Prog, llcArgv);
Out = LlcOut;
@@ -188,6 +197,7 @@
gccArgv[gccArgc++] = "-ljnjvm";
gccArgv[gccArgc++] = "-lvmjc";
gccArgv[gccArgc++] = "-lLLVMSupport";
+ gccArgv[gccArgc++] = "-rdynamic";
gccArgv[gccArgc++] = 0;
res = sys::Program::ExecuteAndWait(Prog, gccArgv);
More information about the vmkit-commits
mailing list