[vmkit-commits] [vmkit] r62217 - /vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Jan 14 02:25:24 PST 2009


Author: geoffray
Date: Wed Jan 14 04:25:22 2009
New Revision: 62217

URL: http://llvm.org/viewvc/llvm-project?rev=62217&view=rev
Log:
Bugfix for creating the tracer, and do not call vmjcLoadClass anymore in the
static initializer.


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=62217&r1=62216&r2=62217&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Wed Jan 14 04:25:22 2009
@@ -562,9 +562,13 @@
     } else {
       LLVMClassInfo* LCP = (LLVMClassInfo*)getClassInfo((Class*)(cl->super));
       Function* F = LCP->virtualTracerFunction;
-      assert((isStaticCompiling() || F) && "No Tracer for super!");
-      if (!F && isStaticCompiling()) {
-        F = makeTracer(cl->super, false);
+      if (!F) {
+        if (isStaticCompiling()) {
+          F = makeTracer(cl->super, false);
+        } else {
+          F = LCP->getVirtualTracer();
+        }
+        assert(F && "Still no virtual tracer for super");
       }
       CallInst::Create(F, Args.begin(), Args.end(), "", block);
     }
@@ -2362,14 +2366,6 @@
   Function* GetClassArray = Function::Create(FTy, GlobalValue::ExternalLinkage,
                                              "vmjcGetClassArray", this);
   
-  llvmArgs.clear();
-  llvmArgs.push_back(ptrType); // class loader
-  llvmArgs.push_back(UTF8Type); // name
-  FTy = FunctionType::get(Type::VoidTy, llvmArgs, false);
-  
-  Function* LoadClass = Function::Create(FTy, GlobalValue::ExternalLinkage,
-                                         "vmjcLoadClass", this);
-  
   BasicBlock* currentBlock = BasicBlock::Create("enter", StaticInitializer);
   Function::arg_iterator loader = StaticInitializer->arg_begin();
   
@@ -2402,15 +2398,6 @@
     }
   }
   
-  for (native_class_iterator i = nativeClasses.begin(), 
-       e = nativeClasses.end(); i != e; ++i) {
-    if (!isCompiling(i->first)) {
-      Args[0] = loader;
-      Args[1] = getUTF8(i->first->name);
-      CallInst::Create(LoadClass, Args, Args + 2, "", currentBlock);
-    }
-  }
-
   for (array_class_iterator i = arrayClasses.begin(), 
        e = arrayClasses.end(); i != e; ++i) {
     if (!(i->first->baseClass()->isPrimitive())) {





More information about the vmkit-commits mailing list