Use constantexprs for casts. Eliminate use of the ConstantHandling interfaces
authorChris Lattner <sabre@nondot.org>
Mon, 12 Jan 2004 17:43:40 +0000 (17:43 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 12 Jan 2004 17:43:40 +0000 (17:43 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10779 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/SCCP.cpp

index a570ba8b13d2c55a4a0496cc551d23d072f5feb6..7a28281a79952a3ddddd80c4f92d6f45cc9bf2e4 100644 (file)
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Transforms/Scalar.h"
-#include "llvm/ConstantHandling.h"
+#include "llvm/Constants.h"
 #include "llvm/Function.h"
 #include "llvm/GlobalVariable.h"
 #include "llvm/Instructions.h"
 #include "llvm/Pass.h"
+#include "llvm/Type.h"
 #include "llvm/Support/InstVisitor.h"
 #include "Support/Debug.h"
 #include "Support/Statistic.h"
@@ -558,17 +559,10 @@ void SCCP::visitTerminatorInst(TerminatorInst &TI) {
 void SCCP::visitCastInst(CastInst &I) {
   Value *V = I.getOperand(0);
   InstVal &VState = getValueState(V);
-  if (VState.isOverdefined()) {        // Inherit overdefinedness of operand
+  if (VState.isOverdefined())          // Inherit overdefinedness of operand
     markOverdefined(&I);
-  } else if (VState.isConstant()) {    // Propagate constant value
-    Constant *Result =
-      ConstantFoldCastInstruction(VState.getConstant(), I.getType());
-
-    if (Result)   // If this instruction constant folds!
-      markConstant(&I, Result);
-    else
-      markOverdefined(&I);   // Don't know how to fold this instruction.  :(
-  }
+  else if (VState.isConstant())        // Propagate constant value
+    markConstant(&I, ConstantExpr::getCast(VState.getConstant(), I.getType()));
 }
 
 // Handle BinaryOperators and Shift Instructions...