summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-03-01 19:30:34 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-03-01 19:30:34 +0000
commitd1bbfa5aa62e51f10888be10d3f80b259b2adf4b (patch)
tree7161a67bd93864a3b9a876bb60d06bbca8f4abce /llvm/lib
parent2f6ad4d3c3a222b713ff0204859ff1c3cc249120 (diff)
downloadbcm5719-llvm-d1bbfa5aa62e51f10888be10d3f80b259b2adf4b.tar.gz
bcm5719-llvm-d1bbfa5aa62e51f10888be10d3f80b259b2adf4b.zip
Drop the ConstantInt(const Type&, const APInt&) constructor. It is
redundant and more verbose than the ConstantInt(const APInt&) constructor. llvm-svn: 34792
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/VMCore/Constants.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/llvm/lib/VMCore/Constants.cpp b/llvm/lib/VMCore/Constants.cpp
index 29f096364f4..9d9cc5a2ec0 100644
--- a/llvm/lib/VMCore/Constants.cpp
+++ b/llvm/lib/VMCore/Constants.cpp
@@ -115,7 +115,7 @@ Constant *Constant::getNullValue(const Type *Ty) {
// Static constructor to create an integral constant with all bits set
ConstantInt *ConstantInt::getAllOnesValue(const Type *Ty) {
if (const IntegerType* ITy = dyn_cast<IntegerType>(Ty))
- return ConstantInt::get(Ty, APInt::getAllOnesValue(ITy->getBitWidth()));
+ return ConstantInt::get(APInt::getAllOnesValue(ITy->getBitWidth()));
return 0;
}
@@ -192,22 +192,21 @@ typedef DenseMap<DenseMapAPIntKeyInfo::KeyTy, ConstantInt*,
DenseMapAPIntKeyInfo> IntMapTy;
static ManagedStatic<IntMapTy> IntConstants;
-ConstantInt *ConstantInt::get(const Type *Ty, int64_t V) {
+ConstantInt *ConstantInt::get(const Type *Ty, uint64_t V) {
const IntegerType *ITy = cast<IntegerType>(Ty);
- APInt Tmp(ITy->getBitWidth(), V);
- return get(Ty, Tmp);
+ return get(APInt(ITy->getBitWidth(), V));
}
-// Get a ConstantInt from a Type and APInt. Note that the value stored in
-// the DenseMap as the key is a DensMapAPIntKeyInfo::KeyTy which has provided
+// Get a ConstantInt from an APInt. Note that the value stored in the DenseMap
+// as the key, is a DensMapAPIntKeyInfo::KeyTy which has provided the
// operator== and operator!= to ensure that the DenseMap doesn't attempt to
// compare APInt's of different widths, which would violate an APInt class
// invariant which generates an assertion.
-ConstantInt *ConstantInt::get(const Type *Ty, const APInt& V) {
- const IntegerType *ITy = cast<IntegerType>(Ty);
- assert(ITy->getBitWidth() == V.getBitWidth() && "Invalid type for constant");
+ConstantInt *ConstantInt::get(const APInt& V) {
+ // Get the corresponding integer type for the bit width of the value.
+ const IntegerType *ITy = IntegerType::get(V.getBitWidth());
// get an existing value or the insertion position
- DenseMapAPIntKeyInfo::KeyTy Key(V, Ty);
+ DenseMapAPIntKeyInfo::KeyTy Key(V, ITy);
ConstantInt *&Slot = (*IntConstants)[Key];
// if it exists, return it.
if (Slot)
@@ -216,10 +215,6 @@ ConstantInt *ConstantInt::get(const Type *Ty, const APInt& V) {
return Slot = new ConstantInt(ITy, V);
}
-ConstantInt *ConstantInt::get(const APInt &V) {
- return ConstantInt::get(IntegerType::get(V.getBitWidth()), V);
-}
-
//===----------------------------------------------------------------------===//
// ConstantFP
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud