[llvm-commits] [vmkit] r51245 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.cpp JavaConstantPool.cpp JavaConstantPool.h JavaIsolate.cpp JavaJIT.cpp JavaMetaJIT.cpp Jni.cpp Jnjvm.h JnjvmModule.cpp JnjvmModule.h JnjvmModuleProvider.cpp JnjvmModuleProvider.h LockedMap.h NativeUtil.cpp NativeUtil.h ServiceDomain.cpp ServiceDomain.h VirtualTables.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon May 19 04:56:17 PDT 2008
Author: geoffray
Date: Mon May 19 06:56:16 2008
New Revision: 51245
URL: http://llvm.org/viewvc/llvm-project?rev=51245&view=rev
Log:
Remove LLVM dependencies in some core JnJVM files.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h
vmkit/trunk/lib/JnJVM/VMCore/JavaIsolate.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h
vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h
vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.cpp
vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.h
vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Mon May 19 06:56:16 2008
@@ -11,10 +11,6 @@
#include <string.h>
-#include "llvm/Constants.h"
-#include "llvm/DerivedTypes.h"
-
-
#include "mvm/JIT.h"
#include "types.h"
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.cpp Mon May 19 06:56:16 2008
@@ -12,8 +12,6 @@
#include <stdio.h>
#include <stdlib.h>
-#include "llvm/GlobalValue.h"
-
#include "debug.h"
#include "JavaAccess.h"
@@ -398,11 +396,10 @@
cl = resolveClassName(entry >> 16);
}
-llvm::Function* JavaCtpInfo::infoOfStaticOrSpecialMethod(
- uint32 index,
- uint32 access,
- Signdef*& sign,
- JavaMethod*& meth) {
+void* JavaCtpInfo::infoOfStaticOrSpecialMethod(uint32 index,
+ uint32 access,
+ Signdef*& sign,
+ JavaMethod*& meth) {
uint8 id = typeAt(index);
if (id != ConstantMethodref && id != ConstantInterfaceMethodref)
JavaThread::get()->isolate->error(Jnjvm::ClassFormatError,
@@ -418,8 +415,7 @@
meth = cl->lookupMethodDontThrow(utf8, sign->keyName, isStatic(access), false);
if (meth) { // don't throw if no meth, the exception will be thrown just in time
JnjvmModule* M = classDef->isolate->module;
- LLVMMethodInfo* LMI = M->getMethodInfo(meth);
- llvm::Function* F = LMI->getMethod();
+ void* F = M->getMethod(meth);
ctpRes[index] = (void*)F;
return F;
}
@@ -427,25 +423,14 @@
// Must be a callback
if (ctpRes[index]) {
- return (llvm::Function*)ctpRes[index];
+ return ctpRes[index];
} else {
- // Create the callback
- const llvm::FunctionType* type = 0;
- JnjvmModule* M = classDef->isolate->module;
- LLVMSignatureInfo* LSI = M->getSignatureInfo(sign);
- if (isStatic(access)) {
- type = LSI->getStaticType();
- } else {
- type = LSI->getVirtualType();
- }
- llvm::Function* func = llvm::Function::Create(type,
- llvm::GlobalValue::GhostLinkage,
- "callback",
- classDef->isolate->module);
- classDef->isolate->TheModuleProvider->functions->hash(func,
- new std::pair<Class*, uint32>(classDef, index));
- ctpRes[index] = func;
- return func;
+ void* val =
+ classDef->isolate->TheModuleProvider->addCallback(classDef, index, sign,
+ isStatic(access));
+
+ ctpRes[index] = val;
+ return val;
}
}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h Mon May 19 06:56:16 2008
@@ -14,8 +14,6 @@
#include "types.h"
-#include "llvm/Function.h"
-
namespace jnjvm {
class Class;
@@ -108,10 +106,10 @@
Typedef* resolveNameAndType(uint32 index);
Typedef* infoOfField(uint32 index);
Signdef* infoOfInterfaceOrVirtualMethod(uint32 index);
- llvm::Function* infoOfStaticOrSpecialMethod(uint32 index,
- uint32 access,
- Signdef*& sign,
- JavaMethod*& meth);
+ void* infoOfStaticOrSpecialMethod(uint32 index,
+ uint32 access,
+ Signdef*& sign,
+ JavaMethod*& meth);
void nameOfStaticOrSpecialMethod(uint32 index, const UTF8*& cl,
const UTF8*& name, Signdef*& sign);
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaIsolate.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaIsolate.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaIsolate.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaIsolate.cpp Mon May 19 06:56:16 2008
@@ -447,16 +447,12 @@
isolate->analyseClasspathEnv(isolate->bootClasspathEnv);
- isolate->functions = vm_new(isolate, FunctionMap)();
- isolate->functionDefs = vm_new(isolate, FunctionDefMap)();
isolate->module = new JnjvmModule("Isolate JnJVM");
std::string str =
mvm::jit::executionEngine->getTargetData()->getStringRepresentation();
isolate->module->setDataLayout(str);
isolate->protectModule = mvm::Lock::allocNormal();
- isolate->TheModuleProvider = new JnjvmModuleProvider(isolate->module,
- isolate->functions,
- isolate->functionDefs);
+ isolate->TheModuleProvider = new JnjvmModuleProvider(isolate->module);
mvm::jit::protectEngine->lock();
mvm::jit::executionEngine->addModuleProvider(isolate->TheModuleProvider);
mvm::jit::protectEngine->unlock();
@@ -519,16 +515,12 @@
isolate->analyseClasspathEnv(isolate->bootClasspathEnv);
- isolate->functions = vm_new(isolate, FunctionMap)();
- isolate->functionDefs = vm_new(isolate, FunctionDefMap)();
isolate->protectModule = mvm::Lock::allocNormal();
isolate->module = new JnjvmModule("Bootstrap JnJVM");
std::string str =
mvm::jit::executionEngine->getTargetData()->getStringRepresentation();
isolate->module->setDataLayout(str);
- isolate->TheModuleProvider = new JnjvmModuleProvider(isolate->module,
- isolate->functions,
- isolate->functionDefs);
+ isolate->TheModuleProvider = new JnjvmModuleProvider(isolate->module);
mvm::jit::protectEngine->lock();
mvm::jit::executionEngine->addModuleProvider(isolate->TheModuleProvider);
mvm::jit::protectEngine->unlock();
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Mon May 19 06:56:16 2008
@@ -232,7 +232,8 @@
} else {
JavaObject* loader = compilingClass->classLoader;
ServiceDomain* vm = ServiceDomain::getDomainFromLoader(loader);
- isolateLocal = new LoadInst(vm->llvmDelegatee(), "", currentBlock);
+ LLVMServiceInfo* LSI = module->getServiceInfo(vm);
+ isolateLocal = LSI->getDelegatee(this);
Value* cmp = new ICmpInst(ICmpInst::ICMP_NE, lastArg,
isolateLocal, "", currentBlock);
BasicBlock* ifTrue = createBasicBlock("true service call");
@@ -471,7 +472,8 @@
} else {
JavaObject* loader = compilingClass->classLoader;
ServiceDomain* vm = ServiceDomain::getDomainFromLoader(loader);
- isolateLocal = new LoadInst(vm->llvmDelegatee(), "", currentBlock);
+ LLVMServiceInfo* LSI = module->getServiceInfo(vm);
+ isolateLocal = LSI->getDelegatee(this);
Value* cmp = new ICmpInst(ICmpInst::ICMP_NE, args[args.size() - 1],
isolateLocal, "", currentBlock);
BasicBlock* ifTrue = createBasicBlock("true service call");
@@ -635,7 +637,8 @@
} else {
JavaObject* loader = compilingClass->classLoader;
ServiceDomain* vm = ServiceDomain::getDomainFromLoader(loader);
- isolateLocal = new LoadInst(vm->llvmDelegatee(), "", currentBlock);
+ LLVMServiceInfo* LSI = module->getServiceInfo(vm);
+ isolateLocal = LSI->getDelegatee(this);
Value* cmp = new ICmpInst(ICmpInst::ICMP_NE, i, isolateLocal, "",
currentBlock);
BasicBlock* ifTrue = createBasicBlock("true service call");
@@ -1420,8 +1423,9 @@
if (!val) {
- Function* func = ctpInfo->infoOfStaticOrSpecialMethod(index, ACC_VIRTUAL,
- signature, meth);
+ Function* func =
+ (Function*)ctpInfo->infoOfStaticOrSpecialMethod(index, ACC_VIRTUAL,
+ signature, meth);
if (meth && meth->canBeInlined && meth != compilingMethod &&
inlineMethods[meth] == 0) {
@@ -1463,8 +1467,9 @@
}
if (!val) {
- Function* func = ctpInfo->infoOfStaticOrSpecialMethod(index, ACC_STATIC,
- signature, meth);
+ Function* func = (Function*)
+ ctpInfo->infoOfStaticOrSpecialMethod(index, ACC_STATIC,
+ signature, meth);
#ifdef MULTIPLE_VM
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaMetaJIT.cpp Mon May 19 06:56:16 2008
@@ -10,9 +10,6 @@
#include <stdarg.h>
#include <string.h>
-#include <llvm/Type.h>
-#include "llvm/ExecutionEngine/GenericValue.h"
-
#include "mvm/JIT.h"
#include "mvm/Method.h"
@@ -27,7 +24,6 @@
#include "JnjvmModule.h"
using namespace jnjvm;
-using namespace llvm;
void JavaJIT::invokeOnceVoid(Jnjvm* vm, JavaObject* loader,
char const* className, char const* func,
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jni.cpp Mon May 19 06:56:16 2008
@@ -9,8 +9,6 @@
#include <jni.h>
-#include "llvm/ExecutionEngine/GenericValue.h"
-
#include "JavaArray.h"
#include "JavaClass.h"
#include "JavaJIT.h"
Modified: vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/Jnjvm.h Mon May 19 06:56:16 2008
@@ -264,8 +264,6 @@
mvm::Lock* protectModule;
JnjvmModule* module;
JnjvmModuleProvider* TheModuleProvider;
- FunctionMap* functions;
- FunctionDefMap* functionDefs;
#ifndef MULTIPLE_GC
void* allocateObject(unsigned int sz, VirtualTable* VT) {
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Mon May 19 06:56:16 2008
@@ -18,6 +18,7 @@
#include "JavaTypes.h"
#include "Jnjvm.h"
#include "JnjvmModule.h"
+#include "JnjvmModuleProvider.h"
#include "LockedMap.h"
@@ -468,7 +469,7 @@
GlobalValue::GhostLinkage,
methodDef->printString(),
vm->module);
- vm->functionDefs->hash(methodFunction, methodDef);
+ vm->TheModuleProvider->addFunction(methodFunction, methodDef);
}
return methodFunction;
}
@@ -835,6 +836,33 @@
}
}
+#ifdef SERVICE_VM
+LLVMServiceInfo* JnjvmModule::getServiceInfo(ServiceDomain* S) {
+ service_iterator SI = serviceMap.find(S);
+ if (SI != serviceMap.end()) {
+ return SI->second;
+ } else {
+ LLVMServiceInfo* LSI = new LLVMServiceInfo(sign);
+ serviceMap.insert(std::make_pair(S, LSI));
+ return LSI;
+ }
+}
+
+Value* LLVMServiceInfo::getDelegatee(JavaJIT* jit) {
+ if (!delegateeGV) {
+ Constant* cons =
+ ConstantExpr::getIntToPtr(ConstantInt::get(Type::Int64Ty, uint64(vm)),
+ mvm::jit::ptrType);
+ delegateeGV = new GlobalVariable(mvm::jit::ptrType, true,
+ GlobalValue::ExternalLinkage,
+ cons, "",
+ vm->module);
+ }
+ return new LoadInst(delegateeGV, "", jit->currentBlock);
+}
+
+#endif
+
#include "LLVMRuntime.cpp"
@@ -1028,3 +1056,7 @@
func->setName(name);
func->setLinkage(llvm::GlobalValue::ExternalLinkage);
}
+
+void* JnjvmModule::getMethod(JavaMethod* meth) {
+ return getMethodInfo(meth)->getMethod();
+}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h Mon May 19 06:56:16 2008
@@ -194,6 +194,17 @@
};
+#ifdef SERVICE_VM
+class LLVMServiceInfo {
+private:
+ ServiceDomain* vm;
+ llvm::GlobalVariable* delegateeGV;
+
+public:
+ llvm::Value* getDelegatee(JavaJIT* jit);
+};
+#endif
+
class JnjvmModule : public llvm::Module {
friend class LLVMClassInfo;
private:
@@ -201,6 +212,12 @@
std::map<const Signdef*, LLVMSignatureInfo*> signatureMap;
std::map<const JavaField*, LLVMFieldInfo*> fieldMap;
std::map<const JavaMethod*, LLVMMethodInfo*> methodMap;
+
+#ifdef SERVICE_VM
+ std::map<const ServiceDomain*, LLVMServiceInfo*> serviceMap;
+ typedef std::map<const ServiceDomain*, LLVMServiceInfo*>::iterator
+ class_iterator;
+#endif
typedef std::map<const CommonClass*, LLVMCommonClassInfo*>::iterator
class_iterator;
@@ -318,11 +335,15 @@
void resolveVirtualClass(Class* cl);
void resolveStaticClass(Class* cl);
void setMethod(JavaMethod* meth, const char* name);
+ void* getMethod(JavaMethod* meth);
LLVMSignatureInfo* getSignatureInfo(Signdef*);
LLVMCommonClassInfo* getClassInfo(CommonClass*);
LLVMFieldInfo* getFieldInfo(JavaField*);
LLVMMethodInfo* getMethodInfo(JavaMethod*);
+#ifdef SERVICE_VM
+ LLVMServiceInfo* getServiceInfo(ServiceDomain*);
+#endif
explicit JnjvmModule(const std::string &ModuleID) : llvm::Module(ModuleID) {}
void initialise();
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp Mon May 19 06:56:16 2008
@@ -43,6 +43,26 @@
return meth;
}
+bool JnjvmModuleProvider::lookupCallback(Function* F, std::pair<Class*, uint32>& res) {
+ callback_iterator CI = callbacks.find(F);
+ if (CI != callbacks.end()) {
+ res.first = CI->second.first;
+ res.second = CI->second.second;
+ return true;
+ } else {
+ return false;
+ }
+}
+
+bool JnjvmModuleProvider::lookupFunction(Function* F, JavaMethod*& meth) {
+ function_iterator CI = functions.find(F);
+ if (CI != functions.end()) {
+ meth = CI->second;
+ return true;
+ } else {
+ return false;
+ }
+}
bool JnjvmModuleProvider::materializeFunction(Function *F,
std::string *ErrInfo) {
@@ -53,12 +73,14 @@
if (!(F->hasNotBeenReadFromBitcode()))
return false;
- JavaMethod* meth = functionDefs->lookup(F);
+ JavaMethod* meth = 0;
+ lookupFunction(F, meth);
if (!meth) {
// It's a callback
- std::pair<Class*, uint32> * p = functions->lookup(F);
- meth = staticLookup(p->first, p->second);
+ std::pair<Class*, uint32> p;
+ lookupCallback(F, p);
+ meth = staticLookup(p.first, p.second);
}
void* val = meth->compiledPtr();
@@ -94,3 +116,27 @@
return mvm::jit::executionEngine->getPointerToGlobal(func);
}
+
+llvm::Function* JnjvmModuleProvider::addCallback(Class* cl, uint32 index,
+ Signdef* sign, bool stat) {
+ const llvm::FunctionType* type = 0;
+ JnjvmModule* M = cl->isolate->module;
+ LLVMSignatureInfo* LSI = M->getSignatureInfo(sign);
+
+ if (stat) {
+ type = LSI->getStaticType();
+ } else {
+ type = LSI->getVirtualType();
+ }
+ Function* func = llvm::Function::Create(type,
+ llvm::GlobalValue::GhostLinkage,
+ "callback",
+ cl->isolate->module);
+
+ callbacks.insert(std::make_pair(func, std::make_pair(cl, index)));
+ return func;
+}
+
+void JnjvmModuleProvider::addFunction(Function* F, JavaMethod* meth) {
+ functions.insert(std::make_pair(F, meth));
+}
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.h Mon May 19 06:56:16 2008
@@ -20,19 +20,59 @@
class JnjvmModule;
+class FunctionMap :
+ public LockedMap<llvm::Function*, std::pair<Class*, uint32>*,
+ std::less<llvm::Function*> > {
+public:
+ static VirtualTable* VT;
+
+ FunctionMap() {
+ lock = mvm::Lock::allocNormal();
+ }
+
+ virtual void TRACER;
+};
+
+class FunctionDefMap :
+ public LockedMap<llvm::Function*, JavaMethod*,
+ std::less<llvm::Function*> > {
+public:
+ static VirtualTable* VT;
+
+ FunctionDefMap() {
+ lock = mvm::Lock::allocNormal();
+ }
+
+ virtual void TRACER;
+};
+
+
class JnjvmModuleProvider : public ModuleProvider {
private:
JavaMethod* staticLookup(Class* caller, uint32 index);
+
+ std::map<llvm::Function*, JavaMethod*> functions;
+ std::map<llvm::Function*, std::pair<Class*, uint32> > callbacks;
+
+ bool lookupCallback(llvm::Function*, std::pair<Class*, uint32>&);
+ bool lookupFunction(llvm::Function*, JavaMethod*& meth);
+
+ typedef std::map<llvm::Function*, JavaMethod*>::iterator
+ function_iterator;
+
+ typedef std::map<llvm::Function*, std::pair<Class*, uint32> >::iterator
+ callback_iterator;
+
public:
- FunctionMap* functions;
- FunctionDefMap* functionDefs;
- JnjvmModuleProvider(JnjvmModule *m, FunctionMap* fm, FunctionDefMap* fdm) {
+
+ JnjvmModuleProvider(JnjvmModule *m) {
TheModule = (Module*)m;
- functions = fm;
- functionDefs= fdm;
}
+ llvm::Function* addCallback(Class* cl, uint32 index, Signdef* sign,
+ bool stat);
+ void addFunction(llvm::Function* F, JavaMethod* meth);
bool materializeFunction(Function *F, std::string *ErrInfo = 0);
void* materializeFunction(JavaMethod* meth);
Modified: vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/LockedMap.h Mon May 19 06:56:16 2008
@@ -221,30 +221,6 @@
virtual void TRACER;
};
-class FunctionMap :
- public LockedMap<llvm::Function*, std::pair<Class*, uint32>*, std::less<llvm::Function*> > {
-public:
- static VirtualTable* VT;
-
- FunctionMap() {
- lock = mvm::Lock::allocNormal();
- }
-
- virtual void TRACER;
-};
-
-class FunctionDefMap :
- public LockedMap<llvm::Function*, JavaMethod*, std::less<llvm::Function*> > {
-public:
- static VirtualTable* VT;
-
- FunctionDefMap() {
- lock = mvm::Lock::allocNormal();
- }
-
- virtual void TRACER;
-};
-
class TypeMap :
public LockedMap<const UTF8*, Typedef*, ltutf8 > {
public:
Modified: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.cpp Mon May 19 06:56:16 2008
@@ -7,8 +7,6 @@
//
//===----------------------------------------------------------------------===//
-#include "llvm/ExecutionEngine/GenericValue.h"
-
#include <dlfcn.h>
#include <stdlib.h>
#include <string.h>
Modified: vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/NativeUtil.h Mon May 19 06:56:16 2008
@@ -12,9 +12,6 @@
#include <jni.h>
-#include "llvm/ExecutionEngine/ExecutionEngine.h"
-
-
namespace jnjvm {
class ArrayObject;
Modified: vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.cpp Mon May 19 06:56:16 2008
@@ -15,18 +15,12 @@
#include "JnjvmModuleProvider.h"
#include "ServiceDomain.h"
-#include <llvm/GlobalVariable.h>
-#include <llvm/Instructions.h>
-
extern "C" struct JNINativeInterface JNI_JNIEnvTable;
extern "C" const struct JNIInvokeInterface JNI_JavaVMTable;
using namespace jnjvm;
-llvm::Function* ServiceDomain::serviceCallStartLLVM;
-llvm::Function* ServiceDomain::serviceCallStopLLVM;
-
JavaMethod* ServiceDomain::ServiceErrorInit;
Class* ServiceDomain::ServiceErrorClass;
ServiceDomain* ServiceDomain::bootstrapDomain;
@@ -36,31 +30,6 @@
JavaMethod* ServiceDomain::uninstallBundle;
-GlobalVariable* ServiceDomain::llvmDelegatee() {
- if (!_llvmDelegatee) {
- lock->lock();
- if (!_llvmDelegatee) {
- const Type* pty = mvm::jit::ptrType;
-
- mvm::jit::protectConstants();//->lock();
- Constant* cons =
- ConstantExpr::getIntToPtr(ConstantInt::get(Type::Int64Ty, uint64(this)),
- pty);
- mvm::jit::unprotectConstants();//->unlock();
-
- this->protectModule->lock();
- _llvmDelegatee = new GlobalVariable(pty, true,
- GlobalValue::ExternalLinkage,
- cons, "",
- this->module);
- this->protectModule->unlock();
- }
- lock->unlock();
- }
- return _llvmDelegatee;
-}
-
-
void ServiceDomain::destroyer(size_t sz) {
Jnjvm::destroyer(sz);
delete lock;
@@ -85,7 +54,7 @@
service->bootClasspath = callingVM->bootClasspath;
service->functions = vm_new(service, FunctionMap)();
service->functionDefs = vm_new(service, FunctionDefMap)();
- service->module = new llvm::Module("Service Domain");
+ service->module = new JnjvmModule("Service Domain");
std::string str =
mvm::jit::executionEngine->getTargetData()->getStringRepresentation();
service->module->setDataLayout(str);
Modified: vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.h?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/ServiceDomain.h Mon May 19 06:56:16 2008
@@ -17,11 +17,6 @@
#include "JavaIsolate.h"
-namespace llvm {
- class GlobalVariable;
- class Function;
-}
-
namespace mvm {
class Lock;
}
@@ -35,8 +30,6 @@
}DomainState;
class ServiceDomain : public JavaIsolate {
-private:
- llvm::GlobalVariable* _llvmDelegatee;
public:
static VirtualTable* VT;
@@ -44,7 +37,6 @@
virtual void TRACER;
virtual void destroyer(size_t sz);
static ServiceDomain* allocateService(JavaIsolate* callingVM);
- llvm::GlobalVariable* llvmDelegatee();
static void serviceError(ServiceDomain* error, const char* str);
mvm::Lock* lock;
Modified: vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp?rev=51245&r1=51244&r2=51245&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/VirtualTables.cpp Mon May 19 06:56:16 2008
@@ -69,8 +69,6 @@
INIT(StringMap);
INIT(TypeMap);
INIT(StaticInstanceMap);
- INIT(FunctionMap);
- INIT(FunctionDefMap);
INIT(JavaIsolate);
INIT(JavaString);
INIT(CacheNode);
@@ -214,14 +212,10 @@
loadedFields->MARK_AND_TRACE;
javaTypes->MARK_AND_TRACE;
TRACE_VECTOR(JavaObject*, gc_allocator, globalRefs);
- //globalRefsLock->MARK_AND_TRACE;
- functions->MARK_AND_TRACE;
- functionDefs->MARK_AND_TRACE;
#ifdef MULTIPLE_VM
statics->MARK_AND_TRACE;
delegatees->MARK_AND_TRACE;
#endif
- //protectModule->MARK_AND_TRACE;
}
void Reader::TRACER {
@@ -294,18 +288,6 @@
}
}
-void FunctionMap::TRACER {
- for (iterator i = map.begin(), e = map.end(); i!= e; ++i) {
- i->second->first->MARK_AND_TRACE;
- }
-}
-
-void FunctionDefMap::TRACER {
- for (iterator i = map.begin(), e = map.end(); i!= e; ++i) {
- i->second->MARK_AND_TRACE;
- }
-}
-
void TypeMap::TRACER {
for (iterator i = map.begin(), e = map.end(); i!= e; ++i) {
i->second->MARK_AND_TRACE;
More information about the llvm-commits
mailing list