[vmkit-commits] [vmkit] r62235 - in /vmkit/trunk: include/mvm/CompilationUnit.h include/mvm/JIT.h lib/JnJVM/VMCore/JnjvmClassLoader.cpp lib/JnJVM/VMCore/JnjvmClassLoader.h lib/JnJVM/VMCore/JnjvmModuleProvider.cpp lib/Mvm/Runtime/JIT.cpp tools/vmjc/vmjc.cpp tools/vmkit/Launcher.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Wed Jan 14 09:39:58 PST 2009


Author: geoffray
Date: Wed Jan 14 11:39:57 2009
New Revision: 62235

URL: http://llvm.org/viewvc/llvm-project?rev=62235&view=rev
Log:
Move function passes to mvm::MvmModule.


Modified:
    vmkit/trunk/include/mvm/CompilationUnit.h
    vmkit/trunk/include/mvm/JIT.h
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
    vmkit/trunk/lib/Mvm/Runtime/JIT.cpp
    vmkit/trunk/tools/vmjc/vmjc.cpp
    vmkit/trunk/tools/vmkit/Launcher.cpp

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

==============================================================================
--- vmkit/trunk/include/mvm/CompilationUnit.h (original)
+++ vmkit/trunk/include/mvm/CompilationUnit.h Wed Jan 14 11:39:57 2009
@@ -25,11 +25,12 @@
 
 namespace mvm {
 
+class MvmModule;
+
 class CompilationUnit : public mvm::Object {
 public:
-  llvm::Module* TheModule;
+  MvmModule* TheModule;
   llvm::ModuleProvider* TheModuleProvider;
-  llvm::FunctionPassManager* FunctionPasses;
 
   void AddStandardCompilePasses();
 };

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

==============================================================================
--- vmkit/trunk/include/mvm/JIT.h (original)
+++ vmkit/trunk/include/mvm/JIT.h Wed Jan 14 11:39:57 2009
@@ -109,7 +109,6 @@
   llvm::Function* llvm_atomic_lcs_i64;
 
 
-
   static llvm::ConstantInt* constantInt8Zero;
   static llvm::ConstantInt* constantZero;
   static llvm::ConstantInt* constantOne;
@@ -164,6 +163,7 @@
   static mvm::LockRecursive protectIR;
   static llvm::Module *globalModule;
   static llvm::ExistingModuleProvider *globalModuleProvider;
+  static llvm::FunctionPassManager* globalFunctionPasses;
   static const llvm::TargetData* TheTargetData;
   
   static uint64 getTypeSize(const llvm::Type* type);

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp?rev=62235&r1=62234&r2=62235&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.cpp Wed Jan 14 11:39:57 2009
@@ -32,10 +32,6 @@
 #endif
 
 #include "debug.h"
-
-// TODO: get rid of that
-#include "llvm/PassManager.h"
-
 #include "mvm/Allocator.h"
 
 #include "Classpath.h"
@@ -70,7 +66,6 @@
   
   TheModule = new JnjvmModule("Bootstrap JnJVM", staticCompilation);
   TheModuleProvider = new JnjvmModuleProvider(getModule());
-  FunctionPasses = new FunctionPassManager(TheModuleProvider);
 
   hashUTF8 = new(allocator) UTF8Map(allocator, 0);
   classes = new(allocator) ClassMap();
@@ -280,7 +275,6 @@
   TheModule = new JnjvmModule("Applicative loader");
   TheModuleProvider = new JnjvmModuleProvider(getModule());
   bootstrapLoader = JCL.bootstrapLoader;
-  FunctionPasses = bootstrapLoader->FunctionPasses;
   
   hashUTF8 = new(allocator) UTF8Map(allocator,
                                     bootstrapLoader->upcalls->ArrayOfChar);
@@ -820,7 +814,6 @@
 
 
 JnjvmBootstrapLoader::~JnjvmBootstrapLoader() {
-  delete FunctionPasses;
 }
 
 JavaString* JnjvmClassLoader::UTF8ToStr(const UTF8* val) {

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h?rev=62235&r1=62234&r2=62235&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmClassLoader.h Wed Jan 14 11:39:57 2009
@@ -224,7 +224,6 @@
     TheModuleProvider = 0;
     isolate = 0;
     classes = 0;
-    FunctionPasses = 0;
   }
 
   /// loadClass - The user class that defines the loadClass method.

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp?rev=62235&r1=62234&r2=62235&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModuleProvider.cpp Wed Jan 14 11:39:57 2009
@@ -117,22 +117,22 @@
 }
 
 Function* JnjvmModuleProvider::parseFunction(JavaMethod* meth) {
-  LLVMMethodInfo* LMI = ((JnjvmModule*)TheModule)->getMethodInfo(meth);
+  JnjvmModule* M = (JnjvmModule*)TheModule;
+  LLVMMethodInfo* LMI = M->getMethodInfo(meth);
   Function* func = LMI->getMethod();
   if (func->hasNotBeenReadFromBitcode()) {
     // We are jitting. Take the lock.
-    mvm::MvmModule::protectIR.lock();
+    M->protectIR.lock();
     JavaJIT jit(meth, func);
     if (isNative(meth->access)) {
       jit.nativeCompile();
       mvm::MvmModule::runPasses(func, JavaNativeFunctionPasses);
     } else {
       jit.javaCompile();
-      JnjvmClassLoader* loader = meth->classDef->classLoader;
-      mvm::MvmModule::runPasses(func, loader->FunctionPasses);
+      mvm::MvmModule::runPasses(func, M->globalFunctionPasses);
       mvm::MvmModule::runPasses(func, JavaFunctionPasses);
     }
-    mvm::MvmModule::protectIR.unlock();
+    M->protectIR.unlock();
   }
   return func;
 }

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

==============================================================================
--- vmkit/trunk/lib/Mvm/Runtime/JIT.cpp (original)
+++ vmkit/trunk/lib/Mvm/Runtime/JIT.cpp Wed Jan 14 11:39:57 2009
@@ -13,6 +13,7 @@
 #include <llvm/Instructions.h>
 #include <llvm/LinkAllPasses.h>
 #include <llvm/ModuleProvider.h>
+#include <llvm/PassManager.h>
 #include <llvm/Type.h>
 #include <llvm/Analysis/LoopPass.h>
 #include <llvm/Analysis/Verifier.h>
@@ -56,9 +57,12 @@
     TheTargetData = executionEngine->getTargetData();
   } else {
     globalModule = M;
+    globalModuleProvider = new ExistingModuleProvider (globalModule);
     TheTargetData = T->getTargetData();
   }
 
+  globalFunctionPasses = new FunctionPassManager(globalModuleProvider);
+
   
   Module module("unused");
   module.setDataLayout(globalModule->getDataLayout());
@@ -238,6 +242,7 @@
 const llvm::TargetData* MvmModule::TheTargetData;
 llvm::Module *MvmModule::globalModule;
 llvm::ExistingModuleProvider *MvmModule::globalModuleProvider;
+llvm::FunctionPassManager* MvmModule::globalFunctionPasses;
 llvm::ExecutionEngine* MvmModule::executionEngine;
 mvm::LockNormal MvmModule::protectEngine;
 mvm::LockRecursive MvmModule::protectIR;
@@ -273,8 +278,8 @@
   // 
   //PM->add(llvm::createVerifierPass());        // Verify that input is correct
  
-  FunctionPassManager* PM = FunctionPasses;
-  FunctionPasses->add(new TargetData(*MvmModule::TheTargetData));
+  FunctionPassManager* PM = TheModule->globalFunctionPasses;
+  PM->add(new TargetData(*MvmModule::TheTargetData));
 
   addPass(PM, createCFGSimplificationPass()); // Clean up disgusting code
   addPass(PM, createPromoteMemoryToRegisterPass());// Kill useless allocas

Modified: vmkit/trunk/tools/vmjc/vmjc.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/vmjc.cpp?rev=62235&r1=62234&r2=62235&view=diff

==============================================================================
--- vmkit/trunk/tools/vmjc/vmjc.cpp (original)
+++ vmkit/trunk/tools/vmjc/vmjc.cpp Wed Jan 14 11:39:57 2009
@@ -85,7 +85,7 @@
 
 
 void addCommandLinePass(mvm::CompilationUnit* CU, char** argv) {
-  FunctionPassManager* Passes = CU->FunctionPasses;
+  FunctionPassManager* Passes = CU->TheModule->globalFunctionPasses;
 
   // Create a new optimization pass for each one specified on the command line
   for (unsigned i = 0; i < PassList.size(); ++i) {

Modified: vmkit/trunk/tools/vmkit/Launcher.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmkit/Launcher.cpp?rev=62235&r1=62234&r2=62235&view=diff

==============================================================================
--- vmkit/trunk/tools/vmkit/Launcher.cpp (original)
+++ vmkit/trunk/tools/vmkit/Launcher.cpp Wed Jan 14 11:39:57 2009
@@ -67,7 +67,7 @@
 
 
 void addCommandLinePass(mvm::CompilationUnit* CU, char** argv) {
-  FunctionPassManager* Passes = CU->FunctionPasses;
+  FunctionPassManager* Passes = CU->TheModule->globalFunctionPasses;
 
   // Create a new optimization pass for each one specified on the command line
   for (unsigned i = 0; i < PassList.size(); ++i) {





More information about the vmkit-commits mailing list