[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