[vmkit-commits] [vmkit] r65442 - /vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed Feb 25 03:14:51 PST 2009
Author: geoffray
Date: Wed Feb 25 05:14:50 2009
New Revision: 65442
URL: http://llvm.org/viewvc/llvm-project?rev=65442&view=rev
Log:
Change the way of emitting things during AOT based on the module flags.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=65442&r1=65441&r2=65442&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Wed Feb 25 05:14:50 2009
@@ -123,7 +123,9 @@
if (staticCompilation) {
if (classDef->isClass() ||
- (classDef->isArray() && isCompiling(classDef))) {
+ (classDef->isArray() && isCompiling(classDef)) ||
+ (assumeCompiled && !(classDef->isArray() &&
+ classDef->asArrayClass()->baseClass()->isPrimitive()))) {
native_class_iterator End = nativeClasses.end();
native_class_iterator I = nativeClasses.find(classDef);
if (I == End) {
@@ -139,7 +141,7 @@
new GlobalVariable(Ty, false, GlobalValue::ExternalLinkage, 0,
classDef->printString(), this);
- nativeClasses.insert(std::make_pair((Class*)classDef, varGV));
+ nativeClasses.insert(std::make_pair(classDef, varGV));
if (classDef->isClass() && isCompiling(classDef->asClass())) {
Constant* C = CreateConstantFromClass((Class*)classDef);
@@ -554,6 +556,10 @@
#ifdef WITH_TRACER
llvm::Function* JnjvmModule::makeTracer(Class* cl, bool stat) {
+ if (isStaticCompiling() && !generateTracers) {
+ return JavaObjectTracerFunction;
+ }
+
LLVMClassInfo* LCI = (LLVMClassInfo*)getClassInfo(cl);
const Type* type = stat ? LCI->getStaticType() : LCI->getVirtualType();
JavaField* fields = 0;
@@ -2311,6 +2317,10 @@
MvmModule(ModuleID) {
staticCompilation = sc;
+ generateTracers = true;
+ generateStubs = true;
+ enabledException = true;
+ assumeCompiled = false;
if (!VTType) initialise();
Module* module = initialModule;
More information about the vmkit-commits
mailing list