[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