[vmkit-commits] [vmkit] r195694 - remove the llvm symbols cache of classes and methods because it will become useless with mcjit
Gael Thomas
gael.thomas at lip6.fr
Mon Nov 25 14:48:00 PST 2013
Author: gthomas
Date: Mon Nov 25 16:48:00 2013
New Revision: 195694
URL: http://llvm.org/viewvc/llvm-project?rev=195694&view=rev
Log:
remove the llvm symbols cache of classes and methods because it will become useless with mcjit
Modified:
vmkit/branches/mcjit/include/j3/j3class.h
vmkit/branches/mcjit/include/j3/j3classloader.h
vmkit/branches/mcjit/include/j3/j3method.h
vmkit/branches/mcjit/lib/j3/vm/j3class.cc
vmkit/branches/mcjit/lib/j3/vm/j3method.cc
Modified: vmkit/branches/mcjit/include/j3/j3class.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3class.h?rev=195694&r1=195693&r2=195694&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3class.h (original)
+++ vmkit/branches/mcjit/include/j3/j3class.h Mon Nov 25 16:48:00 2013
@@ -198,7 +198,6 @@ namespace j3 {
J3Attributes* _attributes;
- llvm::GlobalValue* _nomcjitDescriptor;
J3ClassBytes* _bytes;
size_t nbCtp;
uint8_t* ctpTypes;
@@ -265,7 +264,6 @@ namespace j3 {
class J3ArrayClass : public J3ObjectType {
llvm::Type* _llvmType;
J3Type* _component;
- llvm::GlobalValue* _nomcjitDescriptor;
void doResolve(J3Field* hiddenFields, size_t nbHiddenFields);
void doInitialise();
Modified: vmkit/branches/mcjit/include/j3/j3classloader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3classloader.h?rev=195694&r1=195693&r2=195694&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3classloader.h (original)
+++ vmkit/branches/mcjit/include/j3/j3classloader.h Mon Nov 25 16:48:00 2013
@@ -10,7 +10,6 @@
#include "j3/j3object.h"
namespace llvm {
- class ExecutionEngine;
class DataLayout;
class Type;
class Function;
Modified: vmkit/branches/mcjit/include/j3/j3method.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3method.h?rev=195694&r1=195693&r2=195694&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3method.h (original)
+++ vmkit/branches/mcjit/include/j3/j3method.h Mon Nov 25 16:48:00 2013
@@ -65,8 +65,6 @@ namespace j3 {
J3MethodType* _methodType;
J3Attributes* _attributes;
uint32_t _index;
- llvm::Function* _nomcjitFunction;
- llvm::GlobalValue* _nomcjitDescriptor;
llvm::Function* _compiledFunction;
char* volatile _llvmAllNames; /* md_ + llvm Name */
size_t _llvmAllNamesLength;
Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=195694&r1=195693&r2=195694&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Mon Nov 25 16:48:00 2013
@@ -198,11 +198,9 @@ size_t J3Class::size() {
}
llvm::GlobalValue* J3Class::llvmDescriptor(llvm::Module* module) {
- if(!_nomcjitDescriptor) {
- _nomcjitDescriptor = llvm::cast<llvm::GlobalValue>(module->getOrInsertGlobal(nativeName(), loader()->vm()->typeJ3Class));
- loader()->vm()->ee()->addGlobalMapping(_nomcjitDescriptor, this);
- }
- return _nomcjitDescriptor;
+ llvm::GlobalValue* res = llvm::cast<llvm::GlobalValue>(module->getOrInsertGlobal(nativeName(), loader()->vm()->typeJ3Class));
+ loader()->vm()->ee()->updateGlobalMapping(res, this);
+ return res;
}
@@ -836,11 +834,9 @@ void J3ArrayClass::doInitialise() {
}
llvm::GlobalValue* J3ArrayClass::llvmDescriptor(llvm::Module* module) {
- if(!_nomcjitDescriptor) {
- _nomcjitDescriptor = llvm::cast<llvm::GlobalValue>(module->getOrInsertGlobal(nativeName(), loader()->vm()->typeJ3ArrayClass));
- loader()->vm()->ee()->updateGlobalMapping(_nomcjitDescriptor, this);
- }
- return _nomcjitDescriptor;
+ llvm::GlobalValue* res = llvm::cast<llvm::GlobalValue>(module->getOrInsertGlobal(nativeName(), loader()->vm()->typeJ3ArrayClass));
+ loader()->vm()->ee()->updateGlobalMapping(res, this);
+ return res;
}
llvm::Type* J3ArrayClass::llvmType() {
Modified: vmkit/branches/mcjit/lib/j3/vm/j3method.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3method.cc?rev=195694&r1=195693&r2=195694&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Mon Nov 25 16:48:00 2013
@@ -346,32 +346,26 @@ char* J3Method::llvmDescriptorName(J3Cla
}
llvm::GlobalValue* J3Method::llvmDescriptor(llvm::Module* module) {
- if(!_nomcjitDescriptor) {
- J3ClassLoader* loader = cl()->loader();
- _nomcjitDescriptor = llvm::cast<llvm::GlobalValue>(module->getOrInsertGlobal(llvmDescriptorName(), loader->vm()->typeJ3Method));
- loader->vm()->ee()->addGlobalMapping(_nomcjitDescriptor, this);
- }
-
- return _nomcjitDescriptor;
+ J3ClassLoader* loader = cl()->loader();
+ llvm::GlobalValue* res = llvm::cast<llvm::GlobalValue>(module->getOrInsertGlobal(llvmDescriptorName(), loader->vm()->typeJ3Method));
+ loader->vm()->ee()->updateGlobalMapping(res, this);
+ return res;
}
llvm::Function* J3Method::llvmFunction(bool isStub, llvm::Module* module, J3Class* from) {
- if(!_nomcjitFunction) {
- llvm::Function* res;
+ llvm::Function* res;
+
+ if(isStub && !_compiledFunction) {
+ char id[llvmFunctionNameLength() + 16];
+ memcpy(id, llvmFunctionName(), llvmFunctionNameLength());
+ memcpy(id + llvmFunctionNameLength(), "_stub", 6);
+ res = (llvm::Function*)module->getOrInsertFunction(id, methodType(from ? from : cl())->llvmType());
+ } else
+ res = (llvm::Function*)module->getOrInsertFunction(llvmFunctionName(from), methodType(from ? from : cl())->llvmType());
- if(isStub && !_compiledFunction) {
- char id[llvmFunctionNameLength() + 16];
- memcpy(id, llvmFunctionName(), llvmFunctionNameLength());
- memcpy(id + llvmFunctionNameLength(), "_stub", 6);
- res = (llvm::Function*)module->getOrInsertFunction(id, methodType(from ? from : cl())->llvmType());
- } else
- res = (llvm::Function*)module->getOrInsertFunction(llvmFunctionName(from), methodType(from ? from : cl())->llvmType());
-
- _nomcjitFunction = res;
- cl()->loader()->vm()->ee()->addGlobalMapping(_nomcjitFunction, functionPointerOrTrampoline());
- }
+ cl()->loader()->vm()->ee()->updateGlobalMapping(res, functionPointerOrTrampoline());
- return _nomcjitFunction;
+ return res;
}
void J3Method::dump() {
More information about the vmkit-commits
mailing list