[vmkit-commits] [vmkit] r61466 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaJIT.cpp JnjvmModuleProvider.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Mon Dec 29 00:58:16 PST 2008


Author: geoffray
Date: Mon Dec 29 02:57:57 2008
New Revision: 61466

URL: http://llvm.org/viewvc/llvm-project?rev=61466&view=rev
Log:
Do not initialize a class when materializing a function. Make sure
the class has already been loaded and initialized.


Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=61466&r1=61465&r2=61466&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Mon Dec 29 02:57:57 2008
@@ -1592,21 +1592,13 @@
     args.push_back(newCtpCache);
 #endif
     
-    // If we're not static compiling or we're not in an isolate environment,
-    // the callback will do the initialization
-#ifndef ISOLATE
-    if (module->isStaticCompiling()) {
-#endif
-      uint32 clIndex = ctpInfo->getClassIndexFromMethod(index);
-      UserClass* cl = 0;
-      Value* Cl = getResolvedClass(clIndex, true, true, &cl);
-      if (!meth || (cl && needsInitialisationCheck(cl, compilingClass))) {
-        CallInst::Create(module->ForceInitialisationCheckFunction, Cl, "",
-                         currentBlock);
-      }
-#ifndef ISOLATE
+    uint32 clIndex = ctpInfo->getClassIndexFromMethod(index);
+    UserClass* cl = 0;
+    Value* Cl = getResolvedClass(clIndex, true, true, &cl);
+    if (!meth || (cl && needsInitialisationCheck(cl, compilingClass))) {
+      CallInst::Create(module->ForceInitialisationCheckFunction, Cl, "",
+                       currentBlock);
     }
-#endif
 
     if (meth && canBeInlined(meth)) {
       val = invokeInline(meth, args);

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp?rev=61466&r1=61465&r2=61466&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp Mon Dec 29 02:57:57 2008
@@ -53,15 +53,8 @@
   JavaMethod* meth = lookup->lookupMethod(utf8, sign->keyName, isStatic, true,
                                           0);
 
-#ifndef ISOLATE_SHARING
-  // A multi environment would have already initialized the class. Besides,
-  // a callback does not involve UserClass, therefore we wouldn't know
-  // which class to initialize.
-  if (!isVirtual(meth->access))
-    lookup->initialiseClass(JavaThread::get()->getJVM());
-#endif
+  assert(lookup->isInitializing() && "Class not ready");
 
-  meth->compiledPtr();
   
   return meth;
 }





More information about the vmkit-commits mailing list