[vmkit-commits] [vmkit] r137033 - /vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Aug 7 02:46:14 PDT 2011


Author: geoffray
Date: Sun Aug  7 04:46:14 2011
New Revision: 137033

URL: http://llvm.org/viewvc/llvm-project?rev=137033&view=rev
Log:
Create the VT after compiling all methods, to generate even less stubs.

Modified:
    vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp

Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=137033&r1=137032&r2=137033&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Sun Aug  7 04:46:14 2011
@@ -638,9 +638,9 @@
                                 JavaIntrinsics.VTType);
     virtualTables.insert(std::make_pair(VT, res));
   
-    if (isCompiling(classDef) || assumeCompiled) {
-      Constant* C = CreateConstantFromVT(VT);
-      varGV->setInitializer(C);
+    if ((precompile && classDef->isPrimitive())
+        || (!precompile && (isCompiling(classDef) || assumeCompiled))) {
+      varGV->setInitializer(CreateConstantFromVT(VT));
     }
     
     return res;
@@ -2399,11 +2399,13 @@
     }
   }
 
-  // Add all class initializers.
+  // Add all class and VT initializers.
   for (ClassMap::iterator i = loader->getClasses()->map.begin(),
        e = loader->getClasses()->map.end(); i!= e; ++i) {
-    GlobalVariable* gv = getNativeClass(i->second);
-    AddInitializerToClass(gv, i->second);
+    AddInitializerToClass(getNativeClass(i->second), i->second);
+    JavaVirtualTable* VT = i->second->virtualVT;
+    GlobalVariable* gv = dyn_cast<GlobalVariable>(getVirtualTable(VT)->getOperand(0));
+    gv->setInitializer(CreateConstantFromVT(VT));
   }
 
   // Finally add used stubs to the image.





More information about the vmkit-commits mailing list