[vmkit-commits] [vmkit] r61509 - /vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Dec 30 15:39:13 PST 2008
Author: geoffray
Date: Tue Dec 30 17:38:54 2008
New Revision: 61509
URL: http://llvm.org/viewvc/llvm-project?rev=61509&view=rev
Log:
Don't parse finalizers so early when static compiling.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=61509&r1=61508&r2=61509&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Tue Dec 30 17:38:54 2008
@@ -281,6 +281,8 @@
}
Constant* JnjvmModule::getVirtualTable(Class* classDef) {
+ LLVMClassInfo* LCI = getClassInfo((Class*)classDef);
+ LCI->getVirtualType();
if (staticCompilation) {
llvm::Constant* res = 0;
virtual_table_iterator End = virtualTables.end();
@@ -297,7 +299,6 @@
virtualTables.insert(std::make_pair(classDef, res));
Function* Finalizer = ((Function**)classDef->virtualVT)[0];
- LLVMClassInfo* LCI = getClassInfo((Class*)classDef);
Function* Tracer = LCI->getVirtualTracer();
Constant* C = CreateConstantFromVT(classDef->virtualVT,
classDef->virtualTableSize, Finalizer,
@@ -310,8 +311,6 @@
}
} else {
- LLVMClassInfo* LCI = getClassInfo((Class*)classDef);
- LCI->getVirtualType();
assert(classDef->virtualVT && "Virtual VT not created");
void* ptr = classDef->virtualVT;
ConstantInt* CI = ConstantInt::get(Type::Int64Ty, uint64_t(ptr));
@@ -1153,7 +1152,7 @@
// Special handling for finalize method. Don't put a finalizer
// if there is none, or if it is empty.
- if (meth.offset == 0) {
+ if (meth.offset == 0 && !staticCompilation) {
#ifdef ISOLATE_SHARING
((void**)VT)[0] = 0;
#else
@@ -1167,7 +1166,7 @@
BasicBlock::iterator I = BB->begin();
if (isa<ReturnInst>(I)) {
((void**)VT)[0] = 0;
- } else if (!staticCompilation) {
+ } else {
// LLVM does not allow recursive compilation. Create the code now.
((void**)VT)[0] = EE->getPointerToFunction(func);
}
More information about the vmkit-commits
mailing list