[vmkit-commits] [vmkit] r91457 - in /vmkit/trunk: include/jnjvm/ lib/JnJVM/Compiler/ lib/JnJVM/LLVMRuntime/ lib/JnJVM/VMCore/
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Dec 15 13:55:42 PST 2009
Author: geoffray
Date: Tue Dec 15 15:55:42 2009
New Revision: 91457
URL: http://llvm.org/viewvc/llvm-project?rev=91457&view=rev
Log:
Remove JavaCache and Enveloppe classes, which are not needed anymore.
Removed:
vmkit/trunk/lib/JnJVM/VMCore/JavaCache.h
Modified:
vmkit/trunk/include/jnjvm/JnjvmModule.h
vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.h
vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp
vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp
vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp
vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp
vmkit/trunk/lib/JnJVM/LLVMRuntime/runtime-default.ll
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h
vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
vmkit/trunk/lib/JnJVM/VMCore/LinkJavaRuntime.h
Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Tue Dec 15 15:55:42 2009
@@ -37,12 +37,10 @@
class ArrayObject;
class Attribut;
-class CacheNode;
class CommonClass;
class Class;
class ClassArray;
class ClassPrimitive;
-class Enveloppe;
class JavaConstantPool;
class JavaField;
class JavaMethod;
@@ -232,8 +230,6 @@
static const llvm::Type* JavaClassArrayType;
static const llvm::Type* JavaClassPrimitiveType;
static const llvm::Type* JavaCacheType;
- static const llvm::Type* EnveloppeType;
- static const llvm::Type* CacheNodeType;
static const llvm::Type* ConstantPoolType;
static const llvm::Type* UTF8Type;
static const llvm::Type* JavaMethodType;
@@ -282,9 +278,7 @@
llvm::Function* GetArrayClassFunction;
#ifdef ISOLATE_SHARING
- llvm::Function* GetCtpCacheNodeFunction;
llvm::Function* GetCtpClassFunction;
- llvm::Function* EnveloppeLookupFunction;
llvm::Function* GetJnjvmExceptionClassFunction;
llvm::Function* GetJnjvmArrayClassFunction;
llvm::Function* StaticCtpLookupFunction;
@@ -457,7 +451,6 @@
virtual llvm::Constant* getVirtualTable(JavaVirtualTable*) = 0;
virtual llvm::Constant* getMethodInClass(JavaMethod* meth) = 0;
- virtual llvm::Constant* getEnveloppe(Enveloppe* enveloppe) = 0;
virtual llvm::Constant* getString(JavaString* str) = 0;
virtual llvm::Constant* getStringPtr(JavaString** str) = 0;
virtual llvm::Constant* getConstantPool(JavaConstantPool* ctp) = 0;
@@ -564,7 +557,6 @@
virtual llvm::Constant* getVirtualTable(JavaVirtualTable*);
virtual llvm::Constant* getMethodInClass(JavaMethod* meth);
- virtual llvm::Constant* getEnveloppe(Enveloppe* enveloppe);
virtual llvm::Constant* getString(JavaString* str);
virtual llvm::Constant* getStringPtr(JavaString** str);
virtual llvm::Constant* getConstantPool(JavaConstantPool* ctp);
@@ -633,7 +625,6 @@
virtual llvm::Constant* getVirtualTable(JavaVirtualTable*);
virtual llvm::Constant* getMethodInClass(JavaMethod* meth);
- virtual llvm::Constant* getEnveloppe(Enveloppe* enveloppe);
virtual llvm::Constant* getString(JavaString* str);
virtual llvm::Constant* getStringPtr(JavaString** str);
virtual llvm::Constant* getConstantPool(JavaConstantPool* ctp);
@@ -657,8 +648,6 @@
//--------------- Static compiler specific functions -----------------------//
llvm::Constant* CreateConstantFromVT(JavaVirtualTable* VT);
llvm::Constant* CreateConstantFromUTF8(const UTF8* val);
- llvm::Constant* CreateConstantFromEnveloppe(Enveloppe* val);
- llvm::Constant* CreateConstantFromCacheNode(CacheNode* CN);
llvm::Constant* CreateConstantFromCommonClass(CommonClass* cl);
llvm::Constant* CreateConstantFromClass(Class* cl);
llvm::Constant* CreateConstantFromClassPrimitive(ClassPrimitive* cl);
@@ -688,7 +677,6 @@
std::map<const Class*, llvm::Constant*> staticInstances;
std::map<const JavaConstantPool*, llvm::Constant*> constantPools;
std::map<const JavaString*, llvm::Constant*> strings;
- std::map<const Enveloppe*, llvm::Constant*> enveloppes;
std::map<const JavaMethod*, llvm::Constant*> nativeFunctions;
std::map<const UTF8*, llvm::Constant*> utf8s;
std::map<const Class*, llvm::Constant*> virtualMethods;
@@ -725,9 +713,6 @@
typedef std::map<const JavaString*, llvm::Constant*>::iterator
string_iterator;
- typedef std::map<const Enveloppe*, llvm::Constant*>::iterator
- enveloppe_iterator;
-
typedef std::map<const JavaMethod*, llvm::Constant*>::iterator
native_function_iterator;
Modified: vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp Tue Dec 15 15:55:42 2009
@@ -19,7 +19,6 @@
#include "mvm/JIT.h"
-#include "JavaCache.h"
#include "JavaConstantPool.h"
#include "JavaJIT.h"
#include "JavaString.h"
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Tue Dec 15 15:55:42 2009
@@ -21,7 +21,6 @@
#include "jnjvm/JnjvmModule.h"
#include "JavaArray.h"
-#include "JavaCache.h"
#include "JavaConstantPool.h"
#include "JavaString.h"
#include "JavaThread.h"
@@ -193,23 +192,6 @@
abort();
}
-Constant* JavaAOTCompiler::getEnveloppe(Enveloppe* enveloppe) {
- enveloppe_iterator SI = enveloppes.find(enveloppe);
- if (SI != enveloppes.end()) {
- return SI->second;
- } else {
- Module& Mod = *getLLVMModule();
- GlobalVariable* varGV =
- new GlobalVariable(Mod, JnjvmModule::EnveloppeType->getContainedType(0),
- false, GlobalValue::InternalLinkage, 0, "");
- enveloppes.insert(std::make_pair(enveloppe, varGV));
-
- Constant* C = CreateConstantFromEnveloppe(enveloppe);
- varGV->setInitializer(C);
- return varGV;
- }
-}
-
Constant* JavaAOTCompiler::getJavaClass(CommonClass* cl) {
java_class_iterator End = javaClasses.end();
java_class_iterator I = javaClasses.find(cl);
@@ -769,43 +751,6 @@
}
-Constant* JavaAOTCompiler::CreateConstantFromCacheNode(CacheNode* CN) {
- const StructType* STy =
- dyn_cast<StructType>(JnjvmModule::CacheNodeType->getContainedType(0));
-
- std::vector<Constant*> Elmts;
- Elmts.push_back(Constant::getNullValue(STy->getContainedType(0)));
- Elmts.push_back(Constant::getNullValue(STy->getContainedType(1)));
- Elmts.push_back(Constant::getNullValue(STy->getContainedType(2)));
- Elmts.push_back(getEnveloppe(CN->enveloppe));
-
- return ConstantStruct::get(STy, Elmts);
-}
-
-Constant* JavaAOTCompiler::CreateConstantFromEnveloppe(Enveloppe* val) {
-
- const StructType* STy =
- dyn_cast<StructType>(JnjvmModule::EnveloppeType->getContainedType(0));
- const StructType* CNTy =
- dyn_cast<StructType>(JnjvmModule::CacheNodeType->getContainedType(0));
-
- std::vector<Constant*> Elmts;
-
- Constant* firstCache = CreateConstantFromCacheNode(val->firstCache);
- Elmts.push_back(new GlobalVariable(*getLLVMModule(), CNTy, false,
- GlobalValue::InternalLinkage,
- firstCache, ""));
- Elmts.push_back(getUTF8(val->methodName));
- Elmts.push_back(getUTF8(val->methodSign));
-
- Elmts.push_back(Constant::getNullValue(Type::getInt32Ty(getGlobalContext())));
- Elmts.push_back(getNativeClass(val->classDef));
- Elmts.push_back(firstCache);
-
- return ConstantStruct::get(STy, Elmts);
-
-}
-
Constant* JavaAOTCompiler::CreateConstantFromAttribut(Attribut& attribut) {
const StructType* STy =
dyn_cast<StructType>(JnjvmModule::AttributType->getContainedType(0));
@@ -991,14 +936,6 @@
// nbAttributs
MethodElts.push_back(ConstantInt::get(Type::getInt16Ty(getGlobalContext()), method.nbAttributs));
- // enveloppes
- // already allocated by the JIT, don't reallocate them.
- MethodElts.push_back(Constant::getNullValue(JnjvmModule::EnveloppeType));
-
- // nbEnveloppes
- // 0 because we're not allocating here.
- MethodElts.push_back(ConstantInt::get(Type::getInt16Ty(getGlobalContext()), 0));
-
// classDef
MethodElts.push_back(getNativeClass(method.classDef));
@@ -1698,8 +1635,6 @@
(unsigned long long int) constantPools.size());
fprintf(stderr, "Number of strings : %llu\n",
(unsigned long long int) strings.size());
- fprintf(stderr, "Number of enveloppes : %llu\n",
- (unsigned long long int) enveloppes.size());
fprintf(stderr, "Number of native functions : %llu\n",
(unsigned long long int) nativeFunctions.size());
fprintf(stderr, "----------------- Total size in .data ------------------\n");
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.cpp Tue Dec 15 15:55:42 2009
@@ -26,7 +26,6 @@
#include "debug.h"
#include "JavaArray.h"
-#include "JavaCache.h"
#include "JavaClass.h"
#include "JavaConstantPool.h"
#include "JavaObject.h"
@@ -907,7 +906,6 @@
readExceptionTable(reader, codeLen);
exploreOpcodes(&compilingClass->bytes->elements[start], codeLen);
- nbEnveloppes = 0;
if (returnType != Type::getVoidTy(getGlobalContext())) {
endNode = PHINode::Create(returnType, "", endBlock);
@@ -1126,11 +1124,6 @@
readExceptionTable(reader, codeLen);
exploreOpcodes(&compilingClass->bytes->elements[start], codeLen);
- compilingMethod->enveloppes =
- new (compilingClass->classLoader->allocator, "Enveloppes")
- Enveloppe[nbEnveloppes];
- compilingMethod->nbEnveloppes = nbEnveloppes;
- nbEnveloppes = 0;
endBlock = createBasicBlock("end");
@@ -2188,88 +2181,6 @@
JITVerifyNull(args[0]);
-
-#if 0
-
-
- Value* zero = module->constantZero;
- Value* one = module->constantOne;
-
-#ifndef ISOLATE_SHARING
- // ok now the cache
- Enveloppe& enveloppe = buggyVirtual ?
- *(new (compilingClass->classLoader->allocator, "Enveloppe") Enveloppe()) :
- compilingMethod->enveloppes[nbEnveloppes++];
- if (!inlining)
- enveloppe.initialise(compilingClass, name, signature->keyName);
-
- Value* llvmEnv = TheCompiler->getEnveloppe(&enveloppe);
-#else
- Value* llvmEnv = getConstantPoolAt(index,
- module->EnveloppeLookupFunction,
- module->EnveloppeType, 0, false);
-#endif
-
- Value* args1[2] = { zero, zero };
- Value* cachePtr = GetElementPtrInst::Create(llvmEnv, args1, args1 + 2,
- "", currentBlock);
- Value* cache = new LoadInst(cachePtr, "", currentBlock);
-
- Value* VT = CallInst::Create(module->GetVTFunction, args[0], "",
- currentBlock);
- Value* args3[2] = { zero, one };
- Value* lastCiblePtr = GetElementPtrInst::Create(cache, args3, args3 + 2, "",
- currentBlock);
- Value* lastCible = new LoadInst(lastCiblePtr, "", currentBlock);
-
- Value* cmp = new ICmpInst(*currentBlock, ICmpInst::ICMP_EQ, VT, lastCible,
- "");
-
- BasicBlock* ifTrue = createBasicBlock("cache ok");
- BasicBlock* ifFalse = createBasicBlock("cache not ok");
- BranchInst::Create(ifTrue, ifFalse, cmp, currentBlock);
-
- currentBlock = ifFalse;
- Value* _meth = invoke(module->InterfaceLookupFunction, cache, args[0],
- "", ifFalse);
- Value* meth = new BitCastInst(_meth, virtualPtrType, "",
- currentBlock);
-#ifdef ISOLATE_SHARING
- Value* cache2 = new LoadInst(cachePtr, "", currentBlock);
- Value* newCtpCache = CallInst::Create(module->GetCtpCacheNodeFunction,
- cache2, "", currentBlock);
- args.push_back(newCtpCache);
-#endif
- Value* ret = invoke(meth, args, "", currentBlock);
- if (node) {
- node->addIncoming(ret, currentBlock);
- }
- BranchInst::Create(endBlock, currentBlock);
-
- currentBlock = ifTrue;
-
- Value* methPtr = GetElementPtrInst::Create(cache, args1, args1 + 2,
- "", currentBlock);
-
- _meth = new LoadInst(methPtr, "", currentBlock);
- meth = new BitCastInst(_meth, virtualPtrType, "", currentBlock);
-
-#ifdef ISOLATE_SHARING
- args.pop_back();
- cache = new LoadInst(cachePtr, "", currentBlock);
- newCtpCache = CallInst::Create(module->GetCtpCacheNodeFunction,
- cache, "", currentBlock);
- args.push_back(newCtpCache);
-#endif
- ret = invoke(meth, args, "", currentBlock);
- BranchInst::Create(endBlock, currentBlock);
-
- if (node) {
- node->addIncoming(ret, currentBlock);
- }
-
-#else
-
CommonClass* cl = 0;
JavaMethod* meth = 0;
ctpInfo->infoOfMethod(index, ACC_VIRTUAL, cl, meth);
@@ -2375,7 +2286,6 @@
int32_indvar->addIncoming(int32_indvar_next, currentBlock);
ptr_table_0_lcssa->addIncoming(ptr_37, currentBlock);
-#endif
currentBlock = endBlock;
if (node) {
if (node->getType() == module->JavaObjectType) {
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.h?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.h (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJIT.h Tue Dec 15 15:55:42 2009
@@ -67,7 +67,6 @@
/// JavaJIT - Default constructor.
JavaJIT(JavaLLVMCompiler* C, JavaMethod* meth, llvm::Function* func) {
- nbEnveloppes = 0;
compilingMethod = meth;
compilingClass = meth->classDef;
upcalls = compilingClass->classLoader->bootstrapLoader->upcalls;
@@ -463,10 +462,6 @@
llvm::Instruction* invoke(llvm::Value *F, const char* Name,
llvm::BasicBlock *InsertAtEnd);
- /// nbEnveloppes - Number of enveloppes (ie invokeinterface) in this
- /// method.
- uint32 nbEnveloppes;
-
//===--------------------- Yield point support ---------------------------===//
void checkYieldPoint();
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJITCompiler.cpp Tue Dec 15 15:55:42 2009
@@ -112,13 +112,6 @@
return ConstantExpr::getIntToPtr(CI, Ty);
}
-Constant* JavaJITCompiler::getEnveloppe(Enveloppe* enveloppe) {
- assert(enveloppe && "No enveloppe given");
- ConstantInt* CI = ConstantInt::get(Type::getInt64Ty(getGlobalContext()),
- uint64(enveloppe));
- return ConstantExpr::getIntToPtr(CI, JnjvmModule::EnveloppeType);
-}
-
Constant* JavaJITCompiler::getJavaClass(CommonClass* cl) {
JavaObject* obj = cl->getClassDelegatee(JavaThread::get()->getJVM());
assert(obj && "Delegatee not created");
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp Tue Dec 15 15:55:42 2009
@@ -2561,7 +2561,6 @@
break;
case INVOKEINTERFACE :
- ++nbEnveloppes;
i += 4;
break;
Modified: vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp Tue Dec 15 15:55:42 2009
@@ -42,8 +42,6 @@
const llvm::Type* JnjvmModule::JavaArrayDoubleType = 0;
const llvm::Type* JnjvmModule::JavaArrayLongType = 0;
const llvm::Type* JnjvmModule::JavaArrayObjectType = 0;
-const llvm::Type* JnjvmModule::CacheNodeType = 0;
-const llvm::Type* JnjvmModule::EnveloppeType = 0;
const llvm::Type* JnjvmModule::ConstantPoolType = 0;
const llvm::Type* JnjvmModule::UTF8Type = 0;
const llvm::Type* JnjvmModule::JavaFieldType = 0;
@@ -148,12 +146,6 @@
JavaArrayObjectType =
PointerType::getUnqual(module->getTypeByName("ArrayObject"));
- CacheNodeType =
- PointerType::getUnqual(module->getTypeByName("CacheNode"));
-
- EnveloppeType =
- PointerType::getUnqual(module->getTypeByName("Enveloppe"));
-
JavaFieldType =
PointerType::getUnqual(module->getTypeByName("JavaField"));
JavaMethodType =
@@ -254,8 +246,6 @@
module->addTypeName("ArrayFloat", JavaArrayFloatType->getContainedType(0));
module->addTypeName("ArrayDouble", JavaArrayDoubleType->getContainedType(0));
module->addTypeName("ArrayObject", JavaArrayObjectType->getContainedType(0));
- module->addTypeName("CacheNode", CacheNodeType->getContainedType(0));
- module->addTypeName("Enveloppe", EnveloppeType->getContainedType(0));
InterfaceLookupFunction = module->getFunction("jnjvmInterfaceLookup");
MultiCallNewFunction = module->getFunction("jnjvmMultiCallNew");
@@ -325,8 +315,6 @@
GetFinalObjectFieldFunction = module->getFunction("getFinalObjectField");
#ifdef ISOLATE_SHARING
- EnveloppeLookupFunction = module->getFunction("jnjvmEnveloppeLookup");
- GetCtpCacheNodeFunction = module->getFunction("getCtpCacheNode");
GetCtpClassFunction = module->getFunction("getCtpClass");
GetJnjvmExceptionClassFunction =
module->getFunction("getJnjvmExceptionClass");
Modified: vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp Tue Dec 15 15:55:42 2009
@@ -755,15 +755,6 @@
Value* VT = new LoadInst(VTPtr, "", CI);
CI->replaceAllUsesWith(VT);
CI->eraseFromParent();
- } else if (V == module->GetCtpCacheNodeFunction) {
- Changed = true;
- Value* val = Call.getArgument(0);
- Value* indexes[2] = { module->constantZero, module->constantFour };
- Value* VTPtr = GetElementPtrInst::Create(val, indexes,
- indexes + 2, "", CI);
- Value* VT = new LoadInst(VTPtr, "", CI);
- CI->replaceAllUsesWith(VT);
- CI->eraseFromParent();
} else if (V == module->GetJnjvmArrayClassFunction) {
Changed = true;
Value* val = Call.getArgument(0);
Modified: vmkit/trunk/lib/JnJVM/LLVMRuntime/runtime-default.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/LLVMRuntime/runtime-default.ll?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/LLVMRuntime/runtime-default.ll (original)
+++ vmkit/trunk/lib/JnJVM/LLVMRuntime/runtime-default.ll Tue Dec 15 15:55:42 2009
@@ -21,13 +21,6 @@
%ArrayUInt32 = type { %JavaObject, i8*, [0 x i32] }
%ArrayUInt8 = type { %JavaObject, i8*, [0 x i8] }
-;;; The CacheNode type. The first field is the last called method.
-%CacheNode = type { i8*, %VT*, %CacheNode*, %Enveloppe* }
-
-;;; The Enveloppe type, which contains the first cache and all the info
-;;; to lookup in the constant pool.
-%Enveloppe = type { %CacheNode*, %UTF8*, %UTF8*, i32, %JavaClass*, %CacheNode }
-
;;; The task class mirror.
;;; Field 1: The class state
;;; Field 2: The initialization state
@@ -45,7 +38,7 @@
%JavaField = type { i8*, i16, %UTF8*, %UTF8*, %Attribut*, i16, %JavaClass*, i32,
i16, i8* }
-%JavaMethod = type { i8*, i16, %Attribut*, i16, %Enveloppe*, i16, %JavaClass*,
+%JavaMethod = type { i8*, i16, %Attribut*, i16, %JavaClass*,
%UTF8*, %UTF8*, i8, i8*, i32, i8* }
%JavaClassPrimitive = type { %JavaCommonClass, i32 }
Removed: vmkit/trunk/lib/JnJVM/VMCore/JavaCache.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaCache.h?rev=91456&view=auto
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaCache.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaCache.h (removed)
@@ -1,120 +0,0 @@
-//===------- JavaCache.h - Inline cache for virtual calls -----------------===//
-//
-// JnJVM
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// Caches in JnJVM are used when invoking interface methods in the JVM
-// bytecode. A cache is a linked-list of {class, method pointer} pairs that
-// were already encountered during the execution of the program. Its efficiency
-// is based on the hypothesis that for one invokeinterface location, the "this"
-// arguments will share most of the times the same class.
-//
-// At a given time, the first entry in the linked list is the last class of the
-// "this" parameter.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef JNJVM_JAVA_CACHE_H
-#define JNJVM_JAVA_CACHE_H
-
-#include "mvm/Allocator.h"
-#include "mvm/Object.h"
-#include "mvm/Threads/Locks.h"
-
-#include "types.h"
-
-#include "JnjvmConfig.h"
-#include "UTF8.h"
-
-namespace jnjvm {
-
-class Enveloppe;
-class JavaVirtualTable;
-
-/// CacheNode - A {class, method pointer} pair.
-class CacheNode : public mvm::PermanentObject {
-public:
-
- /// methPtr - The method pointer of this cache.
- void* methPtr;
-
- /// lastCible - The VT corresponding to this cache.
- JavaVirtualTable* lastCible;
-
- /// next - The next cache.
- CacheNode* next;
-
- /// enveloppe - The container to which this class belongs to.
- Enveloppe* enveloppe;
-
- /// CacheNode - Creates a CacheNode with empty values.
- CacheNode(Enveloppe* E) {
- lastCible = 0;
- methPtr = 0;
- next = 0;
- enveloppe = E;
- }
-};
-
-/// Enveloppe - A reference to the linked list of CacheNode.
-class Enveloppe : public mvm::PermanentObject {
-public:
-
- /// firstCache - The first entry in the linked list, hence the last
- /// class occurence for a given invokeinterface call.
- ///
- CacheNode *firstCache;
-
- /// methodName - The name of the method to be called.
- ///
- const UTF8* methodName;
-
- /// methodSign - The signature of the method to be called.
- ///
- const UTF8* methodSign;
-
- /// cacheLock - The linked list may be modified by concurrent thread. This
- /// lock ensures that the list stays consistent.
- ///
- mvm::SpinLock cacheLock;
-
- /// classDef - The class that is defining the enveloppe.
- ///
- Class* classDef;
-
- /// bootCache - The first cache allocated for the enveloppe.
- ///
- CacheNode bootCache;
-
- /// Enveloppe - Default constructor. Does nothing.
- ///
- Enveloppe() : bootCache(this) {}
-
- /// Enveloppe - Allocates the linked list with the given name and signature
- /// so as the resolution process knows which interface method the
- /// invokeinterface bytecode refers to.
- ///
- Enveloppe(Class* C, const UTF8* name, const UTF8* sign) :
- bootCache(this) {
-
- initialise(C, name, sign);
- }
-
- /// initialise - Initialises the enveloppe, and allocates the first cache.
- ///
- void initialise(Class* C, const UTF8* name, const UTF8* sign) {
- classDef = C;
- firstCache = &bootCache;
- methodName = name;
- methodSign = sign;
- }
-
-};
-
-} // end namespace jnjvm
-
-#endif
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Tue Dec 15 15:55:42 2009
@@ -14,7 +14,6 @@
#include "ClasspathReflect.h"
#include "JavaArray.h"
-#include "JavaCache.h"
#include "JavaClass.h"
#include "JavaCompiler.h"
#include "JavaConstantPool.h"
@@ -145,11 +144,6 @@
classDef->classLoader->allocator.Deallocate(cur);
}
- for (uint32 i = 0; i < nbEnveloppes; ++i) {
- Enveloppe* cur = &(enveloppes[i]);
- cur->~Enveloppe();
- classDef->classLoader->allocator.Deallocate(cur);
- }
}
UserClassPrimitive* CommonClass::toPrimitive(Jnjvm* vm) const {
@@ -645,7 +639,6 @@
canBeInlined = false;
offset = 0;
JInfo = 0;
- enveloppes = 0;
}
void JavaField::initialise(Class* cl, const UTF8* N, const UTF8* T, uint16 A) {
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Tue Dec 15 15:55:42 2009
@@ -32,7 +32,6 @@
class ArrayObject;
class ArrayUInt8;
class ArrayUInt16;
-class Enveloppe;
class Class;
class ClassArray;
class JavaArray;
@@ -1033,15 +1032,6 @@
///
uint16 nbAttributs;
- /// enveloppes - List of caches in this method. For all invokeinterface
- /// bytecode there is a corresponding cache.
- ///
- Enveloppe* enveloppes;
-
- /// nbEnveloppes - The number of enveloppes.
- ///
- uint16 nbEnveloppes;
-
/// classDef - The Java class where the method is defined.
///
Class* classDef;
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaConstantPool.h Tue Dec 15 15:55:42 2009
@@ -11,9 +11,10 @@
#define JNJVM_JAVA_CONSTANT_POOL_H
#include "mvm/Allocator.h"
-
#include "types.h"
+#include "UTF8.h"
+
namespace jnjvm {
class Class;
@@ -25,7 +26,6 @@
class Signdef;
class Typedef;
-
/// JavaConstantPool - This class represents a Java constant pool, a place where
/// a Java class makes external references such as classes and methods and
/// stores constants such as integers or UTF8s.
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaRuntimeJIT.cpp Tue Dec 15 15:55:42 2009
@@ -11,7 +11,6 @@
#include "ClasspathReflect.h"
#include "JavaArray.h"
-#include "JavaCache.h"
#include "JavaClass.h"
#include "JavaConstantPool.h"
#include "JavaString.h"
@@ -25,91 +24,6 @@
using namespace jnjvm;
-#if 0
-// Throws if the method is not found.
-extern "C" void* jnjvmInterfaceLookup(CacheNode* cache, JavaObject *obj) {
-
- llvm_gcroot(obj, 0);
-
- void* res = 0;
-
- BEGIN_NATIVE_EXCEPTION(1)
-
-
- Enveloppe* enveloppe = cache->enveloppe;
- JavaVirtualTable* ovt = (JavaVirtualTable*)obj->getVirtualTable();
-
-#ifndef SERVICE
- assert((obj->getClass()->isClass() &&
- obj->getClass()->asClass()->isInitializing()) &&
- "Class not ready in a virtual lookup.");
-#endif
-
- enveloppe->cacheLock.acquire();
- CacheNode* rcache = 0;
- CacheNode* tmp = enveloppe->firstCache;
- CacheNode* last = tmp;
-
- while (tmp) {
- if (ovt == tmp->lastCible) {
- rcache = tmp;
- break;
- } else {
- last = tmp;
- tmp = tmp->next;
- }
- }
-
- if (!rcache) {
- UserCommonClass* ocl = ovt->cl;
- UserClass* methodCl = 0;
- UserClass* lookup = ocl->isArray() ? ocl->super : ocl->asClass();
- JavaMethod* dmeth = lookup->lookupMethodDontThrow(enveloppe->methodName,
- enveloppe->methodSign,
- false, true, &methodCl);
-
- if (!dmeth) {
- enveloppe->cacheLock.release();
- JavaThread::get()->getJVM()->noSuchMethodError(lookup,
- enveloppe->methodName);
- }
-
-#if !defined(ISOLATE_SHARING) && !defined(SERVICE)
- assert(dmeth->classDef->isInitializing() &&
- "Class not ready in a virtual lookup.");
-#endif
-
- // Are we the first cache?
- if (cache == &(enveloppe->bootCache) && cache->lastCible == 0) {
- rcache = cache;
- } else {
- mvm::BumpPtrAllocator& alloc =
- enveloppe->classDef->classLoader->allocator;
- rcache = new(alloc, "CacheNode") CacheNode(enveloppe);
- }
-
- rcache->methPtr = dmeth->compiledPtr();
- rcache->lastCible = ovt;
-
- }
-
- if (enveloppe->firstCache != rcache) {
- CacheNode *f = enveloppe->firstCache;
- enveloppe->firstCache = rcache;
- last->next = rcache->next;
- rcache->next = f;
- }
-
- enveloppe->cacheLock.release();
-
- res = rcache->methPtr;
-
- END_NATIVE_EXCEPTION
-
- return res;
-}
-#endif
-
extern "C" void* jnjvmInterfaceLookup(UserClass* caller, uint32 index) {
void* res = 0;
@@ -730,14 +644,6 @@
#ifdef ISOLATE_SHARING
-extern "C" void* jnjvmEnveloppeLookup(UserClass* cl, uint32 index) {
- UserConstantPool* ctpInfo = cl->getConstantPool();
- mvm::Allocator* allocator = cl->classLoader->allocator;
- Enveloppe* enveloppe = new(allocator) Enveloppe(ctpInfo, index);
- ctpInfo->ctpRes[index] = enveloppe;
- return (void*)enveloppe;
-}
-
extern "C" void* jnjvmStaticCtpLookup(UserClass* cl, uint32 index) {
UserConstantPool* ctpInfo = cl->getConstantPool();
JavaConstantPool* shared = ctpInfo->getSharedPool();
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Tue Dec 15 15:55:42 2009
@@ -16,13 +16,13 @@
#include "types.h"
-#include "UTF8.h"
#include "mvm/Allocator.h"
#include "mvm/Object.h"
#include "JavaObject.h"
#include "JnjvmConfig.h"
+#include "UTF8.h"
namespace jnjvm {
Modified: vmkit/trunk/lib/JnJVM/VMCore/LinkJavaRuntime.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/LinkJavaRuntime.h?rev=91457&r1=91456&r2=91457&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/LinkJavaRuntime.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/LinkJavaRuntime.h Tue Dec 15 15:55:42 2009
@@ -13,7 +13,6 @@
namespace jnjvm {
- class CacheNode;
class JavaObject;
class UserClass;
class UserClassArray;
@@ -26,7 +25,7 @@
using namespace jnjvm;
-extern "C" void* jnjvmInterfaceLookup(CacheNode* cache, JavaObject *obj);
+extern "C" void* jnjvmInterfaceLookup(UserClass* caller, uint32 index);
extern "C" void* jnjvmVirtualFieldLookup(UserClass* caller, uint32 index);
extern "C" void* jnjvmStaticFieldLookup(UserClass* caller, uint32 index);
extern "C" void* jnjvmVirtualTableLookup(UserClass* caller, uint32 index, ...);
@@ -71,7 +70,6 @@
#ifdef ISOLATE_SHARING
-extern "C" void* jnjvmEnveloppeLookup(UserClass* cl, uint32 index);
extern "C" void* jnjvmStaticCtpLookup(UserClass* cl, uint32 index);
extern "C" UserConstantPool* jnjvmSpecialCtpLookup(UserConstantPool* ctpInfo,
uint32 index,
@@ -123,7 +121,6 @@
#endif
#ifdef ISOLATE_SHARING
- (void) jnjvmEnveloppeLookup(0, 0);
(void) jnjvmStaticCtpLookup(0, 0);
(void) jnjvmSpecialCtpLookup(0, 0, 0);
#endif
More information about the vmkit-commits
mailing list