summaryrefslogtreecommitdiff
path: root/lib/VMCore
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-05-14 17:51:05 +0000
committerChris Lattner <sabre@nondot.org>2003-05-14 17:51:05 +0000
commit3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc (patch)
treef12ce72c715e88a5976b6c08b337309b1fa696ad /lib/VMCore
parent9e094c40df10d928a1242f8652dc56ebd41d38fd (diff)
downloadllvm-3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc.tar.gz
llvm-3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc.tar.bz2
llvm-3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc.tar.xz
Remove unnecessary casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6201 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
-rw-r--r--lib/VMCore/ConstantFold.cpp4
-rw-r--r--lib/VMCore/Constants.cpp23
2 files changed, 14 insertions, 13 deletions
diff --git a/lib/VMCore/ConstantFold.cpp b/lib/VMCore/ConstantFold.cpp
index db8cc4487c..d5f98bd201 100644
--- a/lib/VMCore/ConstantFold.cpp
+++ b/lib/VMCore/ConstantFold.cpp
@@ -91,7 +91,7 @@ Constant *ConstantFoldCastInstruction(const Constant *V, const Type *DestTy) {
if (const ConstantExpr *CE = dyn_cast<ConstantExpr>(V))
if (CE->getOpcode() == Instruction::Cast) {
- Constant *Op = (Constant*)cast<Constant>(CE->getOperand(0));
+ Constant *Op = const_cast<Constant*>(CE->getOperand(0));
// Try to not produce a cast of a cast, which is almost always redundant.
if (!Op->getType()->isFloatingPoint() &&
!CE->getType()->isFloatingPoint() &&
@@ -166,7 +166,7 @@ Constant *ConstantFoldGetElementPtr(const Constant *C,
dyn_cast<ArrayType>(cast<PointerType>(C->getType())->getElementType()))
if (CAT->getElementType() == SAT->getElementType())
return ConstantExpr::getGetElementPtr(
- (Constant*)cast<Constant>(CE->getOperand(0)), IdxList);
+ (Constant*)CE->getOperand(0), IdxList);
return 0;
}
diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp
index 499452c425..04d46e5867 100644
--- a/lib/VMCore/Constants.cpp
+++ b/lib/VMCore/Constants.cpp
@@ -411,30 +411,31 @@ void ConstantPointerRef::replaceUsesOfWithOnConstant(Value *From, Value *To) {
}
}
-void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *To) {
- assert(isa<Constant>(To) && "Cannot make Constant refer to non-constant!");
+void ConstantExpr::replaceUsesOfWithOnConstant(Value *From, Value *ToV) {
+ assert(isa<Constant>(ToV) && "Cannot make Constant refer to non-constant!");
+ Constant *To = cast<Constant>(ToV);
Constant *Replacement = 0;
if (getOpcode() == Instruction::GetElementPtr) {
std::vector<Constant*> Indices;
- Constant *Pointer = cast<Constant>(getOperand(0));
+ Constant *Pointer = getOperand(0);
Indices.reserve(getNumOperands()-1);
- if (Pointer == From) Pointer = cast<Constant>(To);
+ if (Pointer == From) Pointer = To;
for (unsigned i = 1, e = getNumOperands(); i != e; ++i) {
- Constant *Val = cast<Constant>(getOperand(i));
- if (Val == From) Val = cast<Constant>(To);
+ Constant *Val = getOperand(i);
+ if (Val == From) Val = To;
Indices.push_back(Val);
}
Replacement = ConstantExpr::getGetElementPtr(Pointer, Indices);
} else if (getOpcode() == Instruction::Cast) {
assert(getOperand(0) == From && "Cast only has one use!");
- Replacement = ConstantExpr::getCast(cast<Constant>(To), getType());
+ Replacement = ConstantExpr::getCast(To, getType());
} else if (getNumOperands() == 2) {
- Constant *C1 = cast<Constant>(getOperand(0));
- Constant *C2 = cast<Constant>(getOperand(1));
- if (C1 == From) C1 = cast<Constant>(To);
- if (C2 == From) C2 = cast<Constant>(To);
+ Constant *C1 = getOperand(0);
+ Constant *C2 = getOperand(1);
+ if (C1 == From) C1 = To;
+ if (C2 == From) C2 = To;
Replacement = ConstantExpr::get(getOpcode(), C1, C2);
} else {
assert(0 && "Unknown ConstantExpr type!");