Changes in directory llvm/lib/CodeGen:
AsmPrinter.cpp updated: 1.111 -> 1.112 IntrinsicLowering.cpp updated: 1.43 -> 1.44 MachineDebugInfo.cpp updated: 1.50 -> 1.51 --- Log message: For PR950: http://llvm.org/PR950 : This patch implements the first increment for the Signless Types feature. All changes pertain to removing the ConstantSInt and ConstantUInt classes in favor of just using ConstantInt. --- Diffs of the changes: (+45 -42) AsmPrinter.cpp | 23 ++++++++++++----------- IntrinsicLowering.cpp | 35 ++++++++++++++++++----------------- MachineDebugInfo.cpp | 29 +++++++++++++++-------------- 3 files changed, 45 insertions(+), 42 deletions(-) Index: llvm/lib/CodeGen/AsmPrinter.cpp diff -u llvm/lib/CodeGen/AsmPrinter.cpp:1.111 llvm/lib/CodeGen/AsmPrinter.cpp:1.112 --- llvm/lib/CodeGen/AsmPrinter.cpp:1.111 Tue Oct 17 12:17:24 2006 +++ llvm/lib/CodeGen/AsmPrinter.cpp Fri Oct 20 02:07:24 2006 @@ -393,14 +393,15 @@ else if (const ConstantBool *CB = dyn_cast<ConstantBool>(CV)) { assert(CB->getValue()); O << "1"; - } else if (const ConstantSInt *CI = dyn_cast<ConstantSInt>(CV)) - if (((CI->getValue() << 32) >> 32) == CI->getValue()) - O << CI->getValue(); - else - O << (uint64_t)CI->getValue(); - else if (const ConstantUInt *CI = dyn_cast<ConstantUInt>(CV)) - O << CI->getValue(); - else if (const GlobalValue *GV = dyn_cast<GlobalValue>(CV)) { + } else if (const ConstantInt *CI = dyn_cast<ConstantInt>(CV)) { + if (CI->getType()->isSigned()) { + if (((CI->getSExtValue() << 32) >> 32) == CI->getSExtValue()) + O << CI->getSExtValue(); + else + O << (uint64_t)CI->getSExtValue(); + } else + O << CI->getZExtValue(); + } else if (const GlobalValue *GV = dyn_cast<GlobalValue>(CV)) { // This is a constant address for a global variable or function. Use the // name of the variable or function as the address value, possibly // decorating it with GlobalVarAddrPrefix/Suffix or @@ -492,7 +493,7 @@ O << "\""; for (unsigned i = 0; i != LastElt; ++i) { unsigned char C = - (unsigned char)cast<ConstantInt>(CVA->getOperand(i))->getRawValue(); + (unsigned char)cast<ConstantInt>(CVA->getOperand(i))->getZExtValue(); if (C == '"') { O << "\\\""; @@ -524,7 +525,7 @@ void AsmPrinter::EmitString(const ConstantArray *CVA) const { unsigned NumElts = CVA->getNumOperands(); if (TAI->getAscizDirective() && NumElts && - cast<ConstantInt>(CVA->getOperand(NumElts-1))->getRawValue() == 0) { + cast<ConstantInt>(CVA->getOperand(NumElts-1))->getZExtValue() == 0) { O << TAI->getAscizDirective(); printAsCString(O, CVA, NumElts-1); } else { @@ -604,7 +605,7 @@ } } else if (CV->getType() == Type::ULongTy || CV->getType() == Type::LongTy) { if (const ConstantInt *CI = dyn_cast<ConstantInt>(CV)) { - uint64_t Val = CI->getRawValue(); + uint64_t Val = CI->getZExtValue(); if (TAI->getData64bitsDirective()) O << TAI->getData64bitsDirective() << Val << "\n"; Index: llvm/lib/CodeGen/IntrinsicLowering.cpp diff -u llvm/lib/CodeGen/IntrinsicLowering.cpp:1.43 llvm/lib/CodeGen/IntrinsicLowering.cpp:1.44 --- llvm/lib/CodeGen/IntrinsicLowering.cpp:1.43 Thu Mar 23 12:06:46 2006 +++ llvm/lib/CodeGen/IntrinsicLowering.cpp Fri Oct 20 02:07:24 2006 @@ -166,10 +166,10 @@ Value *Tmp1 = new ShiftInst(Instruction::Shr, V, ConstantInt::get(Type::UByteTy,24),"bswap.1", IP); Tmp3 = BinaryOperator::createAnd(Tmp3, - ConstantUInt::get(Type::UIntTy, 0xFF0000), + ConstantInt::get(Type::UIntTy, 0xFF0000), "bswap.and3", IP); Tmp2 = BinaryOperator::createAnd(Tmp2, - ConstantUInt::get(Type::UIntTy, 0xFF00), + ConstantInt::get(Type::UIntTy, 0xFF00), "bswap.and2", IP); Tmp4 = BinaryOperator::createOr(Tmp4, Tmp3, "bswap.or1", IP); Tmp2 = BinaryOperator::createOr(Tmp2, Tmp1, "bswap.or2", IP); @@ -194,23 +194,24 @@ Value *Tmp1 = new ShiftInst(Instruction::Shr, V, ConstantInt::get(Type::UByteTy,56),"bswap.1", IP); Tmp7 = BinaryOperator::createAnd(Tmp7, - ConstantUInt::get(Type::ULongTy, 0xFF000000000000ULL), - "bswap.and7", IP); + ConstantInt::get(Type::ULongTy, + 0xFF000000000000ULL), + "bswap.and7", IP); Tmp6 = BinaryOperator::createAnd(Tmp6, - ConstantUInt::get(Type::ULongTy, 0xFF0000000000ULL), - "bswap.and6", IP); + ConstantInt::get(Type::ULongTy, 0xFF0000000000ULL), + "bswap.and6", IP); Tmp5 = BinaryOperator::createAnd(Tmp5, - ConstantUInt::get(Type::ULongTy, 0xFF00000000ULL), - "bswap.and5", IP); + ConstantInt::get(Type::ULongTy, 0xFF00000000ULL), + "bswap.and5", IP); Tmp4 = BinaryOperator::createAnd(Tmp4, - ConstantUInt::get(Type::ULongTy, 0xFF000000ULL), - "bswap.and4", IP); + ConstantInt::get(Type::ULongTy, 0xFF000000ULL), + "bswap.and4", IP); Tmp3 = BinaryOperator::createAnd(Tmp3, - ConstantUInt::get(Type::ULongTy, 0xFF0000ULL), - "bswap.and3", IP); + ConstantInt::get(Type::ULongTy, 0xFF0000ULL), + "bswap.and3", IP); Tmp2 = BinaryOperator::createAnd(Tmp2, - ConstantUInt::get(Type::ULongTy, 0xFF00ULL), - "bswap.and2", IP); + ConstantInt::get(Type::ULongTy, 0xFF00ULL), + "bswap.and2", IP); Tmp8 = BinaryOperator::createOr(Tmp8, Tmp7, "bswap.or1", IP); Tmp6 = BinaryOperator::createOr(Tmp6, Tmp5, "bswap.or2", IP); Tmp4 = BinaryOperator::createOr(Tmp4, Tmp3, "bswap.or3", IP); @@ -247,8 +248,8 @@ unsigned BitSize = V->getType()->getPrimitiveSizeInBits(); for (unsigned i = 1, ct = 0; i != BitSize; i <<= 1, ++ct) { Value *MaskCst = - ConstantExpr::getCast(ConstantUInt::get(Type::ULongTy, - MaskValues[ct]), V->getType()); + ConstantExpr::getCast(ConstantInt::get(Type::ULongTy, MaskValues[ct]), + V->getType()); Value *LHS = BinaryOperator::createAnd(V, MaskCst, "cppop.and1", IP); Value *VShift = new ShiftInst(Instruction::Shr, V, ConstantInt::get(Type::UByteTy, i), "ctpop.sh", IP); @@ -395,7 +396,7 @@ case Intrinsic::readcyclecounter: { std::cerr << "WARNING: this target does not support the llvm.readcyclecoun" << "ter intrinsic. It is being lowered to a constant 0\n"; - CI->replaceAllUsesWith(ConstantUInt::get(Type::ULongTy, 0)); + CI->replaceAllUsesWith(ConstantInt::get(Type::ULongTy, 0)); break; } Index: llvm/lib/CodeGen/MachineDebugInfo.cpp diff -u llvm/lib/CodeGen/MachineDebugInfo.cpp:1.50 llvm/lib/CodeGen/MachineDebugInfo.cpp:1.51 --- llvm/lib/CodeGen/MachineDebugInfo.cpp:1.50 Tue Oct 17 18:16:42 2006 +++ llvm/lib/CodeGen/MachineDebugInfo.cpp Fri Oct 20 02:07:24 2006 @@ -120,7 +120,7 @@ /// getUIntOperand - Return ith operand if it is an unsigned integer. /// -static ConstantUInt *getUIntOperand(GlobalVariable *GV, unsigned i) { +static ConstantInt *getUIntOperand(GlobalVariable *GV, unsigned i) { // Make sure the GlobalVariable has an initializer. if (!GV->hasInitializer()) return NULL; @@ -133,8 +133,9 @@ if (i >= N) return NULL; // Check constant. - return dyn_cast<ConstantUInt>(CI->getOperand(i)); + return dyn_cast<ConstantInt>(CI->getOperand(i)); } + //===----------------------------------------------------------------------===// /// ApplyToFields - Target the visitor to each field of the debug information @@ -192,19 +193,19 @@ /// virtual void Apply(int &Field) { Constant *C = CI->getOperand(I++); - Field = cast<ConstantSInt>(C)->getValue(); + Field = cast<ConstantInt>(C)->getSExtValue(); } virtual void Apply(unsigned &Field) { Constant *C = CI->getOperand(I++); - Field = cast<ConstantUInt>(C)->getValue(); + Field = cast<ConstantInt>(C)->getZExtValue(); } virtual void Apply(int64_t &Field) { Constant *C = CI->getOperand(I++); - Field = cast<ConstantSInt>(C)->getValue(); + Field = cast<ConstantInt>(C)->getSExtValue(); } virtual void Apply(uint64_t &Field) { Constant *C = CI->getOperand(I++); - Field = cast<ConstantUInt>(C)->getValue(); + Field = cast<ConstantInt>(C)->getZExtValue(); } virtual void Apply(bool &Field) { Constant *C = CI->getOperand(I++); @@ -261,16 +262,16 @@ /// Apply - Set the value of each of the fields. /// virtual void Apply(int &Field) { - Elements.push_back(ConstantSInt::get(Type::IntTy, Field)); + Elements.push_back(ConstantInt::get(Type::IntTy, int32_t(Field))); } virtual void Apply(unsigned &Field) { - Elements.push_back(ConstantUInt::get(Type::UIntTy, Field)); + Elements.push_back(ConstantInt::get(Type::UIntTy, uint32_t(Field))); } virtual void Apply(int64_t &Field) { - Elements.push_back(ConstantSInt::get(Type::LongTy, Field)); + Elements.push_back(ConstantInt::get(Type::LongTy, int64_t(Field))); } virtual void Apply(uint64_t &Field) { - Elements.push_back(ConstantUInt::get(Type::ULongTy, Field)); + Elements.push_back(ConstantInt::get(Type::ULongTy, uint64_t(Field))); } virtual void Apply(bool &Field) { Elements.push_back(ConstantBool::get(Field)); @@ -467,8 +468,8 @@ /// TagFromGlobal - Returns the tag number from a debug info descriptor /// GlobalVariable. Return DIIValid if operand is not an unsigned int. unsigned DebugInfoDesc::TagFromGlobal(GlobalVariable *GV) { - ConstantUInt *C = getUIntOperand(GV, 0); - return C ? ((unsigned)C->getValue() & ~LLVMDebugVersionMask) : + ConstantInt *C = getUIntOperand(GV, 0); + return C ? ((unsigned)C->getZExtValue() & ~LLVMDebugVersionMask) : (unsigned)DW_TAG_invalid; } @@ -476,8 +477,8 @@ /// descriptor GlobalVariable. Return DIIValid if operand is not an unsigned /// int. unsigned DebugInfoDesc::VersionFromGlobal(GlobalVariable *GV) { - ConstantUInt *C = getUIntOperand(GV, 0); - return C ? ((unsigned)C->getValue() & LLVMDebugVersionMask) : + ConstantInt *C = getUIntOperand(GV, 0); + return C ? ((unsigned)C->getZExtValue() & LLVMDebugVersionMask) : (unsigned)DW_TAG_invalid; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits