From wdietz2 at illinois.edu Sun Feb 5 07:28:56 2012 From: wdietz2 at illinois.edu (Will Dietz) Date: Sun, 05 Feb 2012 15:28:56 -0000 Subject: [vmkit-commits] [vmkit] r149835 - /vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp Message-ID: <20120205152856.59C7E2A6C12C@llvm.org> Author: wdietz2 Date: Sun Feb 5 09:28:56 2012 New Revision: 149835 URL: http://llvm.org/viewvc/llvm-project?rev=149835&view=rev Log: Update to use ConstantDataArray::getString for string constants. 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=149835&r1=149834&r2=149835&view=diff ============================================================================== --- vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp (original) +++ vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp Sun Feb 5 09:28:56 2012 @@ -2470,7 +2470,7 @@ true, GlobalValue::InternalLinkage, 0, "mainClass"); - Constant* NameArray = ConstantArray::get(getLLVMContext(), name, true); + Constant* NameArray = ConstantDataArray::getString(getLLVMContext(), name, true); GvarArrayStr->setInitializer(NameArray); Value* Indices[2] = { JavaIntrinsics.constantZero, JavaIntrinsics.constantZero }; From wdietz2 at illinois.edu Sun Feb 5 08:58:39 2012 From: wdietz2 at illinois.edu (Will Dietz) Date: Sun, 05 Feb 2012 16:58:39 -0000 Subject: [vmkit-commits] [vmkit] r149837 - in /vmkit/trunk/lib: j3/Compiler/JavaAOTCompiler.cpp vmkit/StaticGCPrinter/VmkitGCPrinter.cpp Message-ID: <20120205165840.0122F2A6C12C@llvm.org> Author: wdietz2 Date: Sun Feb 5 10:58:39 2012 New Revision: 149837 URL: http://llvm.org/viewvc/llvm-project?rev=149837&view=rev Log: Fix VmkitGCPrinter to expect UTF8 as CDA's, create UTF8 as CDA's explicitly. ConstantArray::get was creating a CDA for us behind the scenes, now making the construction explicit since it's tied directly to how we interpret the results back into a UTF8. Modified: vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp vmkit/trunk/lib/vmkit/StaticGCPrinter/VmkitGCPrinter.cpp Modified: vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp?rev=149837&r1=149836&r2=149837&view=diff ============================================================================== --- vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp (original) +++ vmkit/trunk/lib/j3/Compiler/JavaAOTCompiler.cpp Sun Feb 5 10:58:39 2012 @@ -1483,17 +1483,13 @@ StructType* STy = StructType::get(getLLVMModule()->getContext(), Elemts); - + std::vector Cts; Cts.push_back(ConstantInt::get(JavaIntrinsics.pointerSizeType, val->size)); - - std::vector Vals; - for (sint32 i = 0; i < val->size; ++i) { - Vals.push_back(ConstantInt::get(Type::getInt16Ty(getLLVMContext()), val->elements[i])); - } - Cts.push_back(ConstantArray::get(ATy, Vals)); - + ArrayRef Vals(val->elements, val->size); + Cts.push_back(ConstantDataArray::get(getLLVMContext(), Vals)); + return ConstantStruct::get(STy, Cts); } Modified: vmkit/trunk/lib/vmkit/StaticGCPrinter/VmkitGCPrinter.cpp URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/vmkit/StaticGCPrinter/VmkitGCPrinter.cpp?rev=149837&r1=149836&r2=149837&view=diff ============================================================================== --- vmkit/trunk/lib/vmkit/StaticGCPrinter/VmkitGCPrinter.cpp (original) +++ vmkit/trunk/lib/vmkit/StaticGCPrinter/VmkitGCPrinter.cpp Sun Feb 5 10:58:39 2012 @@ -153,13 +153,14 @@ } static bool methodNameMatches(StringRef compiledName, - Constant* name, - Constant* type) { + ConstantDataArray* name, + ConstantDataArray* type) { uint32_t size = compiledName.size(); std::string str; - for (uint32_t i = 0; i < name->getNumOperands(); ++i) { - int16_t cur = cast(name->getOperand(i))->getZExtValue(); + for (uint32_t i = 0; i < name->getNumElements(); ++i) { + ConstantInt* charInt = cast(name->getElementAsConstant(i)); + int16_t cur = charInt->getZExtValue(); if (cur == '/') { str += '_'; } else if (cur == '_') { @@ -173,8 +174,9 @@ } } - for (uint32_t i = 0; i < type->getNumOperands(); ++i) { - int16_t cur = cast(type->getOperand(i))->getZExtValue(); + for (uint32_t i = 0; i < type->getNumElements(); ++i) { + ConstantInt* charInt = cast(type->getElementAsConstant(i)); + int16_t cur = charInt->getZExtValue(); if (cur == '(') { str += "__"; } else if (cur == '/') { @@ -247,15 +249,15 @@ for (uint32_t index = 0; index < MethodsArray->getNumOperands(); index++) { Constant* method = cast(MethodsArray->getOperand(index)); - Constant* name = cast(method->getOperand(5)); - name = cast(name->getOperand(0)); - name = cast(name->getOperand(0)); - name = cast(name->getOperand(1)); - - Constant* type = cast(method->getOperand(6)); - type = cast(type->getOperand(0)); - type = cast(type->getOperand(0)); - type = cast(type->getOperand(1)); + Constant* namePtr = cast(method->getOperand(5)); + namePtr = cast(namePtr->getOperand(0)); + namePtr = cast(namePtr->getOperand(0)); + ConstantDataArray* name = cast(namePtr->getOperand(1)); + + Constant* typePtr = cast(method->getOperand(6)); + typePtr = cast(typePtr->getOperand(0)); + typePtr = cast(typePtr->getOperand(0)); + ConstantDataArray* type = cast(typePtr->getOperand(1)); if (methodNameMatches(methodName, name, type)) { Constant* GEPs[2] = { ConstantInt::get(Type::getInt32Ty(context), 0),