[llvm-commits] [llvm] r52496 - /llvm/trunk/lib/Transforms/Scalar/GVN.cpp

Owen Anderson resistor at mac.com
Thu Jun 19 10:25:39 PDT 2008


Author: resistor
Date: Thu Jun 19 12:25:39 2008
New Revision: 52496

URL: http://llvm.org/viewvc/llvm-project?rev=52496&view=rev
Log:
Revert support for insertvalue and extractvalue instructions for the moment.
GVN expects that all inputs which to an instruction fall somewhere in the value
hierarchy, which isn't true for these.

Modified:
    llvm/trunk/lib/Transforms/Scalar/GVN.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/GVN.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/GVN.cpp?rev=52496&r1=52495&r2=52496&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/GVN.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/GVN.cpp Thu Jun 19 12:25:39 2008
@@ -59,7 +59,7 @@
                             SHUFFLE, SELECT, TRUNC, ZEXT, SEXT, FPTOUI,
                             FPTOSI, UITOFP, SITOFP, FPTRUNC, FPEXT, 
                             PTRTOINT, INTTOPTR, BITCAST, GEP, CALL, CONSTANT,
-                            EXTRACTVALUE, INSERTVALUE, EMPTY, TOMBSTONE };
+                            EMPTY, TOMBSTONE };
 
     ExpressionOpcode opcode;
     const Type* type;
@@ -150,8 +150,6 @@
       Expression create_expression(GetElementPtrInst* G);
       Expression create_expression(CallInst* C);
       Expression create_expression(Constant* C);
-      Expression create_expression(InsertValueInst* I);
-      Expression create_expression(ExtractValueInst* I);
     public:
       ValueTable() : nextValueNumber(1) { }
       uint32_t lookup_or_add(Value* V);
@@ -286,40 +284,6 @@
   }
 }
 
-Expression ValueTable::create_expression(InsertValueInst* I) {
-  Expression e;
-  
-  e.type = I->getType();
-  e.firstVN = lookup_or_add(I->getOperand(0));
-  e.secondVN = lookup_or_add(I->getOperand(1));
-  e.thirdVN = 0;
-  e.function = 0;
-  e.opcode = Expression::INSERTVALUE;
-  
-  for (InsertValueInst::op_iterator OI = I->op_begin()+2,
-       OE = I->op_end(); OI != OE; ++OI)
-    e.varargs.push_back(lookup_or_add(I));
-  
-  return e;
-}
-
-Expression ValueTable::create_expression(ExtractValueInst* I) {
-  Expression e;
-  
-  e.type = I->getType();
-  e.firstVN = lookup_or_add(I->getOperand(0));
-  e.secondVN = lookup_or_add(I->getOperand(1));
-  e.thirdVN = 0;
-  e.function = 0;
-  e.opcode = Expression::EXTRACTVALUE;
-  
-  for (InsertValueInst::op_iterator OI = I->op_begin()+2,
-       OE = I->op_end(); OI != OE; ++OI)
-    e.varargs.push_back(lookup_or_add(I));
-  
-  return e;
-}
-
 Expression ValueTable::create_expression(CallInst* C) {
   Expression e;
   
@@ -577,32 +541,6 @@
       valueNumbering.insert(std::make_pair(V, nextValueNumber));
       return nextValueNumber++;
     }
-  } else if (InsertValueInst* II = dyn_cast<InsertValueInst>(V)) {
-    Expression e = create_expression(II);
-    
-    DenseMap<Expression, uint32_t>::iterator EI = expressionNumbering.find(e);
-    if (EI != expressionNumbering.end()) {
-      valueNumbering.insert(std::make_pair(V, EI->second));
-      return EI->second;
-    } else {
-      expressionNumbering.insert(std::make_pair(e, nextValueNumber));
-      valueNumbering.insert(std::make_pair(V, nextValueNumber));
-      
-      return nextValueNumber++;
-    }
-  } else if (ExtractValueInst* E = dyn_cast<ExtractValueInst>(V)) {
-    Expression e = create_expression(E);
-    
-    DenseMap<Expression, uint32_t>::iterator EI = expressionNumbering.find(e);
-    if (EI != expressionNumbering.end()) {
-      valueNumbering.insert(std::make_pair(V, EI->second));
-      return EI->second;
-    } else {
-      expressionNumbering.insert(std::make_pair(e, nextValueNumber));
-      valueNumbering.insert(std::make_pair(V, nextValueNumber));
-      
-      return nextValueNumber++;
-    }
   } else if (BinaryOperator* BO = dyn_cast<BinaryOperator>(V)) {
     Expression e = create_expression(BO);
     





More information about the llvm-commits mailing list