[vmkit-commits] [vmkit] r83250 - in /vmkit/trunk/lib/N3/VMCore: Assembly.cpp CLIJit.cpp LockedMap.cpp N3Initialise.cpp NativeUtil.cpp Opcodes.cpp VMClass.h VirtualTables.cpp

Gael Thomas gael.thomas at lip6.fr
Fri Oct 2 10:53:15 PDT 2009


Author: gthomas
Date: Fri Oct  2 12:53:15 2009
New Revision: 83250

URL: http://llvm.org/viewvc/llvm-project?rev=83250&view=rev
Log:
Param, VMMethod, VMGenericMethod and VMField are also allocated with a BumpPtrAllocator


Modified:
    vmkit/trunk/lib/N3/VMCore/Assembly.cpp
    vmkit/trunk/lib/N3/VMCore/CLIJit.cpp
    vmkit/trunk/lib/N3/VMCore/LockedMap.cpp
    vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
    vmkit/trunk/lib/N3/VMCore/NativeUtil.cpp
    vmkit/trunk/lib/N3/VMCore/Opcodes.cpp
    vmkit/trunk/lib/N3/VMCore/VMClass.h
    vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp

Modified: vmkit/trunk/lib/N3/VMCore/Assembly.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/Assembly.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/Assembly.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/Assembly.cpp Fri Oct  2 12:53:15 2009
@@ -387,7 +387,7 @@
 }
 
 static VMField* fieldDup(uint32& key, Assembly* ass) {
-  VMField* field = gc_new(VMField)();
+  VMField* field = new(ass->allocator, "VMField") VMField();
   field->token = key;
   return field;
 }
@@ -414,14 +414,14 @@
 }
 
 static VMMethod* methodDup(uint32& key, Assembly* ass) {
-  VMMethod* meth = gc_new(VMMethod)();
+  VMMethod* meth = new(ass->allocator, "VMMethod") VMMethod();
   meth->token = key;
   meth->canBeInlined = false;
   return meth;
 }
 
 static VMGenericMethod* genMethodDup(uint32& key, Assembly* ass) {
-  VMGenericMethod* meth = gc_new(VMGenericMethod)();
+  VMGenericMethod* meth = new(ass->allocator, "VMGenericMethod") VMGenericMethod();
   meth->token = key;
   meth->canBeInlined = false;
   return meth;
@@ -1415,7 +1415,7 @@
   uint32 name       = paramArray[CONSTANT_PARAM_NAME];
   uint32 sequence   = paramArray[CONSTANT_PARAM_SEQUENCE];
   
-  Param* param = gc_new(Param)();
+  Param* param = new(allocator, "Param") Param();
   param->flags = flags;
   param->sequence = sequence;
   param->name = readString(meth->classDef->vm, stringOffset + name);
@@ -1779,7 +1779,7 @@
       } else {
         type->resolveType(false, false, genMethod);
         
-        VMMethod* meth = gc_new(VMMethod)() ;
+        VMMethod* meth = new(allocator, "VMMethod") VMMethod() ;
         bool virt = extractMethodSignature(offset, type, args, genClass, genMethod);
         bool structReturn = false;
         const llvm::FunctionType* signature = VMMethod::resolveSignature(args,

Modified: vmkit/trunk/lib/N3/VMCore/CLIJit.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/CLIJit.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/CLIJit.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/CLIJit.cpp Fri Oct  2 12:53:15 2009
@@ -1472,7 +1472,7 @@
     classDef->aquire();
     if (methPtr == 0) {
       methPtr = Function::Create(getSignature(genMethod), GlobalValue::GhostLinkage,
-                                 printString(), classDef->vm->getLLVMModule());
+                                 mvm::PrintBuffer::objectToString(this), classDef->vm->getLLVMModule());
       classDef->vm->functions->hash(methPtr, this);
     }
     classDef->release();

Modified: vmkit/trunk/lib/N3/VMCore/LockedMap.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/LockedMap.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/LockedMap.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/LockedMap.cpp Fri Oct  2 12:53:15 2009
@@ -75,7 +75,7 @@
   }
 
   if (res == 0) {
-    UTF8* tmp = UTF8::acons(size, MSCorlib::arrayChar);
+    UTF8* tmp = (UTF8 *)UTF8::acons(size, MSCorlib::arrayChar);
     for (sint32 i = 0; i < size; i++) {
       tmp->setAt(i, asciiz[i]);
     }

Modified: vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp Fri Oct  2 12:53:15 2009
@@ -178,7 +178,6 @@
 #endif
   
   INIT(Property);
-  INIT(Param);
   INIT(VMArray);
   INIT(ArrayUInt8);
   INIT(ArraySInt8);
@@ -191,9 +190,6 @@
   INIT(ArrayDouble);
   INIT(ArrayObject);
   INIT(UTF8);
-  INIT(VMMethod);
-  INIT(VMGenericMethod);
-  INIT(VMField);
   INIT(VMCond);
   INIT(LockObj);
   INIT(VMObject);

Modified: vmkit/trunk/lib/N3/VMCore/NativeUtil.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/NativeUtil.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/NativeUtil.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/NativeUtil.cpp Fri Oct  2 12:53:15 2009
@@ -47,7 +47,7 @@
   
   if (!res) {
     VMThread::get()->vm->error("unable to find native method %s",
-                               meth->printString());
+                               mvm::PrintBuffer::objectToString(meth));
   }
 
   return res;

Modified: vmkit/trunk/lib/N3/VMCore/Opcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/Opcodes.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/Opcodes.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/Opcodes.cpp Fri Oct  2 12:53:15 2009
@@ -107,7 +107,7 @@
 
 
 extern "C" void n3PrintExecution(char* opcode, VMMethod* meth) {
-  fprintf(stderr, "executing %s %s\n", meth->printString(), opcode);
+  fprintf(stderr, "executing %s %s\n", mvm::PrintBuffer::objectToString(meth), opcode);
 }
 
 

Modified: vmkit/trunk/lib/N3/VMCore/VMClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMClass.h?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMClass.h (original)
+++ vmkit/trunk/lib/N3/VMCore/VMClass.h Fri Oct  2 12:53:15 2009
@@ -193,9 +193,8 @@
   void makeType();
 };
 
-class VMMethod : public mvm::Object {
+class VMMethod : public mvm::PermanentObject {
 public:
-  static VirtualTable* VT;
   virtual void print(mvm::PrintBuffer* buf) const;
   virtual void TRACER;
   
@@ -239,16 +238,14 @@
 //       add flag to VMMethod instead
 class VMGenericMethod : public VMMethod {
 public:
-  static VirtualTable* VT;
   virtual void print(mvm::PrintBuffer* buf) const;
   virtual void TRACER;
 
   std::vector<VMCommonClass*> genericParams;
 };
 
-class VMField : public mvm::Object {
+class VMField : public mvm::PermanentObject {
 public:
-  static VirtualTable* VT;
   virtual void print(mvm::PrintBuffer* buf) const;
   virtual void TRACER;
   
@@ -279,9 +276,8 @@
   llvm::GlobalVariable* _llvmVar;
 };
 
-class Param : public mvm::Object {
+class Param : public mvm::PermanentObject {
 public:
-  static VirtualTable* VT;
   virtual void print(mvm::PrintBuffer* buf) const;
   virtual void TRACER;
 

Modified: vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp?rev=83250&r1=83249&r2=83250&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp Fri Oct  2 12:53:15 2009
@@ -38,9 +38,6 @@
   INIT(ArrayDouble);
   INIT(ArrayObject);
   INIT(UTF8);
-  INIT(VMMethod);
-  INIT(VMGenericMethod);
-  INIT(VMField);
   INIT(VMCond);
   INIT(LockObj);
   INIT(VMObject);
@@ -48,7 +45,6 @@
   INIT(ThreadSystem);
   INIT(CLIString);
   INIT(Property);
-  INIT(Param);
   INIT(CacheNode);
   INIT(Enveloppe);
   INIT(Opinfo);
@@ -61,7 +57,7 @@
 }
 
 void CLIJit::TRACER {
-  compilingMethod->MARK_AND_TRACE;
+  compilingMethod->CALL_TRACER;
   compilingClass->CALL_TRACER;
 }
 
@@ -84,7 +80,7 @@
 void Enveloppe::TRACER {
   firstCache->MARK_AND_TRACE;
   //cacheLock->MARK_AND_TRACE;
-  originalMethod->MARK_AND_TRACE;
+  originalMethod->CALL_TRACER;
 }
 
 void VMArray::TRACER {
@@ -135,10 +131,10 @@
   CALL_TRACER_VECTOR(VMClass*, interfaces, std::allocator);
   //lockVar->MARK_AND_TRACE;
   //condVar->MARK_AND_TRACE;
-  TRACE_VECTOR(VMMethod*, virtualMethods, std::allocator);
-  TRACE_VECTOR(VMMethod*, staticMethods, std::allocator);
-  TRACE_VECTOR(VMField*, virtualFields, std::allocator);
-  TRACE_VECTOR(VMField*, staticFields, std::allocator);
+  CALL_TRACER_VECTOR(VMMethod*, virtualMethods, std::allocator);
+  CALL_TRACER_VECTOR(VMMethod*, staticMethods, std::allocator);
+  CALL_TRACER_VECTOR(VMField*, virtualFields, std::allocator);
+  CALL_TRACER_VECTOR(VMField*, staticFields, std::allocator);
   delegatee->MARK_AND_TRACE;
   CALL_TRACER_VECTOR(VMCommonClass*, display, std::allocator);
   vm->CALL_TRACER;
@@ -154,7 +150,7 @@
   virtualInstance->MARK_AND_TRACE;
   CALL_TRACER_VECTOR(VMClass*, innerClasses, std::allocator);
   outerClass->CALL_TRACER;
-  TRACE_VECTOR(VMMethod*, genericMethods, std::allocator);
+  CALL_TRACER_VECTOR(VMMethod*, genericMethods, std::allocator);
 }
 
 void VMGenericClass::TRACER {
@@ -177,7 +173,7 @@
   delegatee->MARK_AND_TRACE;
   //signature->MARK_AND_TRACE;
   classDef->CALL_TRACER;
-  TRACE_VECTOR(Param*, params, gc_allocator);
+  CALL_TRACER_VECTOR(Param*, params, gc_allocator);
   TRACE_VECTOR(Enveloppe*, caches, gc_allocator);
   name->MARK_AND_TRACE;
 }
@@ -231,7 +227,7 @@
 }
 
 void Param::TRACER {
-  method->MARK_AND_TRACE;
+  method->CALL_TRACER;
   name->MARK_AND_TRACE;
 }
 





More information about the vmkit-commits mailing list