aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore/Constants.cpp
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
commit0050c737c549b89f5df6743dc81646a3b7f4a94f (patch)
treef5dab0bf1adfa7df84e7bd49040862a6f2c47fac /lib/VMCore/Constants.cpp
parent4e1e87f09ce284ef9e981d86a72fde2f99c70c10 (diff)
downloadexternal_llvm-0050c737c549b89f5df6743dc81646a3b7f4a94f.zip
external_llvm-0050c737c549b89f5df6743dc81646a3b7f4a94f.tar.gz
external_llvm-0050c737c549b89f5df6743dc81646a3b7f4a94f.tar.bz2
Drop the ConstantInt(const Type&, const APInt&) constructor. It is
redundant and more verbose than the ConstantInt(const APInt&) constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34792 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore/Constants.cpp')
-rw-r--r--lib/VMCore/Constants.cpp23
1 files changed, 9 insertions, 14 deletions
diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp
index 29f0963..9d9cc5a 100644
--- a/lib/VMCore/Constants.cpp
+++ b/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
//===----------------------------------------------------------------------===//