Implement checking for new instructions
authorChris Lattner <sabre@nondot.org>
Sun, 8 Jul 2001 21:18:49 +0000 (21:18 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 8 Jul 2001 21:18:49 +0000 (21:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/SCCP.cpp

index 43eb26fd30fdee6411ce311d559fa30168bc4c0b..79d90e65326b8a90891ae1a45731546673c3e8d4 100644 (file)
@@ -25,7 +25,7 @@
 #include "llvm/iOther.h"
 #include "llvm/iTerminators.h"
 #include "llvm/Tools/STLExtras.h"
-//#include "llvm/Assembly/Writer.h"
+#include "llvm/Assembly/Writer.h"
 #include <algorithm>
 #include <map>
 #include <set>
@@ -430,7 +430,7 @@ void SCCP::UpdateInstruction(Instruction *I) {
   //===-------------------------------------------------------------------===//
   // Handle Unary instructions...
   //
-  if (I->isUnaryOp()) {
+  if (I->isUnaryOp() || I->getOpcode() == Instruction::Cast) {
     Value *V = I->getOperand(0);
     InstVal &VState = getValueState(V);
     if (VState.isOverdefined()) {        // Inherit overdefinedness of operand
@@ -456,7 +456,8 @@ void SCCP::UpdateInstruction(Instruction *I) {
   //===-----------------------------------------------------------------===//
   // Handle Binary instructions...
   //
-  if (I->isBinaryOp()) {
+  if (I->isBinaryOp() || I->getOpcode() == Instruction::Shl || 
+      I->getOpcode() == Instruction::Shr) {
     Value *V1 = I->getOperand(0);
     Value *V2 = I->getOperand(1);