[vmkit-commits] [vmkit] r71657 - in /vmkit/trunk: include/jnjvm/JnjvmModule.h lib/JnJVM/Compiler/JavaAOTCompiler.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Wed May 13 06:39:27 PDT 2009
Author: geoffray
Date: Wed May 13 08:39:04 2009
New Revision: 71657
URL: http://llvm.org/viewvc/llvm-project?rev=71657&view=rev
Log:
Remove changes in the AOT Compiler from last commit.
Modified:
vmkit/trunk/include/jnjvm/JnjvmModule.h
vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
Modified: vmkit/trunk/include/jnjvm/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/include/jnjvm/JnjvmModule.h?rev=71657&r1=71656&r2=71657&view=diff
==============================================================================
--- vmkit/trunk/include/jnjvm/JnjvmModule.h (original)
+++ vmkit/trunk/include/jnjvm/JnjvmModule.h Wed May 13 08:39:04 2009
@@ -33,7 +33,6 @@
namespace jnjvm {
-class ArrayUInt16;
class Attribut;
class CacheNode;
class CommonClass;
@@ -571,6 +570,7 @@
//--------------- Static compiler specific functions -----------------------//
llvm::Constant* CreateConstantFromVT(JavaVirtualTable* VT);
+ llvm::Constant* CreateConstantFromUTF8(const UTF8* val);
llvm::Constant* CreateConstantFromEnveloppe(Enveloppe* val);
llvm::Constant* CreateConstantFromCacheNode(CacheNode* CN);
llvm::Constant* CreateConstantFromCommonClass(CommonClass* cl);
@@ -585,7 +585,7 @@
llvm::Constant* CreateConstantFromJavaClass(CommonClass* cl);
llvm::Constant* CreateConstantForBaseObject(CommonClass* cl);
llvm::Constant* CreateConstantFromJavaObject(JavaObject* obj);
- llvm::Constant* getArrayUInt16(const ArrayUInt16* val);
+ llvm::Constant* getUTF8(const UTF8* val);
template<typename T>
llvm::Constant* CreateConstantFromArray(const T* val, const llvm::Type* Ty);
@@ -599,7 +599,7 @@
std::map<const JavaString*, llvm::Constant*> strings;
std::map<const Enveloppe*, llvm::Constant*> enveloppes;
std::map<const JavaMethod*, llvm::Constant*> nativeFunctions;
- std::map<const ArrayUInt16*, llvm::Constant*> utf8s;
+ std::map<const UTF8*, llvm::Constant*> utf8s;
std::map<const Class*, llvm::Constant*> virtualMethods;
std::map<const JavaObject*, llvm::Constant*> finalObjects;
@@ -636,7 +636,7 @@
typedef std::map<const JavaMethod*, llvm::Constant*>::iterator
native_function_iterator;
- typedef std::map<const ArrayUInt16*, llvm::Constant*>::iterator
+ typedef std::map<const UTF8*, llvm::Constant*>::iterator
utf8_iterator;
#ifdef SERVICE
Modified: vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp?rev=71657&r1=71656&r2=71657&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp (original)
+++ vmkit/trunk/lib/JnJVM/Compiler/JavaAOTCompiler.cpp Wed May 13 08:39:04 2009
@@ -511,7 +511,8 @@
Elmts.push_back(CreateConstantForBaseObject(cl));
- Constant* Array = getArrayUInt16(str->value);
+ Constant* Array =
+ CreateConstantFromArray<ArrayUInt16>(str->value, Type::Int16Ty);
Constant* ObjGEPs[2] = { JnjvmModule::constantZero,
JnjvmModule::constantZero };
Array = ConstantExpr::getGetElementPtr(Array, ObjGEPs, 2);
@@ -551,8 +552,8 @@
Elmts.push_back(new GlobalVariable(CNTy, false,
GlobalValue::InternalLinkage,
firstCache, "", getLLVMModule()));
- Elmts.push_back(getArrayUInt16(val->methodName));
- Elmts.push_back(getArrayUInt16(val->methodSign));
+ Elmts.push_back(getUTF8(val->methodName));
+ Elmts.push_back(getUTF8(val->methodSign));
Elmts.push_back(Constant::getNullValue(Type::Int8Ty));
Elmts.push_back(getNativeClass(val->classDef));
@@ -570,7 +571,7 @@
std::vector<Constant*> Elmts;
// name
- Elmts.push_back(getArrayUInt16(attribut.name));
+ Elmts.push_back(getUTF8(attribut.name));
// start
Elmts.push_back(ConstantInt::get(Type::Int32Ty, attribut.start));
@@ -623,7 +624,7 @@
CommonClassElts.push_back(ConstantInt::get(Type::Int16Ty, cl->nbInterfaces));
// name
- CommonClassElts.push_back(getArrayUInt16(cl->name));
+ CommonClassElts.push_back(getUTF8(cl->name));
// super
if (cl->super) {
@@ -663,10 +664,10 @@
FieldElts.push_back(ConstantInt::get(Type::Int16Ty, field.access));
// name
- FieldElts.push_back(getArrayUInt16(field.name));
+ FieldElts.push_back(getUTF8(field.name));
// type
- FieldElts.push_back(getArrayUInt16(field.type));
+ FieldElts.push_back(getUTF8(field.type));
// attributs
if (field.nbAttributs) {
@@ -754,10 +755,10 @@
MethodElts.push_back(getNativeClass(method.classDef));
// name
- MethodElts.push_back(getArrayUInt16(method.name));
+ MethodElts.push_back(getUTF8(method.name));
// type
- MethodElts.push_back(getArrayUInt16(method.type));
+ MethodElts.push_back(getUTF8(method.type));
// canBeInlined
MethodElts.push_back(ConstantInt::get(Type::Int8Ty, method.canBeInlined));
@@ -1074,12 +1075,37 @@
return ConstantStruct::get(STy, Cts);
}
-Constant* JavaAOTCompiler::getArrayUInt16(const ArrayUInt16* val) {
+Constant* JavaAOTCompiler::CreateConstantFromUTF8(const UTF8* val) {
+ std::vector<const Type*> Elemts;
+ const ArrayType* ATy = ArrayType::get(Type::Int16Ty, val->size);
+ Elemts.push_back(JnjvmModule::JavaObjectType->getContainedType(0));
+ Elemts.push_back(JnjvmModule::pointerSizeType);
+
+ Elemts.push_back(ATy);
+
+ const StructType* STy = StructType::get(Elemts);
+
+ std::vector<Constant*> Cts;
+ CommonClass* cl = JavaThread::get()->getJVM()->upcalls->ArrayOfChar;
+ Cts.push_back(CreateConstantForBaseObject(cl));
+ Cts.push_back(ConstantInt::get(JnjvmModule::pointerSizeType, val->size));
+
+ std::vector<Constant*> Vals;
+ for (sint32 i = 0; i < val->size; ++i) {
+ Vals.push_back(ConstantInt::get(Type::Int16Ty, val->elements[i]));
+ }
+
+ Cts.push_back(ConstantArray::get(ATy, Vals));
+
+ return ConstantStruct::get(STy, Cts);
+
+}
+
+Constant* JavaAOTCompiler::getUTF8(const UTF8* val) {
utf8_iterator End = utf8s.end();
utf8_iterator I = utf8s.find(val);
if (I == End) {
- Constant* C = CreateConstantFromArray<ArrayUInt16>(val, Type::Int16Ty);
-
+ Constant* C = CreateConstantFromUTF8(val);
GlobalVariable* varGV = new GlobalVariable(C->getType(), true,
GlobalValue::InternalLinkage,
C, "", getLLVMModule());
@@ -1389,7 +1415,7 @@
e = arrayClasses.end(); i != e; ++i) {
Args[0] = loader;
Args[1] = i->second;
- Args[2] = getArrayUInt16(i->first->name);
+ Args[2] = getUTF8(i->first->name);
CallInst::Create(GetClassArray, Args, Args + 3, "", currentBlock);
}
More information about the vmkit-commits
mailing list