diff options
author | Chris Lattner <sabre@nondot.org> | 2003-05-14 17:51:05 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-05-14 17:51:05 +0000 |
commit | 3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc (patch) | |
tree | f12ce72c715e88a5976b6c08b337309b1fa696ad /lib/VMCore | |
parent | 9e094c40df10d928a1242f8652dc56ebd41d38fd (diff) | |
download | external_llvm-3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc.zip external_llvm-3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc.tar.gz external_llvm-3b9922f99c96bafd2c3ecb7f7fa4a8a4fc9cc9dc.tar.bz2 |
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.cpp | 4 | ||||
-rw-r--r-- | lib/VMCore/Constants.cpp | 23 |
2 files changed, 14 insertions, 13 deletions
diff --git a/lib/VMCore/ConstantFold.cpp b/lib/VMCore/ConstantFold.cpp index db8cc44..d5f98bd 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 499452c..04d46e5 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!"); |