[vmkit-commits] [vmkit] r69089 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h lib/JnJVM/Compiler/JavaAOTCompiler.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Tue Apr 14 15:19:19 PDT 2009
Author: geoffray
Date: Tue Apr 14 17:19:18 2009
New Revision: 69089
URL: http://llvm.org/viewvc/llvm-project?rev=69089&view=rev
Log:
Add a boolean flag to verify if we're compiling rt.jar, and always lookup native arrays
at boot time of a statically compiled library.
Modified:
vmkit/trunk/include/jnjvm/JnjvmModule.h
vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=69089&r1=69088&r2=69089&view=diff
==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Tue Apr 14 17:19:18 2009
@@ -640,6 +640,8 @@
bool generateTracers;
bool generateStubs;
bool assumeCompiled;
+
+ bool compileRT;
void CreateStaticInitializer();
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=69089&r1=69088&r2=69089&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Tue Apr 14 17:19:18 2009
@@ -1252,6 +1252,7 @@
generateTracers = true;
generateStubs = true;
assumeCompiled = false;
+ compileRT = false;
std::vector<const llvm::Type*> llvmArgs;
llvmArgs.push_back(JnjvmModule::ptrType); // class loader.
@@ -1396,12 +1397,10 @@
for (array_class_iterator i = arrayClasses.begin(),
e = arrayClasses.end(); i != e; ++i) {
- if (!(i->first->baseClass()->isPrimitive())) {
- Args[0] = loader;
- Args[1] = i->second;
- Args[2] = getUTF8(i->first->name);
- CallInst::Create(GetClassArray, Args, Args + 3, "", currentBlock);
- }
+ Args[0] = loader;
+ Args[1] = i->second;
+ Args[2] = getUTF8(i->first->name);
+ CallInst::Create(GetClassArray, Args, Args + 3, "", currentBlock);
}
@@ -1520,6 +1519,7 @@
realName[size - 6] = 0;
const UTF8* utf8 = bootstrapLoader->asciizConstructUTF8(realName);
Class* cl = bootstrapLoader->constructClass(utf8, res);
+ if (cl == ClassArray::SuperArray) M->compileRT = true;
classes.push_back(cl);
}
}
More information about the vmkit-commits
mailing list