[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