[llvm-commits] CVS: llvm/lib/VMCore/Constants.cpp
Chris Lattner
sabre at nondot.org
Fri Dec 1 11:20:16 PST 2006
Changes in directory llvm/lib/VMCore:
Constants.cpp updated: 1.172 -> 1.173
---
Log message:
add a new ConstantIntegral::get method. Simplify the implementation of
ConstantInt::get
---
Diffs of the changes: (+6 -3)
Constants.cpp | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
Index: llvm/lib/VMCore/Constants.cpp
diff -u llvm/lib/VMCore/Constants.cpp:1.172 llvm/lib/VMCore/Constants.cpp:1.173
--- llvm/lib/VMCore/Constants.cpp:1.172 Sun Nov 26 19:05:10 2006
+++ llvm/lib/VMCore/Constants.cpp Fri Dec 1 13:20:02 2006
@@ -929,9 +929,12 @@
// just return the stored value while getSExtValue has to convert back to sign
// extended. getZExtValue is more common in LLVM than getSExtValue().
ConstantInt *ConstantInt::get(const Type *Ty, int64_t V) {
- unsigned Size = Ty->getPrimitiveSizeInBits();
- uint64_t ZeroExtendedCanonicalization = V & (~uint64_t(0UL) >> (64-Size));
- return IntConstants->getOrCreate(Ty, ZeroExtendedCanonicalization );
+ return IntConstants->getOrCreate(Ty, V & Ty->getIntegralTypeMask());
+}
+
+ConstantIntegral *ConstantIntegral::get(const Type *Ty, int64_t V) {
+ if (Ty == Type::BoolTy) return ConstantBool::get(V&1);
+ return IntConstants->getOrCreate(Ty, V & Ty->getIntegralTypeMask());
}
//---- ConstantFP::get() implementation...
More information about the llvm-commits
mailing list