]> granicus.if.org Git - llvm/commitdiff
Remove unnecessary casts
authorChris Lattner <sabre@nondot.org>
Wed, 14 May 2003 17:51:05 +0000 (17:51 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 14 May 2003 17:51:05 +0000 (17:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6201 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/ConstantFold.cpp
lib/VMCore/Constants.cpp

index db8cc4487c166b2b3718e22cdf1d51574eb366c3..d5f98bd201e8671028af048fa21fcc2be7267443 100644 (file)
@@ -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;
 }
 
index 499452c4251551cfb2f8062320ada03187f0c439..04d46e5867300eafb33fa022dbac6a2c443d9f9e 100644 (file)
@@ -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!");