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

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Feb 25 03:14:51 PST 2009


Author: geoffray
Date: Wed Feb 25 05:14:50 2009
New Revision: 65442

URL: http://llvm.org/viewvc/llvm-project?rev=65442&view=rev
Log:
Change the way of emitting things during AOT based on the module flags.


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=65442&r1=65441&r2=65442&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Wed Feb 25 05:14:50 2009
@@ -123,7 +123,9 @@
   if (staticCompilation) {
 
     if (classDef->isClass() || 
-        (classDef->isArray() && isCompiling(classDef))) {
+        (classDef->isArray() && isCompiling(classDef)) ||
+        (assumeCompiled && !(classDef->isArray() && 
+          classDef->asArrayClass()->baseClass()->isPrimitive()))) {
       native_class_iterator End = nativeClasses.end();
       native_class_iterator I = nativeClasses.find(classDef);
       if (I == End) {
@@ -139,7 +141,7 @@
           new GlobalVariable(Ty, false, GlobalValue::ExternalLinkage, 0,
                              classDef->printString(), this);
       
-        nativeClasses.insert(std::make_pair((Class*)classDef, varGV));
+        nativeClasses.insert(std::make_pair(classDef, varGV));
 
         if (classDef->isClass() && isCompiling(classDef->asClass())) {
           Constant* C = CreateConstantFromClass((Class*)classDef);
@@ -554,6 +556,10 @@
 #ifdef WITH_TRACER
 llvm::Function* JnjvmModule::makeTracer(Class* cl, bool stat) {
   
+  if (isStaticCompiling() && !generateTracers) {
+    return JavaObjectTracerFunction;
+  }
+
   LLVMClassInfo* LCI = (LLVMClassInfo*)getClassInfo(cl);
   const Type* type = stat ? LCI->getStaticType() : LCI->getVirtualType();
   JavaField* fields = 0;
@@ -2311,6 +2317,10 @@
   MvmModule(ModuleID) {
   
   staticCompilation = sc;
+  generateTracers = true;
+  generateStubs = true;
+  enabledException = true;
+  assumeCompiled = false;
   if (!VTType) initialise();
 
   Module* module = initialModule;





More information about the vmkit-commits mailing list