[vmkit-commits] [vmkit] r76435 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h lib/JnJVM/Compiler/JITInfo.cpp lib/JnJVM/Compiler/JavaJITOpcodes.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Mon Jul 20 10:33:37 PDT 2009
Author: geoffray
Date: Mon Jul 20 12:33:37 2009
New Revision: 76435
URL: http://llvm.org/viewvc/llvm-project?rev=76435&view=rev
Log:
Change the LLVMAssessorInfo to take into account LLVMContext.
Modified:
vmkit/trunk/include/jnjvm/JnjvmModule.h
vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp
Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=76435&r1=76434&r2=76435&view=diff
==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Mon Jul 20 12:33:37 2009
@@ -59,8 +59,7 @@
public:
const llvm::Type* llvmType;
const llvm::Type* llvmTypePtr;
- llvm::Constant* llvmNullConstant;
- llvm::Constant* logSizeInBytesConstant;
+ uint8_t logSizeInBytesConstant;
static void initialise();
static std::map<const char, LLVMAssessorInfo> AssessorInfo;
Modified: vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp?rev=76435&r1=76434&r2=76435&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JITInfo.cpp Mon Jul 20 12:33:37 2009
@@ -559,80 +559,49 @@
void LLVMAssessorInfo::initialise() {
AssessorInfo[I_VOID].llvmType = Type::VoidTy;
AssessorInfo[I_VOID].llvmTypePtr = 0;
- AssessorInfo[I_VOID].llvmNullConstant = 0;
AssessorInfo[I_VOID].logSizeInBytesConstant = 0;
AssessorInfo[I_BOOL].llvmType = Type::Int8Ty;
AssessorInfo[I_BOOL].llvmTypePtr = PointerType::getUnqual(Type::Int8Ty);
- AssessorInfo[I_BOOL].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::Int8Ty);
- AssessorInfo[I_BOOL].logSizeInBytesConstant =
- mvm::MvmModule::constantZero;
+ AssessorInfo[I_BOOL].logSizeInBytesConstant = 0;
AssessorInfo[I_BYTE].llvmType = Type::Int8Ty;
AssessorInfo[I_BYTE].llvmTypePtr = PointerType::getUnqual(Type::Int8Ty);
- AssessorInfo[I_BYTE].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::Int8Ty);
- AssessorInfo[I_BYTE].logSizeInBytesConstant =
- mvm::MvmModule::constantZero;
+ AssessorInfo[I_BYTE].logSizeInBytesConstant = 0;
AssessorInfo[I_SHORT].llvmType = Type::Int16Ty;
AssessorInfo[I_SHORT].llvmTypePtr = PointerType::getUnqual(Type::Int16Ty);
- AssessorInfo[I_SHORT].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::Int16Ty);
- AssessorInfo[I_SHORT].logSizeInBytesConstant =
- mvm::MvmModule::constantOne;
+ AssessorInfo[I_SHORT].logSizeInBytesConstant = 1;
AssessorInfo[I_CHAR].llvmType = Type::Int16Ty;
AssessorInfo[I_CHAR].llvmTypePtr = PointerType::getUnqual(Type::Int16Ty);
- AssessorInfo[I_CHAR].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::Int16Ty);
- AssessorInfo[I_CHAR].logSizeInBytesConstant =
- mvm::MvmModule::constantOne;
+ AssessorInfo[I_CHAR].logSizeInBytesConstant = 1;
AssessorInfo[I_INT].llvmType = Type::Int32Ty;
AssessorInfo[I_INT].llvmTypePtr = PointerType::getUnqual(Type::Int32Ty);
- AssessorInfo[I_INT].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::Int32Ty);
- AssessorInfo[I_INT].logSizeInBytesConstant =
- mvm::MvmModule::constantTwo;
+ AssessorInfo[I_INT].logSizeInBytesConstant = 2;
AssessorInfo[I_FLOAT].llvmType = Type::FloatTy;
AssessorInfo[I_FLOAT].llvmTypePtr = PointerType::getUnqual(Type::FloatTy);
- AssessorInfo[I_FLOAT].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::FloatTy);
- AssessorInfo[I_FLOAT].logSizeInBytesConstant =
- mvm::MvmModule::constantTwo;
+ AssessorInfo[I_FLOAT].logSizeInBytesConstant = 2;
AssessorInfo[I_LONG].llvmType = Type::Int64Ty;
AssessorInfo[I_LONG].llvmTypePtr = PointerType::getUnqual(Type::Int64Ty);
- AssessorInfo[I_LONG].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::Int64Ty);
- AssessorInfo[I_LONG].logSizeInBytesConstant =
- mvm::MvmModule::constantThree;
+ AssessorInfo[I_LONG].logSizeInBytesConstant = 3;
AssessorInfo[I_DOUBLE].llvmType = Type::DoubleTy;
AssessorInfo[I_DOUBLE].llvmTypePtr = PointerType::getUnqual(Type::DoubleTy);
- AssessorInfo[I_DOUBLE].llvmNullConstant =
- mvm::MvmModule::globalContext->getNullValue(Type::DoubleTy);
- AssessorInfo[I_DOUBLE].logSizeInBytesConstant =
- mvm::MvmModule::constantThree;
+ AssessorInfo[I_DOUBLE].logSizeInBytesConstant = 3;
AssessorInfo[I_TAB].llvmType = JnjvmModule::JavaObjectType;
AssessorInfo[I_TAB].llvmTypePtr =
PointerType::getUnqual(JnjvmModule::JavaObjectType);
- AssessorInfo[I_TAB].llvmNullConstant =
- JnjvmModule::JavaObjectNullConstant;
- AssessorInfo[I_TAB].logSizeInBytesConstant =
- mvm::MvmModule::constantPtrLogSize;
+ AssessorInfo[I_TAB].logSizeInBytesConstant = sizeof(JavaObject*) == 8 ? 3 : 2;
AssessorInfo[I_REF].llvmType = JnjvmModule::JavaObjectType;
AssessorInfo[I_REF].llvmTypePtr =
PointerType::getUnqual(JnjvmModule::JavaObjectType);
- AssessorInfo[I_REF].llvmNullConstant =
- JnjvmModule::JavaObjectNullConstant;
- AssessorInfo[I_REF].logSizeInBytesConstant =
- mvm::MvmModule::constantPtrLogSize;
+ AssessorInfo[I_REF].logSizeInBytesConstant = sizeof(JavaObject*) == 8 ? 3 : 2;
}
std::map<const char, LLVMAssessorInfo> LLVMAssessorInfo::AssessorInfo;
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp?rev=76435&r1=76434&r2=76435&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaJITOpcodes.cpp Mon Jul 20 12:33:37 2009
@@ -1910,7 +1910,8 @@
#endif
LLVMAssessorInfo& LAI = LLVMAssessorInfo::AssessorInfo[charId];
- sizeElement = LAI.logSizeInBytesConstant;
+ sizeElement = llvmContext->getConstantInt(Type::Int32Ty,
+ LAI.logSizeInBytesConstant);
if (TheCompiler->isStaticCompiling() &&
valCl->getType() != module->JavaClassArrayType) {
valCl = new LoadInst(valCl, "", currentBlock);
More information about the vmkit-commits
mailing list