[vmkit-commits] [vmkit] r96189 - in /vmkit/trunk: include/j3/JavaJITCompiler.h include/j3/JnjvmModule.h include/j3/LLVMMaterializer.h lib/J3/Compiler/JavaAOTCompiler.cpp lib/J3/Compiler/JavaJITCompiler.cpp lib/J3/Compiler/JnjvmModule.cpp tools/j3/Main.cpp tools/vmkit/Launcher.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Feb 14 13:12:57 PST 2010


Author: geoffray
Date: Sun Feb 14 15:12:57 2010
New Revision: 96189

URL: http://llvm.org/viewvc/llvm-project?rev=96189&view=rev
Log:
Continue code refactoring. No functionality change.


Added:
    vmkit/trunk/include/j3/JavaJITCompiler.h
Modified:
    vmkit/trunk/include/j3/JnjvmModule.h
    vmkit/trunk/include/j3/LLVMMaterializer.h
    vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp
    vmkit/trunk/lib/J3/Compiler/JnjvmModule.cpp
    vmkit/trunk/tools/j3/Main.cpp
    vmkit/trunk/tools/vmkit/Launcher.cpp

Added: vmkit/trunk/include/j3/JavaJITCompiler.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/j3/JavaJITCompiler.h?rev=96189&view=auto

==============================================================================
--- vmkit/trunk/include/j3/JavaJITCompiler.h (added)
+++ vmkit/trunk/include/j3/JavaJITCompiler.h Sun Feb 14 15:12:57 2010
@@ -0,0 +1,91 @@
+//===------- JavaJITCompiler.h - The J3 just in time compiler -------------===//
+//
+//                            The VMKit project
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef J3_JIT_COMPILER_H
+#define J3_JIT_COMPILER_H
+
+#include "j3/JnjvmModule.h"
+
+namespace j3 {
+
+class JavaJITCompiler : public JavaLLVMCompiler {
+public:
+
+  bool EmitFunctionName;
+
+  JavaJITCompiler(const std::string &ModuleID);
+  
+  virtual bool isStaticCompiling() {
+    return false;
+  }
+ 
+  virtual bool emitFunctionName() {
+    return EmitFunctionName;
+  }
+
+  virtual void makeVT(Class* cl);
+  virtual void makeIMT(Class* cl);
+  
+  virtual void* materializeFunction(JavaMethod* meth);
+  
+  virtual llvm::Constant* getFinalObject(JavaObject* obj, CommonClass* cl);
+  virtual JavaObject* getFinalObject(llvm::Value* C);
+  virtual llvm::Constant* getNativeClass(CommonClass* cl);
+  virtual llvm::Constant* getJavaClass(CommonClass* cl);
+  virtual llvm::Constant* getJavaClassPtr(CommonClass* cl);
+  virtual llvm::Constant* getStaticInstance(Class* cl);
+  virtual llvm::Constant* getVirtualTable(JavaVirtualTable*);
+  virtual llvm::Constant* getMethodInClass(JavaMethod* meth);
+  
+  virtual llvm::Constant* getString(JavaString* str);
+  virtual llvm::Constant* getStringPtr(JavaString** str);
+  virtual llvm::Constant* getConstantPool(JavaConstantPool* ctp);
+  virtual llvm::Constant* getNativeFunction(JavaMethod* meth, void* natPtr);
+  
+  virtual void setMethod(JavaMethod* meth, void* ptr, const char* name);
+  
+
+#ifdef SERVICE
+  virtual llvm::Value* getIsolate(Jnjvm* vm, llvm::Value* Where);
+#endif
+ 
+  virtual llvm::Value* addCallback(Class* cl, uint16 index, Signdef* sign,
+                                   bool stat, llvm::BasicBlock* insert) = 0;
+  virtual uintptr_t getPointerOrStub(JavaMethod& meth, int type) = 0;
+
+#ifdef WITH_LLVM_GCC
+  virtual mvm::StackScanner* createStackScanner() {
+    if (useCooperativeGC())
+      return new mvm::PreciseStackScanner();
+    
+    return new mvm::UnpreciseStackScanner();
+  }
+#endif
+  
+  static  JavaJITCompiler* CreateCompiler(const std::string& ModuleID);
+
+};
+
+class JavaJ3LazyJITCompiler : public JavaJITCompiler {
+public:
+  virtual bool needsCallback(JavaMethod* meth, bool* needsInit);
+  virtual llvm::Value* addCallback(Class* cl, uint16 index, Signdef* sign,
+                                   bool stat, llvm::BasicBlock* insert);
+  virtual uintptr_t getPointerOrStub(JavaMethod& meth, int side);
+  
+  virtual JavaCompiler* Create(const std::string& ModuleID) {
+    return new JavaJ3LazyJITCompiler(ModuleID);
+  }
+
+  JavaJ3LazyJITCompiler(const std::string& ModuleID);
+};
+
+} // end namespace j3
+
+#endif

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

==============================================================================
--- vmkit/trunk/include/j3/JnjvmModule.h (original)
+++ vmkit/trunk/include/j3/JnjvmModule.h Sun Feb 14 15:12:57 2010
@@ -526,96 +526,6 @@
 
 };
 
-class JavaJITMethodInfo : public mvm::JITMethodInfo {
-protected:
-  JavaMethod* meth;
-public:
-  virtual void print(void* ip, void* addr);
-  
-  JavaJITMethodInfo(llvm::GCFunctionInfo* GFI, JavaMethod* m) : 
-    mvm::JITMethodInfo(GFI) {
-    meth = m;
-    MethodType = 1;
-  }
-  
-  virtual void* getMetaInfo() {
-    return meth;
-  }
-
-};
-
-class JavaJITCompiler : public JavaLLVMCompiler {
-public:
-
-  bool EmitFunctionName;
-
-  JavaJITCompiler(const std::string &ModuleID);
-  
-  virtual bool isStaticCompiling() {
-    return false;
-  }
- 
-  virtual bool emitFunctionName() {
-    return EmitFunctionName;
-  }
-
-  virtual void makeVT(Class* cl);
-  virtual void makeIMT(Class* cl);
-  
-  virtual void* materializeFunction(JavaMethod* meth);
-  
-  virtual llvm::Constant* getFinalObject(JavaObject* obj, CommonClass* cl);
-  virtual JavaObject* getFinalObject(llvm::Value* C);
-  virtual llvm::Constant* getNativeClass(CommonClass* cl);
-  virtual llvm::Constant* getJavaClass(CommonClass* cl);
-  virtual llvm::Constant* getJavaClassPtr(CommonClass* cl);
-  virtual llvm::Constant* getStaticInstance(Class* cl);
-  virtual llvm::Constant* getVirtualTable(JavaVirtualTable*);
-  virtual llvm::Constant* getMethodInClass(JavaMethod* meth);
-  
-  virtual llvm::Constant* getString(JavaString* str);
-  virtual llvm::Constant* getStringPtr(JavaString** str);
-  virtual llvm::Constant* getConstantPool(JavaConstantPool* ctp);
-  virtual llvm::Constant* getNativeFunction(JavaMethod* meth, void* natPtr);
-  
-  virtual void setMethod(JavaMethod* meth, void* ptr, const char* name);
-  
-
-#ifdef SERVICE
-  virtual llvm::Value* getIsolate(Jnjvm* vm, llvm::Value* Where);
-#endif
- 
-  virtual llvm::Value* addCallback(Class* cl, uint16 index, Signdef* sign,
-                                   bool stat, llvm::BasicBlock* insert) = 0;
-  virtual uintptr_t getPointerOrStub(JavaMethod& meth, int type) = 0;
-
-#ifdef WITH_LLVM_GCC
-  virtual mvm::StackScanner* createStackScanner() {
-    if (useCooperativeGC())
-      return new mvm::PreciseStackScanner();
-    
-    return new mvm::UnpreciseStackScanner();
-  }
-#endif
-   
-  static  JavaJITCompiler* CreateCompiler(const std::string& ModuleID);
-
-};
-
-class JavaJ3LazyJITCompiler : public JavaJITCompiler {
-public:
-  virtual bool needsCallback(JavaMethod* meth, bool* needsInit);
-  virtual llvm::Value* addCallback(Class* cl, uint16 index, Signdef* sign,
-                                   bool stat, llvm::BasicBlock* insert);
-  virtual uintptr_t getPointerOrStub(JavaMethod& meth, int side);
-  
-  virtual JavaCompiler* Create(const std::string& ModuleID) {
-    return new JavaJ3LazyJITCompiler(ModuleID);
-  }
-
-  JavaJ3LazyJITCompiler(const std::string& ModuleID);
-};
-
 }
 
 #endif

Modified: vmkit/trunk/include/j3/LLVMMaterializer.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/j3/LLVMMaterializer.h?rev=96189&r1=96188&r2=96189&view=diff

==============================================================================
--- vmkit/trunk/include/j3/LLVMMaterializer.h (original)
+++ vmkit/trunk/include/j3/LLVMMaterializer.h Sun Feb 14 15:12:57 2010
@@ -12,6 +12,8 @@
 
 #include <llvm/GVMaterializer.h>
 
+#include <j3/JavaJITCompiler.h>
+
 namespace j3 {
 
 class LLVMMaterializer;

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

==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Sun Feb 14 15:12:57 2010
@@ -19,6 +19,7 @@
 
 #include "j3/JnjvmModule.h"
 #include "j3/JavaAOTCompiler.h"
+#include "j3/JavaJITCompiler.h"
 
 #include "JavaArray.h"
 #include "JavaConstantPool.h"

Modified: vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp?rev=96189&r1=96188&r2=96189&view=diff

==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp Sun Feb 14 15:12:57 2010
@@ -32,12 +32,44 @@
 #include "JavaTypes.h"
 #include "Jnjvm.h"
 
+#include "j3/JavaJITCompiler.h"
 #include "j3/JnjvmModule.h"
 #include "j3/LLVMMaterializer.h"
 
 using namespace j3;
 using namespace llvm;
 
+
+class JavaJITMethodInfo : public mvm::JITMethodInfo {
+protected:
+  JavaMethod* meth;
+public:
+  virtual void print(void* ip, void* addr);
+  
+  JavaJITMethodInfo(llvm::GCFunctionInfo* GFI, JavaMethod* m) : 
+    mvm::JITMethodInfo(GFI) {
+    meth = m;
+    MethodType = 1;
+  }
+  
+  virtual void* getMetaInfo() {
+    return meth;
+  }
+
+};
+
+void JavaJITMethodInfo::print(void* ip, void* addr) {
+  void* new_ip = NULL;
+  if (ip) new_ip = isStub(ip, addr);
+  uint16 line = meth->lookupLineNumber((uintptr_t)ip);
+  fprintf(stderr, "; %p in %s.%s (line %d)", new_ip,
+          UTF8Buffer(meth->classDef->name).cString(),
+          UTF8Buffer(meth->name).cString(), line);
+  if (ip != new_ip) fprintf(stderr, " (from stub)");
+  fprintf(stderr, "\n");
+}
+
+
 class JavaJITListener : public llvm::JITEventListener {
   JavaMethod* currentCompiledMethod;
 public:
@@ -455,6 +487,7 @@
 JavaJ3LazyJITCompiler::JavaJ3LazyJITCompiler(const std::string& ModuleID)
     : JavaJITCompiler(ModuleID) {}
 
+
 static llvm::cl::opt<bool> LLVMLazy("llvm-lazy", 
                      cl::desc("Use LLVM lazy stubs"),
                      cl::init(false));

Modified: vmkit/trunk/lib/J3/Compiler/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JnjvmModule.cpp?rev=96189&r1=96188&r2=96189&view=diff

==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JnjvmModule.cpp Sun Feb 14 15:12:57 2010
@@ -426,14 +426,3 @@
   //JavaFunctionPasses->add(mvm::createEscapeAnalysisPass());
   JavaFunctionPasses->add(createLowerConstantCallsPass(getIntrinsics()));
 }
-
-void JavaJITMethodInfo::print(void* ip, void* addr) {
-  void* new_ip = NULL;
-  if (ip) new_ip = isStub(ip, addr);
-  uint16 line = meth->lookupLineNumber((uintptr_t)ip);
-  fprintf(stderr, "; %p in %s.%s (line %d)", new_ip,
-          UTF8Buffer(meth->classDef->name).cString(),
-          UTF8Buffer(meth->name).cString(), line);
-  if (ip != new_ip) fprintf(stderr, " (from stub)");
-  fprintf(stderr, "\n");
-}

Modified: vmkit/trunk/tools/j3/Main.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/j3/Main.cpp?rev=96189&r1=96188&r2=96189&view=diff

==============================================================================
--- vmkit/trunk/tools/j3/Main.cpp (original)
+++ vmkit/trunk/tools/j3/Main.cpp Sun Feb 14 15:12:57 2010
@@ -13,7 +13,7 @@
 #include "mvm/VirtualMachine.h"
 #include "mvm/Threads/Thread.h"
 
-#include "j3/JnjvmModule.h"
+#include "j3/JavaJITCompiler.h"
 
 #include "llvm/Support/ManagedStatic.h"
 

Modified: vmkit/trunk/tools/vmkit/Launcher.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmkit/Launcher.cpp?rev=96189&r1=96188&r2=96189&view=diff

==============================================================================
--- vmkit/trunk/tools/vmkit/Launcher.cpp (original)
+++ vmkit/trunk/tools/vmkit/Launcher.cpp Sun Feb 14 15:12:57 2010
@@ -25,6 +25,7 @@
 #include "mvm/VirtualMachine.h"
 #include "mvm/Threads/Thread.h"
 
+#include "j3/JavaJITCompiler.h"
 #include "j3/JnjvmModule.h"
 
 #include "CommandLine.h"





More information about the vmkit-commits mailing list