diff options
-rw-r--r-- | lib/Transforms/Scalar/GVN.cpp | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index f58b60db34..c9eb247432 100644 --- a/lib/Transforms/Scalar/GVN.cpp +++ b/lib/Transforms/Scalar/GVN.cpp @@ -59,7 +59,7 @@ namespace { 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 @@ namespace { 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::ExpressionOpcode ValueTable::getOpcode(CastInst* C) { } } -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 @@ uint32_t ValueTable::lookup_or_add(Value* V) { 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); |