[vmkit-commits] [vmkit] r69089 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h lib/JnJVM/Compiler/JavaAOTCompiler.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Tue Apr 14 15:19:19 PDT 2009


Author: geoffray
Date: Tue Apr 14 17:19:18 2009
New Revision: 69089

URL: http://llvm.org/viewvc/llvm-project?rev=69089&view=rev
Log:
Add a boolean flag to verify if we're compiling rt.jar, and always lookup native arrays
at boot time of a statically compiled library.


Modified:
    vmkit/trunk/include/jnjvm/JnjvmModule.h
    vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp

Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=69089&r1=69088&r2=69089&view=diff

==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Tue Apr 14 17:19:18 2009
@@ -640,6 +640,8 @@
   bool generateTracers;
   bool generateStubs;
   bool assumeCompiled;
+
+  bool compileRT;
   
   
   void CreateStaticInitializer();

Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=69089&r1=69088&r2=69089&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Tue Apr 14 17:19:18 2009
@@ -1252,6 +1252,7 @@
   generateTracers = true;
   generateStubs = true;
   assumeCompiled = false;
+  compileRT = false;
 
   std::vector<const llvm::Type*> llvmArgs;
   llvmArgs.push_back(JnjvmModule::ptrType); // class loader.
@@ -1396,12 +1397,10 @@
   
   for (array_class_iterator i = arrayClasses.begin(), 
        e = arrayClasses.end(); i != e; ++i) {
-    if (!(i->first->baseClass()->isPrimitive())) {
-      Args[0] = loader;
-      Args[1] = i->second;
-      Args[2] = getUTF8(i->first->name);
-      CallInst::Create(GetClassArray, Args, Args + 3, "", currentBlock);
-    }
+    Args[0] = loader;
+    Args[1] = i->second;
+    Args[2] = getUTF8(i->first->name);
+    CallInst::Create(GetClassArray, Args, Args + 3, "", currentBlock);
   }
   
 
@@ -1520,6 +1519,7 @@
           realName[size - 6] = 0;
           const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(realName);
           Class* cl = bootstrapLoader->constructClass(utf8, res);
+          if (cl == ClassArray::SuperArray) M->compileRT = true;
           classes.push_back(cl);  
         }
       }





More information about the vmkit-commits mailing list