[vmkit-commits] [vmkit] r137033 - /vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Aug 7 02:46:14 PDT 2011
Author: geoffray
Date: Sun Aug 7 04:46:14 2011
New Revision: 137033
URL: http://llvm.org/viewvc/llvm-project?rev=137033&view=rev
Log:
Create the VT after compiling all methods, to generate even less stubs.
Modified:
vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=137033&r1=137032&r2=137033&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Sun Aug 7 04:46:14 2011
@@ -638,9 +638,9 @@
JavaIntrinsics.VTType);
virtualTables.insert(std::make_pair(VT, res));
- if (isCompiling(classDef) || assumeCompiled) {
- Constant* C = CreateConstantFromVT(VT);
- varGV->setInitializer(C);
+ if ((precompile && classDef->isPrimitive())
+ || (!precompile && (isCompiling(classDef) || assumeCompiled))) {
+ varGV->setInitializer(CreateConstantFromVT(VT));
}
return res;
@@ -2399,11 +2399,13 @@
}
}
- // Add all class initializers.
+ // Add all class and VT initializers.
for (ClassMap::iterator i = loader->getClasses()->map.begin(),
e = loader->getClasses()->map.end(); i!= e; ++i) {
- GlobalVariable* gv = getNativeClass(i->second);
- AddInitializerToClass(gv, i->second);
+ AddInitializerToClass(getNativeClass(i->second), i->second);
+ JavaVirtualTable* VT = i->second->virtualVT;
+ GlobalVariable* gv = dyn_cast<GlobalVariable>(getVirtualTable(VT)->getOperand(0));
+ gv->setInitializer(CreateConstantFromVT(VT));
}
// Finally add used stubs to the image.
More information about the vmkit-commits
mailing list