[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