[vmkit-commits] [vmkit] r180323 - Documenting changes in code.
Peter Senna Tschudin
peter.senna at gmail.com
Thu Apr 25 09:56:36 PDT 2013
Author: peter.senna
Date: Thu Apr 25 11:55:04 2013
New Revision: 180323
URL: http://llvm.org/viewvc/llvm-project?rev=180323&view=rev
Log:
Documenting changes in code.
(cherry picked from commit 2ac6b379b88ce4ac40aa8765a4da622b8b08c83b)
Modified:
vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
vmkit/trunk/tests/debug.txt
vmkit/trunk/tests/minimal.xargs
Modified: vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp?rev=180323&r1=180322&r2=180323&view=diff
==============================================================================
--- vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp (original)
+++ vmkit/trunk/mmtk/mmtk-alloc/Selected.cpp Thu Apr 25 11:55:04 2013
@@ -55,40 +55,13 @@ extern "C" void JnJVM_org_j3_bindings_Bi
extern "C" void JnJVM_org_j3_bindings_Bindings_nonHeapWriteBarrier__Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_ObjectReference_2(gc** ptr, gc* value) ALWAYS_INLINE;
-extern "C" void* JnJVM_org_j3_bindings_Bindings_prealloc__I(int sz) ALWAYS_INLINE;
+extern "C" void* JnJVM_org_j3_bindings_Bindings_gcmalloc__ILorg_vmmagic_unboxed_ObjectReference_2(
+ int sz, void* VT) ALWAYS_INLINE;
-extern "C" void* JnJVM_org_j3_bindings_Bindings_postalloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2I(
- void* object, void* type, int sz) ALWAYS_INLINE;
-
-extern "C" void* prealloc(uint32_t size) {
- gc* res = 0;
- gcHeader* head = 0;
- size = llvm::RoundUpToAlignment(size, sizeof(void*));
- head = (gcHeader*) JnJVM_org_j3_bindings_Bindings_prealloc__I(size);
- res = head->toReference();
- return res;
-}
-
-extern "C" void postalloc(gc* obj, void* type, uint32_t size) {
- vmkit::Thread::get()->MyVM->setType(obj->toHeader(), type);
- JnJVM_org_j3_bindings_Bindings_postalloc__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_ObjectReference_2I(obj, type, size);
-}
-
-extern "C" void* gcmalloc(uint32_t sz, void* type) {
- gc* res = 0;
- llvm_gcroot(res, 0);
+extern "C" void* gcmalloc(uint32_t sz, void* VT) {
sz += gcHeader::hiddenHeaderSize();
- res = (gc*) prealloc(sz);
- postalloc(res, type, sz);
- return res;
-}
-
-extern "C" void* gcmallocUnresolved(uint32_t sz, void* type) {
- gc* res = 0;
- llvm_gcroot(res, 0);
- res = (gc*)gcmalloc(sz, type);
- vmkit::Thread::get()->MyVM->addFinalizationCandidate(res);
- return res;
+ sz = llvm::RoundUpToAlignment(sz, sizeof(void*));
+ return ((gcHeader*)JnJVM_org_j3_bindings_Bindings_gcmalloc__ILorg_vmmagic_unboxed_ObjectReference_2(sz, VT))->toReference();
}
extern "C" void addFinalizationCandidate(gc* obj) __attribute__((always_inline));
@@ -98,6 +71,13 @@ extern "C" void addFinalizationCandidate
vmkit::Thread::get()->MyVM->addFinalizationCandidate(obj);
}
+extern "C" void* gcmallocUnresolved(uint32_t sz, VirtualTable* VT) {
+ gc* res = 0;
+ llvm_gcroot(res, 0);
+ res = (gc*)gcmalloc(sz, VT);
+ if (VT->hasDestructor()) addFinalizationCandidate(res);
+ return res;
+}
extern "C" void arrayWriteBarrier(void* ref, void** ptr, void* value) {
JnJVM_org_j3_bindings_Bindings_arrayWriteBarrier__Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2Lorg_vmmagic_unboxed_ObjectReference_2(
@@ -134,10 +114,10 @@ void Collector::scanObject(void** ptr, w
if ((*ptr) != NULL) {
assert(((gc*)(*ptr))->getVirtualTable());
}
-#if RESET_STALE_REFERENCES
+
// Allow the VM to reset references if needed
vmkit::Thread::get()->MyVM->resetReferenceIfStale(NULL, ptr);
-#endif
+
JnJVM_org_j3_bindings_Bindings_reportDelayedRootEdge__Lorg_mmtk_plan_TraceLocal_2Lorg_vmmagic_unboxed_Address_2(closure, ptr);
}
@@ -147,10 +127,10 @@ void Collector::markAndTrace(void* sourc
assert(((gc*)(*ptr_))->getVirtualTable());
}
if ((*(void**)ptr) != NULL) assert(((gc*)(*(void**)ptr))->getVirtualTable());
-#if RESET_STALE_REFERENCES
+
// Allow the VM to reset references if needed
vmkit::Thread::get()->MyVM->resetReferenceIfStale(source, ptr_);
-#endif
+
JnJVM_org_j3_bindings_Bindings_processEdge__Lorg_mmtk_plan_TransitiveClosure_2Lorg_vmmagic_unboxed_ObjectReference_2Lorg_vmmagic_unboxed_Address_2(closure, source, ptr);
}
@@ -159,10 +139,10 @@ void Collector::markAndTraceRoot(void* s
if ((*ptr_) != NULL) {
assert(((gc*)(*ptr_))->getVirtualTable());
}
-#if RESET_STALE_REFERENCES
+
// Allow the VM to reset references if needed
vmkit::Thread::get()->MyVM->resetReferenceIfStale(source, ptr_);
-#endif
+
JnJVM_org_j3_bindings_Bindings_processRootEdge__Lorg_mmtk_plan_TraceLocal_2Lorg_vmmagic_unboxed_Address_2Z(closure, ptr, true);
}
Modified: vmkit/trunk/tests/debug.txt
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tests/debug.txt?rev=180323&r1=180322&r2=180323&view=diff
==============================================================================
--- vmkit/trunk/tests/debug.txt (original)
+++ vmkit/trunk/tests/debug.txt Thu Apr 25 11:55:04 2013
@@ -1,12 +1,25 @@
-/home/koutheir/PhD/VMKit/vmkit_stale_ref/Debug+Asserts/bin/j3 -jar framework.jar -xargs /home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/minimal.xargs
-
framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.AImpl
framework call j3.J3Mgr resetReferencesToBundle ijvm.tests.Runner
framework meminfo -gc
-bundles
+enter framework
+
+stop 13
+uninstall 13
+install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.AImpl_1.0.0.jar
start 18
-framework call j3.J3Mgr dumpClassLoaderBundles
+stop 18
+uninstall 18
+install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.AImpl_1.0.0.jar
+start 19
+
+stop 19
+uninstall 19
+install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.AImpl_1.0.0.jar
+start 20
+
+
+/home/koutheir/PhD/VMKit/vmkit_stale_ref/Debug+Asserts/bin/j3 -jar framework.jar -xargs /home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/minimal.xargs
Modified: vmkit/trunk/tests/minimal.xargs
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tests/minimal.xargs?rev=180323&r1=180322&r2=180323&view=diff
==============================================================================
--- vmkit/trunk/tests/minimal.xargs (original)
+++ vmkit/trunk/tests/minimal.xargs Thu Apr 25 11:55:04 2013
@@ -31,5 +31,3 @@
-istart file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.DImpl_1.0.0.jar
-install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.Runner_1.0.0.jar
-
--install file:///home/koutheir/PhD/VMKit/vmkit_stale_ref/tests/plugins/ijvm.tests.BundleMgmtStress_1.0.0.jar
More information about the vmkit-commits
mailing list