[vmkit-commits] [vmkit] r83714 - in /vmkit/trunk/lib/N3/VMCore: CLIRuntimeJIT.cpp N3Initialise.cpp VMCache.cpp VMCache.h VirtualTables.cpp
Gael Thomas
gael.thomas at lip6.fr
Sat Oct 10 05:46:27 PDT 2009
Author: gthomas
Date: Sat Oct 10 07:46:27 2009
New Revision: 83714
URL: http://llvm.org/viewvc/llvm-project?rev=83714&view=rev
Log:
Caches are allocated in the assembly
Modified:
vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp
vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
vmkit/trunk/lib/N3/VMCore/VMCache.cpp
vmkit/trunk/lib/N3/VMCore/VMCache.h
vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
Modified: vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp?rev=83714&r1=83713&r2=83714&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/CLIRuntimeJIT.cpp Sat Oct 10 07:46:27 2009
@@ -27,6 +27,7 @@
#include "VMClass.h"
#include "VMObject.h"
#include "VMThread.h"
+#include "Assembly.h"
#include <cstdarg>
@@ -154,7 +155,7 @@
}
if (cache->methPtr) {
- rcache = CacheNode::allocate();
+ rcache = CacheNode::allocate(orig->classDef->assembly->allocator);
rcache->enveloppe = enveloppe;
} else {
rcache = cache;
Modified: vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp?rev=83714&r1=83713&r2=83714&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/N3Initialise.cpp Sat Oct 10 07:46:27 2009
@@ -190,8 +190,6 @@
INIT(VMObject);
INIT(ThreadSystem);
INIT(CLIString);
- INIT(CacheNode);
- INIT(Enveloppe);
INIT(Opinfo);
INIT(Exception);
Modified: vmkit/trunk/lib/N3/VMCore/VMCache.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMCache.cpp?rev=83714&r1=83713&r2=83714&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMCache.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VMCache.cpp Sat Oct 10 07:46:27 2009
@@ -47,17 +47,17 @@
buf->write("Enveloppe<>");
}
-CacheNode* CacheNode::allocate() {
- CacheNode* cache = gc_new(CacheNode)();
+CacheNode* CacheNode::allocate(mvm::BumpPtrAllocator &allocator) {
+ CacheNode* cache = new(allocator, "CacheNode") CacheNode();
cache->lastCible = 0;
cache->methPtr = 0;
cache->next = 0;
return cache;
}
-Enveloppe* Enveloppe::allocate(VMMethod* meth) {
- Enveloppe* enveloppe = gc_new(Enveloppe)();
- enveloppe->firstCache = CacheNode::allocate();
+Enveloppe* Enveloppe::allocate(mvm::BumpPtrAllocator &allocator, VMMethod* meth) {
+ Enveloppe* enveloppe = new(allocator, "Enveloppe") Enveloppe();
+ enveloppe->firstCache = CacheNode::allocate(allocator);
enveloppe->firstCache->enveloppe = enveloppe;
enveloppe->cacheLock = new mvm::LockNormal();
enveloppe->originalMethod = meth;
@@ -82,7 +82,7 @@
JITVerifyNull(argObj);
// ok now the cache
- Enveloppe* enveloppe = Enveloppe::allocate(origMeth);
+ Enveloppe* enveloppe = Enveloppe::allocate(origMeth->classDef->assembly->allocator, origMeth);
compilingMethod->caches.push_back(enveloppe);
Value* zero = module->constantZero;
Modified: vmkit/trunk/lib/N3/VMCore/VMCache.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VMCache.h?rev=83714&r1=83713&r2=83714&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMCache.h (original)
+++ vmkit/trunk/lib/N3/VMCore/VMCache.h Sat Oct 10 07:46:27 2009
@@ -24,9 +24,8 @@
class Enveloppe;
class VMClass;
-class CacheNode : public mvm::Object {
+class CacheNode : public mvm::PermanentObject {
public:
- static VirtualTable* VT;
virtual void print(mvm::PrintBuffer* buf) const;
virtual void TRACER;
@@ -38,13 +37,11 @@
static const llvm::Type* llvmType;
- static CacheNode* allocate();
-
+ static CacheNode* allocate(mvm::BumpPtrAllocator &allocator);
};
-class Enveloppe : public mvm::Object {
+class Enveloppe : public mvm::PermanentObject {
public:
- static VirtualTable* VT;
virtual void TRACER;
virtual void print(mvm::PrintBuffer* buf) const;
@@ -54,7 +51,7 @@
static const llvm::Type* llvmType;
- static Enveloppe* allocate(VMMethod* orig);
+ static Enveloppe* allocate(mvm::BumpPtrAllocator &allocator, VMMethod* orig);
};
Modified: vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp?rev=83714&r1=83713&r2=83714&view=diff
==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VirtualTables.cpp Sat Oct 10 07:46:27 2009
@@ -42,8 +42,6 @@
INIT(ThreadSystem);
INIT(CLIString);
INIT(Property);
- INIT(CacheNode);
- INIT(Enveloppe);
INIT(Opinfo);
INIT(Exception);
@@ -69,12 +67,12 @@
void CacheNode::TRACER {
((mvm::Object*)methPtr)->MARK_AND_TRACE;
lastCible->CALL_TRACER;
- next->MARK_AND_TRACE;
- enveloppe->MARK_AND_TRACE;
+ next->CALL_TRACER;
+ enveloppe->CALL_TRACER;
}
void Enveloppe::TRACER {
- firstCache->MARK_AND_TRACE;
+ firstCache->CALL_TRACER;
//cacheLock->MARK_AND_TRACE;
originalMethod->CALL_TRACER;
}
@@ -168,7 +166,7 @@
//signature->MARK_AND_TRACE;
classDef->CALL_TRACER;
CALL_TRACER_VECTOR(Param*, params, gc_allocator);
- TRACE_VECTOR(Enveloppe*, caches, gc_allocator);
+ CALL_TRACER_VECTOR(Enveloppe*, caches, gc_allocator);
}
void VMGenericMethod::TRACER {
More information about the vmkit-commits
mailing list