[vmkit-commits] [vmkit] r112371 - in /vmkit/trunk: include/mvm/JIT.h include/mvm/MethodInfo.h lib/J3/Compiler/JavaJITCompiler.cpp lib/J3/VMCore/JavaClass.cpp lib/J3/VMCore/JavaClass.h lib/Mvm/Compiler/JIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sat Aug 28 08:06:13 PDT 2010
Author: geoffray
Date: Sat Aug 28 10:06:13 2010
New Revision: 112371
URL: http://llvm.org/viewvc/llvm-project?rev=112371&view=rev
Log:
Add a MetaInfo on MethodInfo instead of having special fields for each kind of MethodInfo.
Modified:
vmkit/trunk/include/mvm/JIT.h
vmkit/trunk/include/mvm/MethodInfo.h
vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp
vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
vmkit/trunk/lib/J3/VMCore/JavaClass.h
vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
Modified: vmkit/trunk/include/mvm/JIT.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/JIT.h?rev=112371&r1=112370&r2=112371&view=diff
==============================================================================
--- vmkit/trunk/include/mvm/JIT.h (original)
+++ vmkit/trunk/include/mvm/JIT.h Sat Aug 28 10:06:13 2010
@@ -212,12 +212,11 @@
};
class MvmJITMethodInfo : public JITMethodInfo {
- const llvm::Function* Func;
public:
virtual void print(void* ip, void* addr);
MvmJITMethodInfo(llvm::GCFunctionInfo* GFI, const llvm::Function* F) :
JITMethodInfo(GFI) {
- Func = F;
+ MetaInfo = const_cast<llvm::Function*>(F);
MethodType = 0;
}
};
Modified: vmkit/trunk/include/mvm/MethodInfo.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/MethodInfo.h?rev=112371&r1=112370&r2=112371&view=diff
==============================================================================
--- vmkit/trunk/include/mvm/MethodInfo.h (original)
+++ vmkit/trunk/include/mvm/MethodInfo.h Sat Aug 28 10:06:13 2010
@@ -25,14 +25,12 @@
if (isStub) ip = ((void**)addr)[2];
return ip;
}
-
- virtual void* getMetaInfo() {
- abort();
- return NULL;
- }
+ void* getMetaInfo() const { return MetaInfo; }
+
unsigned MethodType;
void* InstructionPointer;
+ void* MetaInfo;
};
class CamlFrame {
Modified: vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp?rev=112371&r1=112370&r2=112371&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaJITCompiler.cpp Sat Aug 28 10:06:13 2010
@@ -40,26 +40,20 @@
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;
+ MetaInfo = 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);
+ JavaMethod* meth = (JavaMethod*)MetaInfo;
CodeLineInfo* info = meth->lookupCodeLineInfo((uintptr_t)ip);
fprintf(stderr, "; %p in %s.%s (line %d, bytecode %d, code start %p)", new_ip,
UTF8Buffer(meth->classDef->name).cString(),
Modified: vmkit/trunk/lib/J3/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaClass.cpp?rev=112371&r1=112370&r2=112371&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaClass.cpp Sat Aug 28 10:06:13 2010
@@ -290,6 +290,7 @@
void JavaStaticMethodInfo::print(void* ip, void* addr) {
void* new_ip = NULL;
if (ip) new_ip = mvm::MethodInfo::isStub(ip, addr);
+ JavaMethod* meth = (JavaMethod*)MetaInfo;
fprintf(stderr, "; %p in %s.%s", new_ip,
UTF8Buffer(meth->classDef->name).cString(),
UTF8Buffer(meth->name).cString());
Modified: vmkit/trunk/lib/J3/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaClass.h?rev=112371&r1=112370&r2=112371&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaClass.h Sat Aug 28 10:06:13 2010
@@ -898,21 +898,15 @@
};
class JavaStaticMethodInfo : public mvm::CamlMethodInfo {
-protected:
- JavaMethod* meth;
-
public:
virtual void print(void* ip, void* addr);
JavaStaticMethodInfo(mvm::CamlMethodInfo* super, void* ip, JavaMethod* M) :
mvm::CamlMethodInfo(super != NULL ? super->CF : NULL, ip) {
- meth = M;
+ MetaInfo = M;
MethodType = 1;
}
- virtual void* getMetaInfo() {
- return meth;
- }
};
class CodeLineInfo : public mvm::PermanentObject {
Modified: vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Compiler/JIT.cpp?rev=112371&r1=112370&r2=112371&view=diff
==============================================================================
--- vmkit/trunk/lib/Mvm/Compiler/JIT.cpp (original)
+++ vmkit/trunk/lib/Mvm/Compiler/JIT.cpp Sat Aug 28 10:06:13 2010
@@ -83,7 +83,8 @@
}
void MvmJITMethodInfo::print(void* ip, void* addr) {
- fprintf(stderr, "; %p in %s LLVM method\n", ip, Func->getName().data());
+ fprintf(stderr, "; %p in %s LLVM method\n", ip,
+ ((llvm::Function*)MetaInfo)->getName().data());
}
class MvmJITListener : public llvm::JITEventListener {
More information about the vmkit-commits
mailing list