[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