Changes in directory llvm/lib/VMCore:
ConstantFolding.cpp updated: 1.132 -> 1.133 Constants.cpp updated: 1.201 -> 1.202 Type.cpp updated: 1.163 -> 1.164 ValueTypes.cpp updated: 1.10 -> 1.11 --- Log message: For PR1043: http://llvm.org/PR1043 : This is the final patch for this PR. It implements some minor cleanup in the use of IntegerType, to wit: 1. Type::getIntegerTypeMask -> IntegerType::getBitMask 2. Type::Int*Ty changed to IntegerType* from Type* 3. ConstantInt::getType() returns IntegerType* now, not Type* This also fixes PR1120: http://llvm.org/PR1120 . Patch by Sheng Zhou. --- Diffs of the changes: (+14 -9) ConstantFolding.cpp | 7 +------ Constants.cpp | 4 ++-- Type.cpp | 11 ++++++++++- ValueTypes.cpp | 1 + 4 files changed, 14 insertions(+), 9 deletions(-) Index: llvm/lib/VMCore/ConstantFolding.cpp diff -u llvm/lib/VMCore/ConstantFolding.cpp:1.132 llvm/lib/VMCore/ConstantFolding.cpp:1.133 --- llvm/lib/VMCore/ConstantFolding.cpp:1.132 Sun Jan 14 20:27:26 2007 +++ llvm/lib/VMCore/ConstantFolding.cpp Fri Jan 19 15:13:56 2007 @@ -295,13 +295,8 @@ // Handle ConstantFP input. if (const ConstantFP *FP = dyn_cast<ConstantFP>(V)) { // FP -> Integral. - if (DestTy->isInteger()) { - if (DestTy == Type::Int32Ty) - return ConstantInt::get(DestTy, FloatToBits(FP->getValue())); - assert(DestTy == Type::Int64Ty && - "Incorrect integer type for bitcast!"); + if (DestTy->isInteger()) return ConstantInt::get(DestTy, DoubleToBits(FP->getValue())); - } } return 0; default: Index: llvm/lib/VMCore/Constants.cpp diff -u llvm/lib/VMCore/Constants.cpp:1.201 llvm/lib/VMCore/Constants.cpp:1.202 --- llvm/lib/VMCore/Constants.cpp:1.201 Sun Jan 14 20:27:26 2007 +++ llvm/lib/VMCore/Constants.cpp Fri Jan 19 15:13:56 2007 @@ -568,7 +568,7 @@ unsigned NumBits = cast<IntegerType>(Ty)->getBitWidth(); // assert okay assert(NumBits <= 64 && "Not implemented: integers > 64-bits"); if (Ty == Type::Int1Ty) - return Val == 0 || Val == 1; + return Val == 0 || Val == 1 || Val == -1; if (NumBits == 64) return true; // always true, has to fit in largest type int64_t Min = -(1ll << (NumBits-1)); @@ -849,7 +849,7 @@ return getTrue(); else return getFalse(); - return IntConstants->getOrCreate(Ty, V & Ty->getIntegerTypeMask()); + return IntConstants->getOrCreate(Ty, V & cast<IntegerType>(Ty)->getBitMask()); } //---- ConstantFP::get() implementation... Index: llvm/lib/VMCore/Type.cpp diff -u llvm/lib/VMCore/Type.cpp:1.163 llvm/lib/VMCore/Type.cpp:1.164 --- llvm/lib/VMCore/Type.cpp:1.163 Thu Jan 18 12:14:49 2007 +++ llvm/lib/VMCore/Type.cpp Fri Jan 19 15:13:56 2007 @@ -81,6 +81,15 @@ } } +const Type *Type::getVAArgsPromotedType() const { + if (ID == IntegerTyID && getSubclassData() < 32) + return Type::Int32Ty; + else if (ID == FloatTyID) + return Type::DoubleTy; + else + return this; +} + /// isFPOrFPVector - Return true if this is a FP type or a vector of FP types. /// bool Type::isFPOrFPVector() const { @@ -352,7 +361,7 @@ }; \ } \ static ManagedStatic<TY##Type> The##TY##Ty; \ - const Type *Type::TY##Ty = &*The##TY##Ty + const IntegerType *Type::TY##Ty = &*The##TY##Ty DeclarePrimType(Void, "void"); DeclarePrimType(Float, "float"); Index: llvm/lib/VMCore/ValueTypes.cpp diff -u llvm/lib/VMCore/ValueTypes.cpp:1.10 llvm/lib/VMCore/ValueTypes.cpp:1.11 --- llvm/lib/VMCore/ValueTypes.cpp:1.10 Thu Jan 11 12:21:29 2007 +++ llvm/lib/VMCore/ValueTypes.cpp Fri Jan 19 15:13:56 2007 @@ -13,6 +13,7 @@ #include "llvm/CodeGen/ValueTypes.h" #include "llvm/Type.h" +#include "llvm/DerivedTypes.h" using namespace llvm; /// MVT::getValueTypeString - This function returns value type as a string, _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits