[vmkit-commits] [vmkit] r70850 - /vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon May 4 04:22:46 PDT 2009
Author: geoffray
Date: Mon May 4 06:22:40 2009
New Revision: 70850
URL: http://llvm.org/viewvc/llvm-project?rev=70850&view=rev
Log:
Check init only if class is resolved.
Modified:
vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp?rev=70850&r1=70849&r2=70850&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp Mon May 4 06:22:40 2009
@@ -1563,15 +1563,18 @@
JavaConstantPool* ctpInfo = compilingClass->ctpInfo;
Class* cl = (Class*)(ctpInfo->getMethodClassIfLoaded(index));
Value* node = 0;
+ bool needsInit = true;
if (cl && cl->isResolved()) {
if (alreadyResolved) (*alreadyResolved) = cl;
node = TheCompiler->getNativeClass(cl);
+ needsInit = needsInitialisationCheck(cl, compilingClass);
} else {
node = getConstantPoolAt(index, module->ClassLookupFunction,
module->JavaClassType, 0, doThrow);
}
-
- if (!(!clinit || (cl && !needsInitialisationCheck(cl, compilingClass)))) {
+
+
+ if (clinit && needsInit) {
if (node->getType() != module->JavaClassType) {
node = new BitCastInst(node, module->JavaClassType, "", currentBlock);
}
More information about the vmkit-commits
mailing list