[vmkit-commits] [vmkit] r117363 - in /vmkit/trunk: include/j3/J3Intrinsics.h lib/J3/Compiler/ExceptionsCheck.inc lib/J3/Compiler/ExceptionsDwarf.inc lib/J3/Compiler/J3Intrinsics.cpp lib/J3/Compiler/JavaJIT.cpp lib/J3/Compiler/LowerConstantCalls.cpp lib/J3/LLVMRuntime/runtime-default-thread.ll lib/J3/LLVMRuntime/runtime-default.ll lib/J3/LLVMRuntime/runtime-mmtk-thread.ll lib/Mvm/JITGCPass/ mmtk/java/ tools/j3/
Gael Thomas
gael.thomas at lip6.fr
Tue Oct 26 06:21:40 PDT 2010
Author: gthomas
Date: Tue Oct 26 08:21:40 2010
New Revision: 117363
URL: http://llvm.org/viewvc/llvm-project?rev=117363&view=rev
Log:
begin the unification between the C++ code and the (meta) llvm type definitions
Modified:
vmkit/trunk/include/j3/J3Intrinsics.h
vmkit/trunk/lib/J3/Compiler/ExceptionsCheck.inc
vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc
vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp
vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp
vmkit/trunk/lib/J3/Compiler/LowerConstantCalls.cpp
vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll
vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll
vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll
vmkit/trunk/lib/Mvm/JITGCPass/ (props changed)
vmkit/trunk/mmtk/java/ (props changed)
vmkit/trunk/tools/j3/ (props changed)
Modified: vmkit/trunk/include/j3/J3Intrinsics.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/j3/J3Intrinsics.h?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/include/j3/J3Intrinsics.h (original)
+++ vmkit/trunk/include/j3/J3Intrinsics.h Tue Oct 26 08:21:40 2010
@@ -133,9 +133,10 @@
llvm::Constant* OffsetDoYieldInThreadConstant;
llvm::Constant* OffsetIsolateInThreadConstant;
- llvm::Constant* OffsetJNIInThreadConstant;
- llvm::Constant* OffsetJavaExceptionInThreadConstant;
llvm::Constant* OffsetCXXExceptionInThreadConstant;
+ llvm::Constant* OffsetThreadInMutatorThreadConstant;
+ llvm::Constant* OffsetJNIInJavaThreadConstant;
+ llvm::Constant* OffsetJavaExceptionInJavaThreadConstant;
llvm::Constant* OffsetClassInVTConstant;
llvm::Constant* OffsetDepthInVTConstant;
Modified: vmkit/trunk/lib/J3/Compiler/ExceptionsCheck.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/ExceptionsCheck.inc?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/ExceptionsCheck.inc (original)
+++ vmkit/trunk/lib/J3/Compiler/ExceptionsCheck.inc Tue Oct 26 08:21:40 2010
@@ -10,7 +10,7 @@
if (TheCompiler->hasExceptionsEnabled()) {
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJavaExceptionInThreadConstant };
+ intrinsics->OffsetJavaExceptionInJavaThreadConstant };
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
@@ -69,7 +69,7 @@
if (TheCompiler->hasExceptionsEnabled()) {
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJavaExceptionInThreadConstant };
+ intrinsics->OffsetJavaExceptionInJavaThreadConstant };
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
@@ -122,7 +122,7 @@
if (TheCompiler->hasExceptionsEnabled()) {
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJavaExceptionInThreadConstant };
+ intrinsics->OffsetJavaExceptionInJavaThreadConstant };
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
@@ -172,7 +172,7 @@
if (TheCompiler->hasExceptionsEnabled()) {
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJavaExceptionInThreadConstant };
+ intrinsics->OffsetJavaExceptionInJavaThreadConstant };
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
@@ -236,7 +236,7 @@
JITVerifyNull(obj);
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJavaExceptionInThreadConstant };
+ intrinsics->OffsetJavaExceptionInJavaThreadConstant };
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
@@ -491,7 +491,7 @@
// First thing in the handler: clear the exception.
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJavaExceptionInThreadConstant };
+ intrinsics->OffsetJavaExceptionInJavaThreadConstant };
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
Modified: vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc (original)
+++ vmkit/trunk/lib/J3/Compiler/ExceptionsDwarf.inc Tue Oct 26 08:21:40 2010
@@ -417,7 +417,7 @@
Value* threadId = getCurrentThread(module->JavaThreadType);
Value* geps[2] = { module->constantZero,
- module->OffsetJavaExceptionInThreadConstant };
+ module->OffsetJavaExceptionInJavaThreadConstant };
Value* javaExceptionPtr = GetElementPtrInst::Create(threadId, geps,
geps + 2, "",
@@ -474,12 +474,13 @@
// Get the Java exception.
Value* exc = new LoadInst(javaExceptionPtr, "", currentBlock);
- Value* geps2[3] = { module->constantZero,
+ Value* geps2[4] = { module->constantZero,
module->constantZero,
+ module->OffsetThreadInMutatorThreadConstant,
module->OffsetCXXExceptionInThreadConstant };
Value* cxxExceptionPtr = GetElementPtrInst::Create(threadId, geps2,
- geps2 + 3, "",
+ geps2 + 4, "",
currentBlock);
// Clear exceptions.
@@ -562,12 +563,13 @@
endExceptionBlock->eraseFromParent();
} else {
Value* threadId = getCurrentThread(module->JavaThreadType);
- Value* geps2[3] = { module->constantZero,
+ Value* geps2[4] = { module->constantZero,
module->constantZero,
+ module->OffsetThreadInMutatorThreadConstant,
module->OffsetCXXExceptionInThreadConstant };
Value* cxxExceptionPtr = GetElementPtrInst::Create(threadId, geps2,
- geps2 + 3, "",
+ geps2 + 4, "",
currentBlock);
cxxExceptionPtr = new LoadInst(cxxExceptionPtr, "", currentBlock);
llvm::CallInst::Create(module->unwindResume, cxxExceptionPtr, "",
Modified: vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/J3Intrinsics.cpp Tue Oct 26 08:21:40 2010
@@ -142,15 +142,12 @@
OffsetStatusInTaskClassMirrorConstant = constantZero;
OffsetInitializedInTaskClassMirrorConstant = constantOne;
- OffsetIsolateInThreadConstant =
- ConstantInt::get(Type::getInt32Ty(Context), 3);
- OffsetDoYieldInThreadConstant =
- ConstantInt::get(Type::getInt32Ty(Context), 6);
- OffsetJNIInThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 1);
- OffsetJavaExceptionInThreadConstant =
- ConstantInt::get(Type::getInt32Ty(Context), 2);
- OffsetCXXExceptionInThreadConstant =
- ConstantInt::get(Type::getInt32Ty(Context), 13);
+ OffsetIsolateInThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 1);
+ OffsetDoYieldInThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 4);
+ OffsetCXXExceptionInThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 11);
+ OffsetThreadInMutatorThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 0);
+ OffsetJNIInJavaThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 1);
+ OffsetJavaExceptionInJavaThreadConstant = ConstantInt::get(Type::getInt32Ty(Context), 2);
ClassReadyConstant = ConstantInt::get(Type::getInt8Ty(Context), ready);
Modified: vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaJIT.cpp Tue Oct 26 08:21:40 2010
@@ -354,7 +354,7 @@
Value* threadId = getCurrentThread(intrinsics->JavaThreadType);
Value* geps[2] = { intrinsics->constantZero,
- intrinsics->OffsetJNIInThreadConstant };
+ intrinsics->OffsetJNIInJavaThreadConstant };
Value* jniEnv = GetElementPtrInst::Create(threadId, geps, geps + 2, "",
currentBlock);
@@ -1164,10 +1164,11 @@
if (TheCompiler->useCooperativeGC()) {
Value* threadId = getCurrentThread(intrinsics->MutatorThreadType);
- Value* GEP[2] = { intrinsics->constantZero,
+ Value* GEP[3] = { intrinsics->constantZero,
+ intrinsics->OffsetThreadInMutatorThreadConstant,
intrinsics->OffsetDoYieldInThreadConstant };
- Value* YieldPtr = GetElementPtrInst::Create(threadId, GEP, GEP + 2, "",
+ Value* YieldPtr = GetElementPtrInst::Create(threadId, GEP, GEP + 3, "",
currentBlock);
Value* Yield = new LoadInst(YieldPtr, "", currentBlock);
Modified: vmkit/trunk/lib/J3/Compiler/LowerConstantCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/LowerConstantCalls.cpp?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/LowerConstantCalls.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/LowerConstantCalls.cpp Tue Oct 26 08:21:40 2010
@@ -55,9 +55,9 @@
"", CI);
threadId = new IntToPtrInst(threadId, intrinsics->ptr32Type, "", CI);
-
- Value* IsolateID = GetElementPtrInst::Create(threadId,
- intrinsics->OffsetIsolateInThreadConstant, "", CI);
+
+ Value* GEP1[2] = { intrinsics->OffsetThreadInMutatorThreadConstant, intrinsics->OffsetIsolateInThreadConstant }
+ Value* IsolateID = GetElementPtrInst::Create(threadId, GEP1, GEP1 + 2, "", CI);
IsolateID = new LoadInst(IsolateID, "", CI);
@@ -81,8 +81,8 @@
threadId = new IntToPtrInst(threadId, intrinsics->ptr32Type, "", CI);
- Value* IsolateID = GetElementPtrInst::Create(threadId,
- intrinsics->OffsetIsolateInThreadConstant, "", CI);
+ Value* GEP1[2] = { intrinsics->OffsetThreadInMutatorThreadConstant, intrinsics->OffsetIsolateInThreadConstant }
+ Value* IsolateID = GetElementPtrInst::Create(threadId, GEP1, GEP1 + 2, "", CI);
IsolateID = new LoadInst(IsolateID, "", CI);
Modified: vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll (original)
+++ vmkit/trunk/lib/J3/LLVMRuntime/runtime-default-thread.ll Tue Oct 26 08:21:40 2010
@@ -1,16 +1,2 @@
-;;; Field 0: the VT of threads
-;;; Field 1: next
-;;; Field 2: prev
-;;; Field 3: IsolateID
-;;; Field 4: MyVM
-;;; Field 5: baseSP
-;;; Field 6: doYield
-;;; Field 7: inGC
-;;; Field 8: stackScanned
-;;; Field 9: lastSP
-;;; Field 10: internalThreadID
-;;; field 11: routine
-;;; field 12: lastKnownFrame
-;;; field 13: lastExceptionBuffer
-%MutatorThread = type { %VT*, %JavaThread*, %JavaThread*, i8*, i8*, i8*, i1, i1,
- i1, i8*, i8*, i8*, i8*, i8*}
+;;; Field 0: the thread
+%MutatorThread = type { %Thread }
Modified: vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll (original)
+++ vmkit/trunk/lib/J3/LLVMRuntime/runtime-default.ll Tue Oct 26 08:21:40 2010
@@ -27,6 +27,22 @@
;;; Field 3: The static instance
%TaskClassMirror = type { i8, i1, i8* }
+%CircularBase = type { %VT*, %CircularBase*, %CircularBase* }
+
+;;; Field 0: the parent (circular base)
+;;; Field 1: IsolateID
+;;; Field 2: MyVM
+;;; Field 3: baseSP
+;;; Field 4: doYield
+;;; Field 5: inGC
+;;; Field 6: stackScanned
+;;; Field 7: lastSP
+;;; Field 8: internalThreadID
+;;; field 9: routine
+;;; field 10: lastKnownFrame
+;;; field 11: lastExceptionBuffer
+%Thread = type { %CircularBase, i8*, i8*, i8*, i1, i1, i1, i8*, i8*, i8*, i8*, i8*}
+
%JavaThread = type { %MutatorThread, i8*, %JavaObject* }
Modified: vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll?rev=117363&r1=117362&r2=117363&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll (original)
+++ vmkit/trunk/lib/J3/LLVMRuntime/runtime-mmtk-thread.ll Tue Oct 26 08:21:40 2010
@@ -1,21 +1,7 @@
%BumpPtrAllocator = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8* }
-;;; Field 0: the VT of threads
-;;; Field 1: next
-;;; Field 2: prev
-;;; Field 3: IsolateID
-;;; Field 4: MyVM
-;;; Field 5: baseSP
-;;; Field 6: doYield
-;;; Field 7: inGC
-;;; Field 8: stackScanned
-;;; Field 9: lastSP
-;;; Field 10: internalThreadID
-;;; field 11: routine
-;;; field 12: lastKnownFrame
-;;; field 13: lastKnownBufer
-;;; field 14: allocator
-;;; field 15: MutatorContext
-;;; field 16: realRoutine
-%MutatorThread = type { %VT*, %JavaThread*, %JavaThread*, i8*, i8*, i8*, i1, i1,
- i1, i8*, i8*, i8*, i8*, i8*, %BumpPtrAllocator, i8*, i8* }
+;;; Field 0: the thread
+;;; field 1: allocator
+;;; field 2: MutatorContext
+;;; field 3: realRoutine
+%MutatorThread = type { %Thread, %BumpPtrAllocator, i8*, i8* }
Propchange: vmkit/trunk/lib/Mvm/JITGCPass/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Oct 26 08:21:40 2010
@@ -0,0 +1 @@
+Release
Propchange: vmkit/trunk/mmtk/java/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Oct 26 08:21:40 2010
@@ -0,0 +1 @@
+build.xml
Propchange: vmkit/trunk/tools/j3/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Oct 26 08:21:40 2010
@@ -4,3 +4,5 @@
vmkit.bc
jnjvm.s
jnjvm.bc
+j3.bc
+j3.s
More information about the vmkit-commits
mailing list