[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