[vmkit-commits] [vmkit] r108768 - in /vmkit/trunk: Makefile.rules lib/J3/Classpath/JavaUpcalls.cpp lib/J3/Classpath/JavaUpcalls.h lib/J3/Compiler/JavaAOTCompiler.cpp lib/J3/VMCore/JavaClass.cpp lib/J3/VMCore/JavaConstantPool.cpp lib/J3/VMCore/JavaTypes.cpp lib/J3/VMCore/Jnjvm.cpp lib/J3/VMCore/JnjvmClassLoader.cpp lib/J3/VMCore/JnjvmClassLoader.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Mon Jul 19 16:28:01 PDT 2010


Author: geoffray
Date: Mon Jul 19 18:28:01 2010
New Revision: 108768

URL: http://llvm.org/viewvc/llvm-project?rev=108768&view=rev
Log:
J3 is crashing, revert to r108703.


Modified:
    vmkit/trunk/Makefile.rules
    vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
    vmkit/trunk/lib/J3/Classpath/JavaUpcalls.h
    vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
    vmkit/trunk/lib/J3/VMCore/JavaConstantPool.cpp
    vmkit/trunk/lib/J3/VMCore/JavaTypes.cpp
    vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
    vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Mon Jul 19 18:28:01 2010
@@ -127,7 +127,6 @@
 ifdef RUN_ANT
 ifdef ANT
 
-ifndef DISABLE_MMTK_COMPILE
 ADDITIONAL_ARGS := -load-bc=$(LibDir)/MMTKRuntime.bc 
 
 all::
@@ -139,7 +138,7 @@
 	$(Verb) $(LLVMLD) -r -o $(LibDir)/FinalMMTk.bc $(LibDir)/MMTKAlloc.bc $(JARNAME)-optimized.bc $(LibDir)/MMTKRuntime.bc
 	$(Verb) $(LOPT) -std-compile-opts $(LibDir)/FinalMMTk.bc -o $(LibDir)/FinalMMTk.bc
 	#$(Verb) $(LLC) -march=cpp -cppgen=function -cppfor=gcmalloc $(LibDir)/FinalMMTk.bc -o $(PROJ_SRC_ROOT)/lib/Mvm/Compiler/MMTkInline.inc
-endif
+
     
 endif
 clean-local::

Modified: vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp Mon Jul 19 18:28:01 2010
@@ -939,10 +939,10 @@
                  "Ljava/lang/Class;", ACC_VIRTUAL);
 
   loader->loadName(loader->asciizConstructUTF8("java/lang/String"), 
-                                       true, false, NULL);
+                                       true, false);
 
   loader->loadName(loader->asciizConstructUTF8("java/lang/Object"), 
-                                       true, false, NULL);
+                                       true, false);
   
   // Don't compile methods here, we still don't know where to allocate Java
   // strings.

Modified: vmkit/trunk/lib/J3/Classpath/JavaUpcalls.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/JavaUpcalls.h?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/JavaUpcalls.h (original)
+++ vmkit/trunk/lib/J3/Classpath/JavaUpcalls.h Mon Jul 19 18:28:01 2010
@@ -15,7 +15,7 @@
 #include "JnjvmConfig.h"
 
 #define UPCALL_CLASS(vm, name)                                                 \
-  vm->loadName(vm->asciizConstructUTF8(name), true, false, NULL)                        
+  vm->loadName(vm->asciizConstructUTF8(name), true, false)                        
 
 #define UPCALL_PRIMITIVE_CLASS(loader, name, nb)                               \
   new(loader->allocator, "Primitive class")                                    \

Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Mon Jul 19 18:28:01 2010
@@ -2044,7 +2044,7 @@
       }
      
       const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(realName);
-      UserClass* cl = bootstrapLoader->loadName(utf8, true, true, NULL);
+      UserClass* cl = bootstrapLoader->loadName(utf8, true, true);
       
       if (!M->clinits->empty()) {
         vm->loadBootstrap();

Modified: vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaClass.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaClass.cpp Mon Jul 19 18:28:01 2010
@@ -41,6 +41,7 @@
 Class** ClassArray::InterfacesArray;
 
 extern "C" void JavaArrayTracer(JavaObject*);
+extern "C" void JavaObjectTracer(JavaObject*);
 extern "C" void ArrayObjectTracer(JavaObject*);
 extern "C" void RegularObjectTracer(JavaObject*);
 
@@ -685,7 +686,7 @@
   uint16 superEntry = reader.readU2();
   if (superEntry) {
     const UTF8* superUTF8 = ctpInfo->resolveClassName(superEntry);
-    super = classLoader->loadName(superUTF8, false, true, NULL);
+    super = classLoader->loadName(superUTF8, false, true);
   }
 
   uint16 nbI = reader.readU2();
@@ -697,7 +698,7 @@
   // in anon-cooperative environment.
   for (int i = 0; i < nbI; i++) {
     const UTF8* name = ctpInfo->resolveClassName(reader.readU2());
-    interfaces[i] = classLoader->loadName(name, false, true, NULL);
+    interfaces[i] = classLoader->loadName(name, false, true);
   }
   nbInterfaces = nbI;
 
@@ -1430,11 +1431,11 @@
   // so that the secondary type list of array VTs can reference them.
   ClassArray::InterfacesArray[0] = 
     JCL->loadName(JCL->asciizConstructUTF8("java/lang/Cloneable"),
-                  true, false, NULL);
+                  true, false);
   
   ClassArray::InterfacesArray[1] = 
     JCL->loadName(JCL->asciizConstructUTF8("java/io/Serializable"),
-                  true, false, NULL);
+                  true, false);
    
   // Load base array classes that JnJVM internally uses. Now that the interfaces
   // have been loaded, the secondary type can be safely created.
@@ -1474,10 +1475,9 @@
   if (C->super) {
     
     assert(C->super->virtualVT && "Super has no VT");
- 
-    // Will be RegularObjectTracer for regular Java objects, and
-    // ObjectReference tracer for java.lang.ref.Reference objects.
-    tracer = C->super->virtualVT->tracer;
+
+    // Set the regular object tracer, destructor and delete.
+    tracer = (uintptr_t)RegularObjectTracer;
     destructor = 0;
     operatorDelete = 0;
     
@@ -1544,7 +1544,7 @@
 
   } else {
     // Set the tracer, destructor and delete.
-    tracer = (uintptr_t)RegularObjectTracer;
+    tracer = (uintptr_t)JavaObjectTracer;
     destructor = 0;
     operatorDelete = 0;
     

Modified: vmkit/trunk/lib/J3/VMCore/JavaConstantPool.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaConstantPool.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaConstantPool.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaConstantPool.cpp Mon Jul 19 18:28:01 2010
@@ -289,7 +289,7 @@
     if (name->elements[0] == I_TAB) {
       temp = loader->constructArray(name);
     } else {
-      temp = loader->loadName(name, resolve, false, NULL);
+      temp = loader->loadName(name, resolve, false);
     } 
     ctpRes[index] = temp;
   }

Modified: vmkit/trunk/lib/J3/VMCore/JavaTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaTypes.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaTypes.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaTypes.cpp Mon Jul 19 18:28:01 2010
@@ -21,7 +21,7 @@
 }
 
 UserCommonClass* ObjectTypedef::assocClass(JnjvmClassLoader* loader) const {
-  return loader->loadName(pseudoAssocClassName, false, true, NULL);
+  return loader->loadName(pseudoAssocClassName, false, true);
 }
 
 UserCommonClass* ObjectTypedef::findAssocClass(JnjvmClassLoader* loader) const {

Modified: vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Jnjvm.cpp Mon Jul 19 18:28:01 2010
@@ -1196,7 +1196,7 @@
   // load and initialise math since it is responsible for dlopen'ing 
   // libjavalang.so and we are optimizing some math operations
   UserCommonClass* math = 
-    loader->loadName(loader->asciizConstructUTF8("java/lang/Math"), true, true, NULL);
+    loader->loadName(loader->asciizConstructUTF8("java/lang/Math"), true, true);
   math->asClass()->initialiseClass(this);
 }
 
@@ -1217,7 +1217,7 @@
     // If not, load the class.
     if (cl == NULL) {
       const UTF8* name = appClassLoader->asciizConstructUTF8(className);
-      cl = (UserClass*)appClassLoader->loadName(name, true, true, NULL);
+      cl = (UserClass*)appClassLoader->loadName(name, true, true);
     }
     
     cl->initialiseClass(this);
@@ -1256,7 +1256,7 @@
   llvm_gcroot(instrumenter, 0);
   TRY {
     const UTF8* name = appClassLoader->asciizConstructUTF8(className);
-    UserClass* cl = (UserClass*)appClassLoader->loadName(name, true, true, NULL);
+    UserClass* cl = (UserClass*)appClassLoader->loadName(name, true, true);
     cl->initialiseClass(this);
   
     const UTF8* funcSign = appClassLoader->asciizConstructUTF8(

Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.cpp Mon Jul 19 18:28:01 2010
@@ -521,7 +521,7 @@
     const UTF8* componentName = lookupComponentName(name, holder, prim);
     if (prim) return constructArray(name);
     if (componentName) {
-      UserCommonClass* temp = loadName(componentName, doResolve, doThrow, NULL);
+      UserCommonClass* temp = loadName(componentName, doResolve, doThrow);
       if (temp) return constructArray(name);
     }
   } else {
@@ -558,7 +558,7 @@
     if (temp) return temp;
   }
  
-  return loadClassFromUserUTF8(name, doResolve, doThrow, NULL);
+  return loadClassFromUserUTF8(name, doResolve, doThrow);
 }
 
 
@@ -631,7 +631,7 @@
   } else if (name->elements[start] == I_REF) {
     const UTF8* componentName = name->extract(hashUTF8,
                                               start + 1, start + len - 1);
-    UserCommonClass* cl = loadName(componentName, false, true, NULL);
+    UserCommonClass* cl = loadName(componentName, false, true);
     return cl;
   } else {
     Classpath* upcalls = bootstrapLoader->upcalls;

Modified: vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h?rev=108768&r1=108767&r2=108768&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/J3/VMCore/JnjvmClassLoader.h Mon Jul 19 18:28:01 2010
@@ -157,13 +157,13 @@
   /// loadName - Loads the class of the given name.
   ///
   UserClass* loadName(const UTF8* name, bool doResolve, bool doThrow,
-                      JavaString* strName);
+                      JavaString* strName = 0);
   
   /// loadClassFromUTF8 - Lookup a class from an UTF8 name and load it.
   ///
   UserCommonClass* loadClassFromUserUTF8(const UTF8* utf8,
                                          bool doResolve, bool doThrow,
-                                         JavaString* strName);
+                                         JavaString* strName = 0);
   
   /// loadClassFromAsciiz - Lookup a class from an asciiz name and load it.
   ///
@@ -483,6 +483,7 @@
   JnjvmClassLoader* getClassLoader() {
     return JCL;
   }
+
 };
 
 #define MAXIMUM_STRINGS 100





More information about the vmkit-commits mailing list