]> granicus.if.org Git - clang/commitdiff
No need to do work that the folding builder does for us.
authorAnders Carlsson <andersca@mac.com>
Wed, 26 Dec 2007 18:20:19 +0000 (18:20 +0000)
committerAnders Carlsson <andersca@mac.com>
Wed, 26 Dec 2007 18:20:19 +0000 (18:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@45361 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CGExprScalar.cpp

index 81a0cedf4e98963256b7230acaf1799f12462191..a4131507e3861fa17fd3b3020077439da24092db 100644 (file)
@@ -368,50 +368,27 @@ Value *ScalarExprEmitter::EmitScalarConversion(Value *Src, QualType SrcType,
   // Finally, we have the arithmetic types: real int/float.
   if (isa<llvm::IntegerType>(Src->getType())) {
     bool InputSigned = SrcType->isSignedIntegerType();
-    if (llvm::Constant *C = dyn_cast<llvm::Constant>(Src)) {
-        if (isa<llvm::IntegerType>(DstTy))
-          return llvm::ConstantExpr::getIntegerCast(C, DstTy, InputSigned);
-        else if (InputSigned)
-          return llvm::ConstantExpr::getSIToFP(C, DstTy);
-        else 
-          return llvm::ConstantExpr::getUIToFP(C, DstTy);
-    } else {
-      if (isa<llvm::IntegerType>(DstTy))
-        return Builder.CreateIntCast(Src, DstTy, InputSigned, "conv");
-      else if (InputSigned)
-        return Builder.CreateSIToFP(Src, DstTy, "conv");
-      else
-        return Builder.CreateUIToFP(Src, DstTy, "conv");
-    }
+    if (isa<llvm::IntegerType>(DstTy))
+      return Builder.CreateIntCast(Src, DstTy, InputSigned, "conv");
+    else if (InputSigned)
+      return Builder.CreateSIToFP(Src, DstTy, "conv");
+    else
+      return Builder.CreateUIToFP(Src, DstTy, "conv");
   }
   
   assert(Src->getType()->isFloatingPoint() && "Unknown real conversion");
   if (isa<llvm::IntegerType>(DstTy)) {
-    if (llvm::Constant *C = dyn_cast<llvm::Constant>(Src)) {
-      if (DstType->isSignedIntegerType())
-        return llvm::ConstantExpr::getFPToSI(C, DstTy);
-      else
-        return llvm::ConstantExpr::getFPToUI(C, DstTy);
-    } else {
-      if (DstType->isSignedIntegerType())
-        return Builder.CreateFPToSI(Src, DstTy, "conv");
-      else
-        return Builder.CreateFPToUI(Src, DstTy, "conv");
-    }
+    if (DstType->isSignedIntegerType())
+      return Builder.CreateFPToSI(Src, DstTy, "conv");
+    else
+      return Builder.CreateFPToUI(Src, DstTy, "conv");
   }
 
   assert(DstTy->isFloatingPoint() && "Unknown real conversion");
-  if (llvm::Constant *C = dyn_cast<llvm::Constant>(Src)) {
-    if (DstTy->getTypeID() < Src->getType()->getTypeID())
-      return llvm::ConstantExpr::getFPTrunc(C, DstTy);
-    else
-      return llvm::ConstantExpr::getFPExtend(C, DstTy);
-  } else {
-    if (DstTy->getTypeID() < Src->getType()->getTypeID())
-      return Builder.CreateFPTrunc(Src, DstTy, "conv");
-    else
-      return Builder.CreateFPExt(Src, DstTy, "conv");
-  }
+  if (DstTy->getTypeID() < Src->getType()->getTypeID())
+    return Builder.CreateFPTrunc(Src, DstTy, "conv");
+  else
+    return Builder.CreateFPExt(Src, DstTy, "conv");
 }
 
 /// EmitComplexToScalarConversion - Emit a conversion from the specified