[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