[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