[vmkit-commits] [vmkit] r76461 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h include/mvm/JIT.h lib/JnJVM/Compiler/JITInfo.cpp lib/JnJVM/Compiler/JavaAOTCompiler.cpp lib/JnJVM/Compiler/JnjvmModule.cpp lib/JnJVM/Compiler/LowerConstantCalls.cpp lib/Mvm/Compiler/JIT.cpp lib/N3/VMCore/CLIJit.cpp lib/N3/VMCore/CLIJitMeta.cpp lib/N3/VMCore/LowerArrayLength.cpp lib/N3/VMCore/VMClass.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Mon Jul 20 13:25:05 PDT 2009


Author: geoffray
Date: Mon Jul 20 15:25:05 2009
New Revision: 76461

URL: http://llvm.org/viewvc/llvm-project?rev=76461&view=rev
Log:
Make constants instance fields instead of static fields.


Modified:
    vmkit/trunk/include/jnjvm/JnjvmModule.h
    vmkit/trunk/include/mvm/JIT.h
    vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
    vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
    vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp
    vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp
    vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
    vmkit/trunk/lib/N3/VMCore/CLIJit.cpp
    vmkit/trunk/lib/N3/VMCore/CLIJitMeta.cpp
    vmkit/trunk/lib/N3/VMCore/LowerArrayLength.cpp
    vmkit/trunk/lib/N3/VMCore/VMClass.cpp

Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Mon Jul 20 15:25:05 2009
@@ -206,10 +206,6 @@
 class JnjvmModule : public mvm::MvmModule {
 
 public:
-  static llvm::Constant* JavaArraySizeOffsetConstant;
-  static llvm::Constant* JavaArrayElementsOffsetConstant;
-  static llvm::Constant* JavaObjectLockOffsetConstant;
-  static llvm::Constant* JavaObjectVTOffsetConstant;
 
   static const llvm::Type* JavaArrayUInt8Type;
   static const llvm::Type* JavaArraySInt8Type;
@@ -317,27 +313,32 @@
   llvm::Function* GetFinalFloatFieldFunction;
   llvm::Function* GetFinalDoubleFieldFunction;
   llvm::Function* GetFinalObjectFieldFunction;
-
-  static llvm::Constant* OffsetObjectSizeInClassConstant;
-  static llvm::Constant* OffsetVTInClassConstant;
-  static llvm::Constant* OffsetTaskClassMirrorInClassConstant;
-  static llvm::Constant* OffsetStaticInstanceInTaskClassMirrorConstant;
-  static llvm::Constant* OffsetInitializedInTaskClassMirrorConstant;
-  static llvm::Constant* OffsetStatusInTaskClassMirrorConstant;
-  
-  static llvm::Constant* OffsetJavaExceptionInThreadConstant;
-  static llvm::Constant* OffsetCXXExceptionInThreadConstant;
-  
-  static llvm::Constant* OffsetClassInVTConstant;
-  static llvm::Constant* OffsetDepthInVTConstant;
-  static llvm::Constant* OffsetDisplayInVTConstant;
-  static llvm::Constant* OffsetBaseClassVTInVTConstant;
-  
-  static llvm::Constant* ClassReadyConstant;
-
-  static llvm::Constant*    JavaObjectNullConstant;
-  static llvm::Constant*    MaxArraySizeConstant;
-  static llvm::Constant*    JavaArraySizeConstant;
+  
+  llvm::Constant* JavaArraySizeOffsetConstant;
+  llvm::Constant* JavaArrayElementsOffsetConstant;
+  llvm::Constant* JavaObjectLockOffsetConstant;
+  llvm::Constant* JavaObjectVTOffsetConstant;
+
+  llvm::Constant* OffsetObjectSizeInClassConstant;
+  llvm::Constant* OffsetVTInClassConstant;
+  llvm::Constant* OffsetTaskClassMirrorInClassConstant;
+  llvm::Constant* OffsetStaticInstanceInTaskClassMirrorConstant;
+  llvm::Constant* OffsetInitializedInTaskClassMirrorConstant;
+  llvm::Constant* OffsetStatusInTaskClassMirrorConstant;
+  
+  llvm::Constant* OffsetJavaExceptionInThreadConstant;
+  llvm::Constant* OffsetCXXExceptionInThreadConstant;
+  
+  llvm::Constant* OffsetClassInVTConstant;
+  llvm::Constant* OffsetDepthInVTConstant;
+  llvm::Constant* OffsetDisplayInVTConstant;
+  llvm::Constant* OffsetBaseClassVTInVTConstant;
+  
+  llvm::Constant* ClassReadyConstant;
+
+  llvm::Constant* JavaObjectNullConstant;
+  llvm::Constant* MaxArraySizeConstant;
+  llvm::Constant* JavaArraySizeConstant;
 
   llvm::Function* ThrowExceptionFunction;
   llvm::Function* NullPointerExceptionFunction;

Modified: vmkit/trunk/include/mvm/JIT.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/mvm/JIT.h?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/include/mvm/JIT.h (original)
+++ vmkit/trunk/include/mvm/JIT.h Mon Jul 20 15:25:05 2009
@@ -115,80 +115,79 @@
   llvm::Function* llvm_atomic_lcs_ptr;
 
 
-  static llvm::Constant* constantInt8Zero;
-  static llvm::Constant* constantZero;
-  static llvm::Constant* constantOne;
-  static llvm::Constant* constantTwo;
-  static llvm::Constant* constantThree;
-  static llvm::Constant* constantFour;
-  static llvm::Constant* constantFive;
-  static llvm::Constant* constantSix;
-  static llvm::Constant* constantSeven;
-  static llvm::Constant* constantEight;
-  static llvm::Constant* constantMinusOne;
-  static llvm::Constant* constantLongMinusOne;
-  static llvm::Constant* constantLongZero;
-  static llvm::Constant* constantLongOne;
-  static llvm::Constant* constantMinInt;
-  static llvm::Constant* constantMaxInt;
-  static llvm::Constant* constantMinLong;
-  static llvm::Constant* constantMaxLong;
-  static llvm::Constant*  constantFloatZero;
-  static llvm::Constant*  constantFloatOne;
-  static llvm::Constant*  constantFloatTwo;
-  static llvm::Constant*  constantDoubleZero;
-  static llvm::Constant*  constantDoubleOne;
-  static llvm::Constant*  constantMaxIntFloat;
-  static llvm::Constant*  constantMinIntFloat;
-  static llvm::Constant*  constantMinLongFloat;
-  static llvm::Constant*  constantMinLongDouble;
-  static llvm::Constant*  constantMaxLongFloat;
-  static llvm::Constant*  constantMaxIntDouble;
-  static llvm::Constant*  constantMinIntDouble;
-  static llvm::Constant*  constantMaxLongDouble;
-  static llvm::Constant*  constantDoubleInfinity;
-  static llvm::Constant*  constantDoubleMinusInfinity;
-  static llvm::Constant*  constantFloatInfinity;
-  static llvm::Constant*  constantFloatMinusInfinity;
-  static llvm::Constant*  constantFloatMinusZero;
-  static llvm::Constant*  constantDoubleMinusZero;
-  static llvm::Constant*    constantPtrNull;
-  static llvm::Constant* constantPtrLogSize;
-  static llvm::Constant* constantThreadIDMask;
-  static llvm::Constant* constantStackOverflowMask;
-  static llvm::Constant* constantFatMask;
-  static llvm::Constant* constantPtrOne;
-  static llvm::Constant* constantPtrZero;
-  static const llvm::PointerType* ptrType;
-  static const llvm::PointerType* ptr32Type;
-  static const llvm::PointerType* ptrPtrType;
-  static const llvm::Type* arrayPtrType;
-  static const llvm::Type* pointerSizeType;
-
-  static llvm::ExecutionEngine* executionEngine;
-  static mvm::LockNormal protectEngine;
-  static llvm::Module *globalModule;
-  static llvm::LLVMContext *globalContext;
-  static llvm::ExistingModuleProvider *globalModuleProvider;
-  static llvm::FunctionPassManager* globalFunctionPasses;
-  static const llvm::TargetData* TheTargetData;
+   llvm::Constant* constantInt8Zero;
+   llvm::Constant* constantZero;
+   llvm::Constant* constantOne;
+   llvm::Constant* constantTwo;
+   llvm::Constant* constantThree;
+   llvm::Constant* constantFour;
+   llvm::Constant* constantFive;
+   llvm::Constant* constantSix;
+   llvm::Constant* constantSeven;
+   llvm::Constant* constantEight;
+   llvm::Constant* constantMinusOne;
+   llvm::Constant* constantLongMinusOne;
+   llvm::Constant* constantLongZero;
+   llvm::Constant* constantLongOne;
+   llvm::Constant* constantMinInt;
+   llvm::Constant* constantMaxInt;
+   llvm::Constant* constantMinLong;
+   llvm::Constant* constantMaxLong;
+   llvm::Constant*  constantFloatZero;
+   llvm::Constant*  constantFloatOne;
+   llvm::Constant*  constantFloatTwo;
+   llvm::Constant*  constantDoubleZero;
+   llvm::Constant*  constantDoubleOne;
+   llvm::Constant*  constantMaxIntFloat;
+   llvm::Constant*  constantMinIntFloat;
+   llvm::Constant*  constantMinLongFloat;
+   llvm::Constant*  constantMinLongDouble;
+   llvm::Constant*  constantMaxLongFloat;
+   llvm::Constant*  constantMaxIntDouble;
+   llvm::Constant*  constantMinIntDouble;
+   llvm::Constant*  constantMaxLongDouble;
+   llvm::Constant*  constantDoubleInfinity;
+   llvm::Constant*  constantDoubleMinusInfinity;
+   llvm::Constant*  constantFloatInfinity;
+   llvm::Constant*  constantFloatMinusInfinity;
+   llvm::Constant*  constantFloatMinusZero;
+   llvm::Constant*  constantDoubleMinusZero;
+   llvm::Constant*    constantPtrNull;
+   llvm::Constant* constantPtrLogSize;
+   llvm::Constant* constantThreadIDMask;
+   llvm::Constant* constantStackOverflowMask;
+   llvm::Constant* constantFatMask;
+   llvm::Constant* constantPtrOne;
+   llvm::Constant* constantPtrZero;
+   static const llvm::PointerType* ptrType;
+   static const llvm::PointerType* ptr32Type;
+   static const llvm::PointerType* ptrPtrType;
+   static const llvm::Type* arrayPtrType;
+   static const llvm::Type* pointerSizeType;
+
+   static llvm::ExecutionEngine* executionEngine;
+   static mvm::LockNormal protectEngine;
+   static llvm::Module *globalModule;
+   static llvm::ExistingModuleProvider *globalModuleProvider;
+   static llvm::FunctionPassManager* globalFunctionPasses;
+   static const llvm::TargetData* TheTargetData;
   
-  static uint64 getTypeSize(const llvm::Type* type);
-  static void runPasses(llvm::Function* func, llvm::FunctionPassManager*);
-  static void initialise(llvm::CodeGenOpt::Level = llvm::CodeGenOpt::Default,
+   static uint64 getTypeSize(const llvm::Type* type);
+   static void runPasses(llvm::Function* func, llvm::FunctionPassManager*);
+   static void initialise(llvm::CodeGenOpt::Level = llvm::CodeGenOpt::Default,
                          llvm::Module* TheModule = 0,
                          llvm::TargetMachine* TheTarget = 0);
 
-  static int disassemble(unsigned int* addr);
+   static int disassemble(unsigned int* addr);
   
-  static void protectIR();
-  static void unprotectIR();
+   static void protectIR();
+   static void unprotectIR();
 
-  static void copyDefinitions(llvm::Module* Dst, llvm::Module* Src);
+   static void copyDefinitions(llvm::Module* Dst, llvm::Module* Src);
 
-  static void AddStandardCompilePasses();
+   static void AddStandardCompilePasses();
 
-  static const char* getHostTriple();
+   static const char* getHostTriple();
 };
 
 } // end namespace mvm

Modified: vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp Mon Jul 20 15:25:05 2009
@@ -360,7 +360,7 @@
     Value* val = new BitCastInst(ptr, LAI.llvmTypePtr, "", currentBlock);
     Value* arg = new LoadInst(val, "", currentBlock);
     Args.push_back(arg);
-    ptr = GetElementPtrInst::Create(ptr, JnjvmModule::constantEight, "",
+    ptr = GetElementPtrInst::Create(ptr, Mod->getIntrinsics()->constantEight,"",
                                     currentBlock);
   }
 

Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Mon Jul 20 15:25:05 2009
@@ -142,7 +142,7 @@
     }
   }
   Array = SI->second; 
-  Constant* GEPs[2] = { JnjvmModule::constantZero, MOffset };
+  Constant* GEPs[2] = { getIntrinsics()->constantZero, MOffset };
   return ConstantExpr::getGetElementPtr(Array, GEPs, 2);
 }
 
@@ -219,11 +219,13 @@
 
   Constant* Cl = getNativeClass(cl);
 
-  Constant* GEP[2] = { JnjvmModule::constantZero, JnjvmModule::constantZero };
+  Constant* GEP[2] = { getIntrinsics()->constantZero,
+                       getIntrinsics()->constantZero };
   
   Constant* TCMArray = ConstantExpr::getGetElementPtr(Cl, GEP, 2);
     
-  Constant* GEP2[2] = { JnjvmModule::constantZero, JnjvmModule::constantZero };
+  Constant* GEP2[2] = { getIntrinsics()->constantZero,
+                        getIntrinsics()->constantZero };
 
   Constant* Ptr = ConstantExpr::getGetElementPtr(TCMArray, GEP2, 2);
   return Ptr;
@@ -978,8 +980,8 @@
     dyn_cast<StructType>(JnjvmModule::JavaClassArrayType->getContainedType(0));
   
   std::vector<Constant*> ClassElts;
-  Constant* ClGEPs[2] = { JnjvmModule::constantZero,
-                          JnjvmModule::constantZero };
+  Constant* ClGEPs[2] = { getIntrinsics()->constantZero,
+                          getIntrinsics()->constantZero };
   
   // common class
   ClassElts.push_back(CreateConstantFromCommonClass(cl));

Modified: vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JnjvmModule.cpp Mon Jul 20 15:25:05 2009
@@ -54,31 +54,11 @@
 const llvm::Type* JnjvmModule::JnjvmType = 0;
 #endif
 
-llvm::Constant*     JnjvmModule::JavaObjectNullConstant;
-llvm::Constant*     JnjvmModule::MaxArraySizeConstant;
-llvm::Constant*     JnjvmModule::JavaArraySizeConstant;
-llvm::Constant*     JnjvmModule::OffsetObjectSizeInClassConstant;
-llvm::Constant*     JnjvmModule::OffsetVTInClassConstant;
-llvm::Constant*     JnjvmModule::OffsetTaskClassMirrorInClassConstant;
-llvm::Constant*     JnjvmModule::OffsetStaticInstanceInTaskClassMirrorConstant;
-llvm::Constant*     JnjvmModule::OffsetStatusInTaskClassMirrorConstant;
-llvm::Constant*     JnjvmModule::OffsetInitializedInTaskClassMirrorConstant;
-llvm::Constant*     JnjvmModule::OffsetJavaExceptionInThreadConstant;
-llvm::Constant*     JnjvmModule::OffsetCXXExceptionInThreadConstant;
-llvm::Constant*     JnjvmModule::ClassReadyConstant;
 const llvm::Type*   JnjvmModule::JavaClassType;
 const llvm::Type*   JnjvmModule::JavaClassPrimitiveType;
 const llvm::Type*   JnjvmModule::JavaClassArrayType;
 const llvm::Type*   JnjvmModule::JavaCommonClassType;
 const llvm::Type*   JnjvmModule::VTType;
-llvm::Constant*     JnjvmModule::JavaArrayElementsOffsetConstant;
-llvm::Constant*     JnjvmModule::JavaArraySizeOffsetConstant;
-llvm::Constant*     JnjvmModule::JavaObjectLockOffsetConstant;
-llvm::Constant*     JnjvmModule::JavaObjectVTOffsetConstant;
-llvm::Constant*     JnjvmModule::OffsetClassInVTConstant;
-llvm::Constant*     JnjvmModule::OffsetDepthInVTConstant;
-llvm::Constant*     JnjvmModule::OffsetDisplayInVTConstant;
-llvm::Constant*     JnjvmModule::OffsetBaseClassVTInVTConstant;
 
 
 JavaLLVMCompiler::JavaLLVMCompiler(const std::string& str) :
@@ -113,7 +93,6 @@
 
 void JnjvmModule::initialise() {
   Module* module = globalModule;
-  LLVMContext& Context = module->getContext();
   jnjvm::llvm_runtime::makeLLVMModuleContents(module);
 
   VTType = PointerType::getUnqual(module->getTypeByName("VT"));
@@ -176,7 +155,23 @@
     PointerType::getUnqual(module->getTypeByName("Attribut"));
   JavaThreadType =
     PointerType::getUnqual(module->getTypeByName("JavaThread"));
+ 
+  LLVMAssessorInfo::initialise();
+}
+
+Function* JavaLLVMCompiler::getMethod(JavaMethod* meth) {
+  return getMethodInfo(meth)->getMethod();
+}
 
+JnjvmModule::JnjvmModule(llvm::Module* module) :
+  MvmModule(module) {
+  LLVMContext& Context = module->getContext();
+  
+  if (!VTType) {
+    initialise();
+    copyDefinitions(module, globalModule);
+  }
+  
   JavaObjectNullConstant =
     module->getContext().getNullValue(JnjvmModule::JavaObjectType);
   MaxArraySizeConstant = Context.getConstantInt(Type::Int32Ty,
@@ -185,41 +180,26 @@
     Context.getConstantInt(Type::Int32Ty, sizeof(JavaObject) + sizeof(ssize_t));
   
   
-  JavaArrayElementsOffsetConstant = mvm::MvmModule::constantTwo;
-  JavaArraySizeOffsetConstant = mvm::MvmModule::constantOne;
-  JavaObjectLockOffsetConstant = mvm::MvmModule::constantOne;
-  JavaObjectVTOffsetConstant = mvm::MvmModule::constantZero;
-  OffsetClassInVTConstant = mvm::MvmModule::constantThree;
-  OffsetDepthInVTConstant = mvm::MvmModule::constantFour;
-  OffsetDisplayInVTConstant = mvm::MvmModule::constantSeven;
+  JavaArrayElementsOffsetConstant = constantTwo;
+  JavaArraySizeOffsetConstant = constantOne;
+  JavaObjectLockOffsetConstant = constantOne;
+  JavaObjectVTOffsetConstant = constantZero;
+  OffsetClassInVTConstant = constantThree;
+  OffsetDepthInVTConstant = constantFour;
+  OffsetDisplayInVTConstant = constantSeven;
   OffsetBaseClassVTInVTConstant = Context.getConstantInt(Type::Int32Ty, 17);
   
-  OffsetObjectSizeInClassConstant = mvm::MvmModule::constantOne;
+  OffsetObjectSizeInClassConstant = constantOne;
   OffsetVTInClassConstant = Context.getConstantInt(Type::Int32Ty, 7);
-  OffsetTaskClassMirrorInClassConstant = mvm::MvmModule::constantTwo;
-  OffsetStaticInstanceInTaskClassMirrorConstant = mvm::MvmModule::constantTwo;
-  OffsetStatusInTaskClassMirrorConstant = mvm::MvmModule::constantZero;
-  OffsetInitializedInTaskClassMirrorConstant = mvm::MvmModule::constantOne;
+  OffsetTaskClassMirrorInClassConstant = constantTwo;
+  OffsetStaticInstanceInTaskClassMirrorConstant = constantTwo;
+  OffsetStatusInTaskClassMirrorConstant = constantZero;
+  OffsetInitializedInTaskClassMirrorConstant = constantOne;
   
   OffsetJavaExceptionInThreadConstant = Context.getConstantInt(Type::Int32Ty, 9);
   OffsetCXXExceptionInThreadConstant = Context.getConstantInt(Type::Int32Ty, 10);
   
   ClassReadyConstant = Context.getConstantInt(Type::Int8Ty, ready);
- 
-  LLVMAssessorInfo::initialise();
-}
-
-Function* JavaLLVMCompiler::getMethod(JavaMethod* meth) {
-  return getMethodInfo(meth)->getMethod();
-}
-
-JnjvmModule::JnjvmModule(llvm::Module* module) :
-  MvmModule(module) {
-  
-  if (!VTType) {
-    initialise();
-    copyDefinitions(module, globalModule);
-  }
   
   module->addTypeName("JavaObject", JavaObjectType->getContainedType(0));
   module->addTypeName("JavaArray", JavaArrayType->getContainedType(0));

Modified: vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/LowerConstantCalls.cpp Mon Jul 20 15:25:05 2009
@@ -416,7 +416,7 @@
           Value* arg1 = GetElementPtrInst::Create(CTP, indexes, "", CI);
           arg1 = new LoadInst(arg1, "", false, CI);
           Value* test = new ICmpInst(CI, ICmpInst::ICMP_EQ, arg1,
-                                     mvm::MvmModule::constantPtrNull, "");
+                                     module->constantPtrNull, "");
  
           BasicBlock* trueCl = BasicBlock::Create("Ctp OK", &F);
           BasicBlock* falseCl = BasicBlock::Create("Ctp Not OK", &F);

Modified: vmkit/trunk/lib/Mvm/Compiler/JIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/Mvm/Compiler/JIT.cpp?rev=76461&r1=76460&r2=76461&view=diff

==============================================================================
--- vmkit/trunk/lib/Mvm/Compiler/JIT.cpp (original)
+++ vmkit/trunk/lib/Mvm/Compiler/JIT.cpp Mon Jul 20 15:25:05 2009
@@ -55,8 +55,7 @@
   llvm::ExceptionHandling = false;
 #endif
   if (!M) {
-    globalContext = new llvm::LLVMContext();
-    globalModule = new llvm::Module("bootstrap module", *globalContext);
+    globalModule = new Module("bootstrap module", *(new LLVMContext()));
     globalModuleProvider = new ExistingModuleProvider (globalModule);
 
     InitializeNativeTarget();
@@ -86,6 +85,16 @@
   pointerSizeType = globalModule->getPointerSize() == Module::Pointer32 ?
     Type::Int32Ty : Type::Int64Ty;
   
+}
+
+
+MvmModule::MvmModule(llvm::Module* module) {
+
+  module->setDataLayout(globalModule->getDataLayout());
+  module->setTargetTriple(globalModule->getTargetTriple());
+  LLVMContext* globalContext = &(module->getContext());
+    
+  
   // Constant declaration
   constantLongMinusOne = globalContext->getConstantInt(Type::Int64Ty, (uint64_t)-1);
   constantLongZero = globalContext->getConstantInt(Type::Int64Ty, 0);
@@ -137,14 +146,8 @@
   constantPtrLogSize = 
     globalContext->getConstantInt(Type::Int32Ty, sizeof(void*) == 8 ? 3 : 2);
   arrayPtrType = PointerType::getUnqual(ArrayType::get(Type::Int8Ty, 0));
-}
 
 
-MvmModule::MvmModule(llvm::Module* module) {
-
-  module->setDataLayout(globalModule->getDataLayout());
-  module->setTargetTriple(globalModule->getTargetTriple());
-  
   copyDefinitions(module, globalModule); 
     
   printFloatLLVM = module->getFunction("printFloat");
@@ -208,50 +211,6 @@
 }
 
 
-llvm::Constant* MvmModule::constantInt8Zero;
-llvm::Constant* MvmModule::constantZero;
-llvm::Constant* MvmModule::constantOne;
-llvm::Constant* MvmModule::constantTwo;
-llvm::Constant* MvmModule::constantThree;
-llvm::Constant* MvmModule::constantFour;
-llvm::Constant* MvmModule::constantFive;
-llvm::Constant* MvmModule::constantSix;
-llvm::Constant* MvmModule::constantSeven;
-llvm::Constant* MvmModule::constantEight;
-llvm::Constant* MvmModule::constantMinusOne;
-llvm::Constant* MvmModule::constantLongMinusOne;
-llvm::Constant* MvmModule::constantLongZero;
-llvm::Constant* MvmModule::constantLongOne;
-llvm::Constant* MvmModule::constantMinInt;
-llvm::Constant* MvmModule::constantMaxInt;
-llvm::Constant* MvmModule::constantMinLong;
-llvm::Constant* MvmModule::constantMaxLong;
-llvm::Constant*  MvmModule::constantFloatZero;
-llvm::Constant*  MvmModule::constantFloatOne;
-llvm::Constant*  MvmModule::constantFloatTwo;
-llvm::Constant*  MvmModule::constantDoubleZero;
-llvm::Constant*  MvmModule::constantDoubleOne;
-llvm::Constant*  MvmModule::constantMaxIntFloat;
-llvm::Constant*  MvmModule::constantMinIntFloat;
-llvm::Constant*  MvmModule::constantMinLongFloat;
-llvm::Constant*  MvmModule::constantMinLongDouble;
-llvm::Constant*  MvmModule::constantMaxLongFloat;
-llvm::Constant*  MvmModule::constantMaxIntDouble;
-llvm::Constant*  MvmModule::constantMinIntDouble;
-llvm::Constant*  MvmModule::constantMaxLongDouble;
-llvm::Constant*  MvmModule::constantDoubleInfinity;
-llvm::Constant*  MvmModule::constantDoubleMinusInfinity;
-llvm::Constant*  MvmModule::constantFloatInfinity;
-llvm::Constant*  MvmModule::constantFloatMinusInfinity;
-llvm::Constant*  MvmModule::constantFloatMinusZero;
-llvm::Constant*  MvmModule::constantDoubleMinusZero;
-llvm::Constant*    MvmModule::constantPtrNull;
-llvm::Constant* MvmModule::constantPtrLogSize;
-llvm::Constant* MvmModule::constantThreadIDMask;
-llvm::Constant* MvmModule::constantStackOverflowMask;
-llvm::Constant* MvmModule::constantFatMask;
-llvm::Constant* MvmModule::constantPtrOne;
-llvm::Constant* MvmModule::constantPtrZero;
 const llvm::PointerType* MvmModule::ptrType;
 const llvm::PointerType* MvmModule::ptr32Type;
 const llvm::PointerType* MvmModule::ptrPtrType;
@@ -260,7 +219,6 @@
 
 const llvm::TargetData* MvmModule::TheTargetData;
 llvm::Module *MvmModule::globalModule;
-llvm::LLVMContext *MvmModule::globalContext;
 llvm::ExistingModuleProvider *MvmModule::globalModuleProvider;
 llvm::FunctionPassManager* MvmModule::globalFunctionPasses;
 llvm::ExecutionEngine* MvmModule::executionEngine;

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

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/CLIJit.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/CLIJit.cpp Mon Jul 20 15:25:05 2009
@@ -104,7 +104,7 @@
 #endif
  
   Function* llvmFunction = block->getParent();
-  Constant* zero = mvm::MvmModule::constantZero;
+  Constant* zero = cl->vm->module->constantZero;
   for (std::vector<VMField*>::iterator i = fields.begin(), 
             e = fields.end(); i!= e; ++i) {
     VMField* field = *i;
@@ -160,9 +160,9 @@
   Argument* GC = ++(func->arg_begin());
 #endif
     // Constant Definitions
-  Constant* const_int32_8 = mvm::MvmModule::constantZero;
-  Constant* const_int32_9 = mvm::MvmModule::constantOne;
-  Constant* const_int32_10 = mvm::MvmModule::constantTwo;
+  Constant* const_int32_8 = cl->vm->module->constantZero;
+  Constant* const_int32_9 = cl->vm->module->constantOne;
+  Constant* const_int32_10 = cl->vm->module->constantTwo;
   
   
   // Function Definitions
@@ -856,11 +856,11 @@
 }
 
 Constant* VMArray::sizeOffset() {
-  return mvm::MvmModule::constantOne;
+  return VMThread::get()->vm->module->constantOne;
 }
 
 Constant* VMArray::elementsOffset() {
-  return mvm::MvmModule::constantTwo;
+  return VMThread::get()->vm->module->constantTwo;
 }
 
 Value* CLIJit::arraySize(Value* array) {

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

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/CLIJitMeta.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/CLIJitMeta.cpp Mon Jul 20 15:25:05 2009
@@ -423,5 +423,5 @@
 }
 
 Constant* VMObject::classOffset() {
-  return mvm::MvmModule::constantOne;
+  return VMThread::get()->vm->module->constantOne;
 }

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

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/LowerArrayLength.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/LowerArrayLength.cpp Mon Jul 20 15:25:05 2009
@@ -46,7 +46,7 @@
           Changed = true;
           Value* val = CI->getOperand(1); // get the array
           std::vector<Value*> args; //size=  2
-          args.push_back(mvm::MvmModule::constantZero);
+          args.push_back(F.getContext()->getConstantInt(Type::Int32Ty, 0));
           args.push_back(n3::VMArray::sizeOffset());
           Value* ptr = GetElementPtrInst::Create(val, args.begin(), args.end(),
                                                  "", CI);

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

==============================================================================
--- vmkit/trunk/lib/N3/VMCore/VMClass.cpp (original)
+++ vmkit/trunk/lib/N3/VMCore/VMClass.cpp Mon Jul 20 15:25:05 2009
@@ -320,7 +320,7 @@
     if (super == MSCorlib::pValue) {
       uint32 size = virtualFields.size();
       if (size == 1) {
-        virtualFields[0]->offset = mvm::MvmModule::constantZero;
+        virtualFields[0]->offset = VMThread::get()->vm->module->constantZero;
         ResultTy = virtualFields[0]->signature->naturalType;
       } else if (size == 0) {
         ResultTy = llvm::Type::VoidTy;





More information about the vmkit-commits mailing list