[vmkit-commits] [vmkit] r136593 - in /vmkit/trunk/lib/J3: Compiler/JavaAOTCompiler.cpp VMCore/Precompiled.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Jul 31 08:48:38 PDT 2011
Author: geoffray
Date: Sun Jul 31 10:48:38 2011
New Revision: 136593
URL: http://llvm.org/viewvc/llvm-project?rev=136593&view=rev
Log:
Emit staticMethods and staticFields directly. There is no alignment when not using global variables.
Modified:
vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
vmkit/trunk/lib/J3/VMCore/Precompiled.cpp
Modified: vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp?rev=136593&r1=136592&r2=136593&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/J3/Compiler/JavaAOTCompiler.cpp Sun Jul 31 10:48:38 2011
@@ -1228,9 +1228,7 @@
ClassElts.push_back(nbVirtualFields);
// staticFields
- // Output null, getLLVMModule() will be set in the initializer. Otherwise, the
- // assembly emitter of LLVM will try to align the data.
- ClassElts.push_back(Constant::getNullValue(JavaIntrinsics.JavaFieldType));
+ ClassElts.push_back(ConstantExpr::getGetElementPtr(fields, nbVirtualFields));
// nbStaticFields
ClassElts.push_back(ConstantInt::get(Type::getInt16Ty(getLLVMContext()), cl->nbStaticFields));
@@ -1285,8 +1283,7 @@
ClassElts.push_back(nbVirtualMethods);
// staticMethods
- // Output null, getLLVMModule() will be set in the initializer.
- ClassElts.push_back(Constant::getNullValue(JavaIntrinsics.JavaMethodType));
+ ClassElts.push_back(ConstantExpr::getGetElementPtr(methods, nbVirtualMethods));
// nbStaticMethods
ClassElts.push_back(ConstantInt::get(Type::getInt16Ty(getLLVMContext()), cl->nbStaticMethods));
Modified: vmkit/trunk/lib/J3/VMCore/Precompiled.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/Precompiled.cpp?rev=136593&r1=136592&r2=136593&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/VMCore/Precompiled.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/Precompiled.cpp Sun Jul 31 10:48:38 2011
@@ -95,10 +95,6 @@
if (cl->isClass()) {
Class* realCl = cl->asClass();
- // To avoid data alignment in the llvm assembly emitter, we set the
- // staticMethods and staticFields fields here.
- realCl->staticMethods = realCl->virtualMethods + realCl->nbVirtualMethods;
- realCl->staticFields = realCl->virtualFields + realCl->nbVirtualFields;
for (uint32 i = 0; i< realCl->nbStaticMethods; ++i) {
JavaMethod& meth = realCl->staticMethods[i];
More information about the vmkit-commits
mailing list