[vmkit-commits] [vmkit] r75131 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h lib/JnJVM/Compiler/JavaAOTCompiler.cpp tools/vmjc/vmjc.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Thu Jul 9 03:27:02 PDT 2009
Author: geoffray
Date: Thu Jul 9 05:27:00 2009
New Revision: 75131
URL: http://llvm.org/viewvc/llvm-project?rev=75131&view=rev
Log:
One can set properties to the VM (-Da=b) when static compiling. This
may be useful for clinits.
Modified:
vmkit/trunk/include/jnjvm/JnjvmModule.h
vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
vmkit/trunk/tools/vmjc/vmjc.cpp
Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=75131&r1=75130&r2=75131&view=diff
==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Thu Jul 9 05:27:00 2009
@@ -47,6 +47,7 @@
class JavaObject;
class JavaString;
class JavaVirtualTable;
+class Jnjvm;
class JnjvmClassLoader;
class JnjvmModule;
class Typedef;
@@ -648,7 +649,7 @@
void printStats();
- void compileFile(JnjvmClassLoader* JCL, const char* name);
+ void compileFile(Jnjvm* vm, const char* name);
void compileClass(Class* cl);
void generateMain(const char* name, bool jit);
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=75131&r1=75130&r2=75131&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Thu Jul 9 05:27:00 2009
@@ -1733,10 +1733,8 @@
}
-void JavaAOTCompiler::compileFile(JnjvmClassLoader* JCL, const char* n) {
+void JavaAOTCompiler::compileFile(Jnjvm* vm, const char* n) {
name = n;
- mvm::BumpPtrAllocator A;
- Jnjvm* vm = new(A, "Bootstrap loader") Jnjvm(A, (JnjvmBootstrapLoader*)JCL);
JavaThread* th = new JavaThread(0, 0, vm);
vm->setMainThread(th);
th->start((void (*)(mvm::Thread*))mainCompilerStart);
Modified: vmkit/trunk/tools/vmjc/vmjc.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/vmjc/vmjc.cpp?rev=75131&r1=75130&r2=75131&view=diff
==============================================================================
--- vmkit/trunk/tools/vmjc/vmjc.cpp (original)
+++ vmkit/trunk/tools/vmjc/vmjc.cpp Thu Jul 9 05:27:00 2009
@@ -47,6 +47,7 @@
#include "jnjvm/JnjvmModuleProvider.h"
#include "../../lib/JnJVM/VMCore/JnjvmClassLoader.h"
+#include "../../lib/JnJVM/VMCore/Jnjvm.h"
#include <iostream>
#include <fstream>
@@ -114,6 +115,9 @@
cl::desc("Print stats by the AOT compiler"));
+static cl::list<std::string>
+Properties("D", cl::desc("Set a property"), cl::Prefix, cl::ZeroOrMore);
+
inline void addPass(FunctionPassManager *PM, Pass *P) {
@@ -218,7 +222,25 @@
if (DisableStubs) Comp->generateStubs = false;
if (AssumeCompiled) Comp->assumeCompiled = true;
if (WithClinit) Comp->runClinit = true;
- Comp->compileFile(JCL, InputFilename.c_str());
+
+ mvm::BumpPtrAllocator A;
+ Jnjvm* vm = new(A, "Bootstrap loader") Jnjvm(A, (JnjvmBootstrapLoader*)JCL);
+
+ for (std::vector<std::string>::iterator i = Properties.begin(),
+ e = Properties.end(); i != e; ++i) {
+
+ char* key = new char [(*i).size()+1];
+ strcpy(key, (*i).c_str());
+ char* value = strchr(key, '=');
+ if (!value) {
+ delete[] key;
+ } else {
+ value[0] = 0;
+ vm->addProperty(key, &value[1]);
+ }
+ }
+
+ Comp->compileFile(vm, InputFilename.c_str());
if (!MainClass.empty()) {
Comp->generateMain(MainClass.c_str(), WithJIT);
More information about the vmkit-commits
mailing list