[vmkit-commits] [vmkit] r67195 - in /vmkit/trunk: include/jnjvm/JavaCompiler.h include/jnjvm/JnjvmModule.h include/mvm/VirtualMachine.h lib/JnJVM/Compiler/JnjvmModuleAOT.cpp lib/JnJVM/VMCore/JavaClass.cpp lib/JnJVM/VMCore/JavaClass.h lib/JnJVM/VMCore/JavaConstantPool.cpp lib/JnJVM/VMCore/JavaTypes.cpp lib/JnJVM/VMCore/JavaTypes.h lib/JnJVM/VMCore/Jnjvm.cpp lib/JnJVM/VMCore/Jnjvm.h lib/JnJVM/VMCore/JnjvmClassLoader.cpp lib/JnJVM/VMCore/Zip.h tools/vmjc/vmjc.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Mar 18 03:28:07 PDT 2009


Author: geoffray
Date: Wed Mar 18 05:28:03 2009
New Revision: 67195

URL: http://llvm.org/viewvc/llvm-project?rev=67195&view=rev
Log:
New refactoring: put all compiler-dependent things like
AOT compile into the Compiler directory, not in Jnjvm.cpp.


Modified:
    vmkit/trunk/include/jnjvm/JavaCompiler.h
    vmkit/trunk/include/jnjvm/JnjvmModule.h
    vmkit/trunk/include/mvm/VirtualMachine.h
    vmkit/trunk/lib/JnJVM/Compiler/JnjvmModuleAOT.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h
    vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
    vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
    vmkit/trunk/lib/JnJVM/VMCore/Zip.h
    vmkit/trunk/tools/vmjc/vmjc.cpp

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

==============================================================================
--- vmkit/trunk/include/jnjvm/JavaCompiler.h (original)
+++ vmkit/trunk/include/jnjvm/JavaCompiler.h Wed Mar 18 05:28:03 2009
@@ -16,7 +16,6 @@
 public:
   
   virtual void* materializeFunction(JavaMethod* meth) = 0;
-  virtual llvm::Function* parseFunction(JavaMethod* meth) = 0;
   virtual void setMethod(JavaMethod* meth, void* ptr, const char* name) = 0;
   virtual bool isStaticCompiling() = 0;
   virtual void resolveVirtualClass(Class* cl) = 0;

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

==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Wed Mar 18 05:28:03 2009
@@ -45,6 +45,7 @@
 class JavaMethod;
 class JavaObject;
 class JavaString;
+class JnjvmClassLoader;
 class JnjvmModule;
 class Typedef;
 class Signdef;
@@ -651,7 +652,11 @@
   
   void printStats();
   
+  void compileFile(JnjvmClassLoader* JCL, const char* name);
+  void compileClass(Class* cl);
 
+private:
+  void compileAllStubs(Signdef* sign);
 };
 
 }

Modified: vmkit/trunk/include/mvm/VirtualMachine.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/VirtualMachine.h?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/include/mvm/VirtualMachine.h (original)
+++ vmkit/trunk/include/mvm/VirtualMachine.h Wed Mar 18 05:28:03 2009
@@ -53,9 +53,6 @@
   /// the arguments, hence it is the virtual machine's job to parse them.
   virtual void runApplication(int argc, char** argv) = 0;
   
-  /// compile - Compile a given file to LLVM.
-  virtual void compile(const char* name) = 0;
- 
   /// waitForExit - Wait until the virtual machine stops its execution.
   virtual void waitForExit() = 0;
 

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

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JnjvmModuleAOT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JnjvmModuleAOT.cpp Wed Mar 18 05:28:03 2009
@@ -21,9 +21,12 @@
 #include "JavaCache.h"
 #include "JavaConstantPool.h"
 #include "JavaString.h"
+#include "JavaThread.h"
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
+#include "Jnjvm.h"
 #include "Reader.h"
+#include "Zip.h"
 
 #include <cstdio>
 
@@ -1464,3 +1467,155 @@
   
   return func;
 }
+
+void JavaAOTCompiler::compileClass(Class* cl) {
+  
+  // Make sure the class is emitted.
+  getNativeClass(cl);
+
+  for (uint32 i = 0; i < cl->nbVirtualMethods; ++i) {
+    JavaMethod& meth = cl->virtualMethods[i];
+    if (!isAbstract(meth.access)) parseFunction(&meth);
+    if (generateStubs) compileAllStubs(meth.getSignature());
+  }
+  
+  for (uint32 i = 0; i < cl->nbStaticMethods; ++i) {
+    JavaMethod& meth = cl->staticMethods[i];
+    if (!isAbstract(meth.access)) parseFunction(&meth);
+    if (generateStubs) compileAllStubs(meth.getSignature());
+  }
+}
+
+static const char* name;
+
+void mainCompilerStart(JavaThread* th) {
+  
+  Jnjvm* vm = th->getJVM();
+  JnjvmBootstrapLoader* bootstrapLoader = vm->bootstrapLoader;
+  JavaAOTCompiler* M = (JavaAOTCompiler*)bootstrapLoader->getModule();
+  try {
+
+    bootstrapLoader->analyseClasspathEnv(vm->classpath);
+    bootstrapLoader->upcalls->initialiseClasspath(bootstrapLoader);
+  
+    uint32 size = strlen(name);
+    
+    if (size > 4 && 
+       (!strcmp(&name[size - 4], ".jar") || !strcmp(&name[size - 4], ".zip"))) {
+  
+
+      std::vector<Class*> classes;
+
+      ArrayUInt8* bytes = Reader::openFile(bootstrapLoader, name);
+      if (!bytes) vm->unknownError("Can't find zip file.");
+      ZipArchive archive(bytes, bootstrapLoader->allocator);
+    
+      char* realName = (char*)alloca(4096);
+      for (ZipArchive::table_iterator i = archive.filetable.begin(), 
+           e = archive.filetable.end(); i != e; ++i) {
+        ZipFile* file = i->second;
+      
+        size = strlen(file->filename);
+        if (size > 6 && !strcmp(&(file->filename[size - 6]), ".class")) {
+          UserClassArray* array = bootstrapLoader->upcalls->ArrayOfByte;
+          ArrayUInt8* res = 
+            (ArrayUInt8*)array->doNew(file->ucsize, bootstrapLoader->allocator);
+          int ok = archive.readFile(res, file);
+          if (!ok) vm->unknownError("Wrong zip file.");
+      
+        
+          memcpy(realName, file->filename, size);
+          realName[size - 6] = 0;
+          const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(realName);
+          Class* cl = bootstrapLoader->constructClass(utf8, res);
+          classes.push_back(cl);
+        }
+      }
+
+      // First resolve everyone so that there can not be unknown references in
+      // constant pools.
+      for (std::vector<Class*>::iterator i = classes.begin(),
+           e = classes.end(); i != e; ++i) {
+        Class* cl = *i;
+        cl->resolveClass();
+        cl->setOwnerClass(JavaThread::get());
+        
+        for (uint32 i = 0; i < cl->nbVirtualMethods; ++i) {
+          LLVMMethodInfo* LMI = M->getMethodInfo(&cl->virtualMethods[i]);
+          LMI->getMethod();
+        }
+
+        for (uint32 i = 0; i < cl->nbStaticMethods; ++i) {
+          LLVMMethodInfo* LMI = M->getMethodInfo(&cl->staticMethods[i]);
+          LMI->getMethod();
+        }
+
+      }
+      
+      for (std::vector<Class*>::iterator i = classes.begin(), e = classes.end();
+           i != e; ++i) {
+        Class* cl = *i;
+        M->compileClass(cl);
+      }
+
+    } else {
+
+      const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(name);
+      UserClass* cl = bootstrapLoader->loadName(utf8, true, true);
+      cl->setOwnerClass(JavaThread::get());
+      M->compileClass(cl);
+    }
+   
+    M->CreateStaticInitializer();
+
+    // Print stats before quitting.
+    M->printStats();
+
+  } catch(std::string str) {
+    fprintf(stderr, "Error : %s\n", str.c_str());
+  }
+  
+#define SET_INLINE(NAME) { \
+  const UTF8* name = vm->asciizToUTF8(NAME); \
+  Class* cl = (Class*)vm->bootstrapLoader->lookupClass(name); \
+  if (cl) M->setNoInline(cl); }
+
+  SET_INLINE("java/util/concurrent/atomic/AtomicReferenceFieldUpdater")
+  SET_INLINE("java/util/concurrent/atomic/AtomicReferenceFieldUpdater"
+             "$AtomicReferenceFieldUpdaterImpl")
+  SET_INLINE("java/util/concurrent/atomic/AtomicIntegerFieldUpdater")
+  SET_INLINE("java/util/concurrent/atomic/AtomicIntegerFieldUpdater"
+             "$AtomicIntegerFieldUpdaterImpl")
+  SET_INLINE("java/util/concurrent/atomic/AtomicLongFieldUpdater")
+  SET_INLINE("java/util/concurrent/atomic/AtomicLongFieldUpdater"
+             "$CASUpdater")
+  SET_INLINE("java/util/concurrent/atomic/AtomicLongFieldUpdater"
+             "$LockedUpdater")
+#undef SET_INLINE
+
+  vm->threadSystem.nonDaemonLock.lock();
+  --(vm->threadSystem.nonDaemonThreads);
+  if (vm->threadSystem.nonDaemonThreads == 0)
+      vm->threadSystem.nonDaemonVar.signal();
+  vm->threadSystem.nonDaemonLock.unlock();  
+  
+}
+
+void JavaAOTCompiler::compileFile(JnjvmClassLoader* JCL, const char* n) {
+  name = n;
+  Jnjvm* vm = gc_new(Jnjvm)((JnjvmBootstrapLoader*)JCL);
+  JavaThread* th = new JavaThread(0, 0, vm);
+  vm->setBootstrapThread(th);
+  th->start((void (*)(mvm::Thread*))mainCompilerStart);
+  vm->waitForExit();
+}
+
+/// compileAllStubs - Compile all the native -> Java stubs. 
+/// TODO: Once LLVM supports va_arg, enable AP.
+///
+void JavaAOTCompiler::compileAllStubs(Signdef* sign) {
+  sign->getStaticCallBuf();
+  // getStaticCallAP();
+  sign->getVirtualCallBuf();
+  // getVirtualCallAP();
+}

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Wed Mar 18 05:28:03 2009
@@ -16,13 +16,13 @@
 #include "JavaArray.h"
 #include "JavaCache.h"
 #include "JavaClass.h"
+#include "JavaCompiler.h"
 #include "JavaConstantPool.h"
 #include "JavaObject.h"
 #include "JavaThread.h"
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "JnjvmModule.h"
 #include "LockedMap.h"
 #include "Reader.h"
 

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Wed Mar 18 05:28:03 2009
@@ -886,20 +886,13 @@
 ///
 class ClassArray : public CommonClass {
 
-  /// Reader and Jnjvm are friends because they may allocate arrays without
-  /// a vm.
-  friend class Reader;
-  friend class Jnjvm;
-
-private:
+public:
   
   /// doNew - Allocate a new array with the given allocator.
   ///
   JavaArray* doNew(sint32 n, mvm::BumpPtrAllocator& allocator);
   JavaArray* doNew(sint32 n, mvm::Allocator& allocator);
 
-public:
-  
   /// _baseClass - The base class of the array.
   ///
   CommonClass*  _baseClass;

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp Wed Mar 18 05:28:03 2009
@@ -18,9 +18,9 @@
 #include "JavaAccess.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
+#include "JavaCompiler.h"
 #include "JavaConstantPool.h"
 #include "Jnjvm.h"
-#include "JnjvmModule.h"
 #include "JavaThread.h"
 #include "JavaTypes.h"
 #include "LockedMap.h"

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.cpp Wed Mar 18 05:28:03 2009
@@ -11,8 +11,8 @@
 
 #include "JavaArray.h"
 #include "JavaClass.h"
+#include "JavaCompiler.h"
 #include "JavaTypes.h"
-#include "JnjvmModule.h"
 
 using namespace jnjvm;
 

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaTypes.h Wed Mar 18 05:28:03 2009
@@ -353,18 +353,7 @@
 // End of inlined methods of getting dynamically generated functions.
 //
 //===----------------------------------------------------------------------===//
-  
-  /// compileAllStubs - Compile all the native -> Java stubs. 
-  /// TODO: Once LLVM supports va_arg, enable AP.
-  ///
-  void compileAllStubs() {
-    getStaticCallBuf();
-    // getStaticCallAP();
-    getVirtualCallBuf();
-    // getVirtualCallAP();
-  }
-
-  
+    
   /// JInfo - Holds info useful for the JIT.
   ///
   mvm::JITInfo* JInfo;

Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.cpp Wed Mar 18 05:28:03 2009
@@ -15,6 +15,7 @@
 #include <cstdio>
 #include <cstdlib>
 #include <cstring>
+#include <string>
 #include "debug.h"
 
 #include "mvm/Threads/Thread.h"
@@ -22,13 +23,13 @@
 #include "ClasspathReflect.h"
 #include "JavaArray.h"
 #include "JavaClass.h"
+#include "JavaCompiler.h"
 #include "JavaConstantPool.h"
 #include "JavaString.h"
 #include "JavaThread.h"
 #include "JavaTypes.h"
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
-#include "JnjvmModule.h"
 #include "LockedMap.h"
 #include "Reader.h"
 #include "Zip.h"
@@ -1099,151 +1100,6 @@
   return (const UTF8*)tmp;
 }
 
-
-static void compileClass(Class* cl) {
-  JavaAOTCompiler* Mod = (JavaAOTCompiler*)cl->classLoader->getModule();
-  
-  // Make sure the class is emitted.
-  Mod->getNativeClass(cl);
-
-  for (uint32 i = 0; i < cl->nbVirtualMethods; ++i) {
-    JavaMethod& meth = cl->virtualMethods[i];
-    if (!isAbstract(meth.access))
-      cl->classLoader->getModule()->parseFunction(&meth);
-    if (Mod->generateStubs) meth.getSignature()->compileAllStubs();
-  }
-  
-  for (uint32 i = 0; i < cl->nbStaticMethods; ++i) {
-    JavaMethod& meth = cl->staticMethods[i];
-    if (!isAbstract(meth.access))
-      cl->classLoader->getModule()->parseFunction(&meth);
-    if (Mod->generateStubs) meth.getSignature()->compileAllStubs();
-  }
-}
-
-static const char* name;
-
-void Jnjvm::mainCompilerStart(JavaThread* th) {
-  
-  Jnjvm* vm = th->getJVM();
-  JnjvmBootstrapLoader* bootstrapLoader = vm->bootstrapLoader;
-  JavaAOTCompiler* M = (JavaAOTCompiler*)bootstrapLoader->getModule();
-  try {
-
-    bootstrapLoader->analyseClasspathEnv(vm->classpath);
-    bootstrapLoader->upcalls->initialiseClasspath(bootstrapLoader);
-  
-    uint32 size = strlen(name);
-    
-    if (size > 4 && 
-       (!strcmp(&name[size - 4], ".jar") || !strcmp(&name[size - 4], ".zip"))) {
-  
-
-      std::vector<Class*> classes;
-
-      ArrayUInt8* bytes = Reader::openFile(bootstrapLoader, name);
-      if (!bytes) vm->unknownError("Can't find zip file.");
-      ZipArchive archive(bytes, bootstrapLoader->allocator);
-    
-      char* realName = (char*)alloca(4096);
-      for (ZipArchive::table_iterator i = archive.filetable.begin(), 
-           e = archive.filetable.end(); i != e; ++i) {
-        ZipFile* file = i->second;
-      
-        size = strlen(file->filename);
-        if (size > 6 && !strcmp(&(file->filename[size - 6]), ".class")) {
-          UserClassArray* array = bootstrapLoader->upcalls->ArrayOfByte;
-          ArrayUInt8* res = 
-            (ArrayUInt8*)array->doNew(file->ucsize, bootstrapLoader->allocator);
-          int ok = archive.readFile(res, file);
-          if (!ok) vm->unknownError("Wrong zip file.");
-      
-        
-          memcpy(realName, file->filename, size);
-          realName[size - 6] = 0;
-          const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(realName);
-          Class* cl = bootstrapLoader->constructClass(utf8, res);
-          classes.push_back(cl);
-        }
-      }
-
-      // First resolve everyone so that there can not be unknown references in
-      // constant pools.
-      for (std::vector<Class*>::iterator i = classes.begin(),
-           e = classes.end(); i != e; ++i) {
-        Class* cl = *i;
-        cl->resolveClass();
-        cl->setOwnerClass(JavaThread::get());
-        
-        for (uint32 i = 0; i < cl->nbVirtualMethods; ++i) {
-          LLVMMethodInfo* LMI = M->getMethodInfo(&cl->virtualMethods[i]);
-          LMI->getMethod();
-        }
-
-        for (uint32 i = 0; i < cl->nbStaticMethods; ++i) {
-          LLVMMethodInfo* LMI = M->getMethodInfo(&cl->staticMethods[i]);
-          LMI->getMethod();
-        }
-
-      }
-      
-      for (std::vector<Class*>::iterator i = classes.begin(), e = classes.end();
-           i != e; ++i) {
-        Class* cl = *i;
-        compileClass(cl);
-      }
-
-    } else {
-
-      const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(name);
-      UserClass* cl = bootstrapLoader->loadName(utf8, true, true);
-      cl->setOwnerClass(JavaThread::get());
-      compileClass(cl);
-    }
-   
-    M->CreateStaticInitializer();
-
-    // Print stats before quitting.
-    M->printStats();
-
-  } catch(std::string str) {
-    fprintf(stderr, "Error : %s\n", str.c_str());
-  }
-  
-#define SET_INLINE(NAME) { \
-  const UTF8* name = vm->asciizToUTF8(NAME); \
-  Class* cl = (Class*)vm->bootstrapLoader->lookupClass(name); \
-  if (cl) M->setNoInline(cl); }
-
-  SET_INLINE("java/util/concurrent/atomic/AtomicReferenceFieldUpdater")
-  SET_INLINE("java/util/concurrent/atomic/AtomicReferenceFieldUpdater"
-             "$AtomicReferenceFieldUpdaterImpl")
-  SET_INLINE("java/util/concurrent/atomic/AtomicIntegerFieldUpdater")
-  SET_INLINE("java/util/concurrent/atomic/AtomicIntegerFieldUpdater"
-             "$AtomicIntegerFieldUpdaterImpl")
-  SET_INLINE("java/util/concurrent/atomic/AtomicLongFieldUpdater")
-  SET_INLINE("java/util/concurrent/atomic/AtomicLongFieldUpdater"
-             "$CASUpdater")
-  SET_INLINE("java/util/concurrent/atomic/AtomicLongFieldUpdater"
-             "$LockedUpdater")
-#undef SET_INLINE
-
-  vm->threadSystem.nonDaemonLock.lock();
-  --(vm->threadSystem.nonDaemonThreads);
-  if (vm->threadSystem.nonDaemonThreads == 0)
-      vm->threadSystem.nonDaemonVar.signal();
-  vm->threadSystem.nonDaemonLock.unlock();  
-  
-}
-
-void Jnjvm::compile(const char* n) {
-  name = n;
-  bootstrapThread = new JavaThread(0, 0, this);
-  bootstrapThread->start((void (*)(mvm::Thread*))mainCompilerStart);
-}
-
-
-
 void Jnjvm::removeMethodsInFunctionMap(JnjvmClassLoader* loader) {
   // Loop over all methods in the map to find which ones belong
   // to this class loader.

Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h Wed Mar 18 05:28:03 2009
@@ -244,7 +244,7 @@
   /// hashStr - Hash map of java/lang/String objects allocated by this JVM.
   ///
   StringMap hashStr;
-  
+ 
 public:
   
   /// CreateExceptions - These are the runtime exceptions thrown by Java code
@@ -303,6 +303,10 @@
   /// asciizToUTF8 - Constructs an UTF8 out of the asciiz.
   ///
   const UTF8* asciizToUTF8(const char* asciiz);
+  
+  /// setBootstrapThread - Set the bootstrap thread of this VM.
+  ///
+  void setBootstrapThread(JavaThread* th) { bootstrapThread = th; }
 
   /// ~Jnjvm - Destroy the JVM.
   ///
@@ -335,10 +339,6 @@
   ///
   virtual void runApplication(int argc, char** argv);
 
-  /// compile - Compile the .class, .zip or .jar file to LLVM IR.
-  ///
-  virtual void compile(const char* name);
-  
   /// waitForExit - Waits that there are no more non-daemon threads in this JVM.
   ///
   virtual void waitForExit();

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Wed Mar 18 05:28:03 2009
@@ -21,6 +21,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include <string>
 
 
 #if defined(__MACH__)
@@ -37,6 +38,7 @@
 #include "Classpath.h"
 #include "ClasspathReflect.h"
 #include "JavaClass.h"
+#include "JavaCompiler.h"
 #include "JavaConstantPool.h"
 #include "JavaString.h"
 #include "JavaThread.h"
@@ -44,7 +46,6 @@
 #include "JavaUpcalls.h"
 #include "Jnjvm.h"
 #include "JnjvmClassLoader.h"
-#include "JnjvmModule.h"
 #include "LockedMap.h"
 #include "Reader.h"
 #include "Zip.h"

Modified: vmkit/trunk/lib/JnJVM/VMCore/Zip.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Zip.h?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Zip.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Zip.h Wed Mar 18 05:28:03 2009
@@ -33,9 +33,6 @@
 
 
 class ZipArchive : public mvm::PermanentObject {
-  friend class JnjvmBootstrapLoader;
-  friend class Jnjvm;
-private:
   
   mvm::BumpPtrAllocator& allocator;
 
@@ -48,8 +45,12 @@
   };
   
   int ofscd;
+
+public:
   std::map<const char*, ZipFile*, ltstr> filetable;
   typedef std::map<const char*, ZipFile*, ltstr>::iterator table_iterator;
+
+private:
   ArrayUInt8* bytes;
   
   void findOfscd();

Modified: vmkit/trunk/tools/vmjc/vmjc.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/vmjc.cpp?rev=67195&r1=67194&r2=67195&view=diff

==============================================================================
--- vmkit/trunk/tools/vmjc/vmjc.cpp (original)
+++ vmkit/trunk/tools/vmjc/vmjc.cpp Wed Mar 18 05:28:03 2009
@@ -217,9 +217,7 @@
     if (DisableTracers) MAOT->generateTracers = false;
     if (DisableStubs) MAOT->generateStubs = false;
     if (AssumeCompiled) MAOT->assumeCompiled = true;
-    mvm::VirtualMachine* vm = mvm::VirtualMachine::createJVM(JCL);
-    vm->compile(InputFilename.c_str());
-    vm->waitForExit();
+    MAOT->compileFile(JCL, InputFilename.c_str());
 
     if (DontPrint) {
       // Just use stdout.  We won't actually print anything on it.





More information about the vmkit-commits mailing list