From: Andrew Lenharth Date: Fri, 28 Jan 2005 14:06:46 +0000 (+0000) Subject: fix ExprMap and constant check in setcc X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6b9870abced52820afb2c51a7fab96afd6e12bba;p=oota-llvm.git fix ExprMap and constant check in setcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19870 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Alpha/AlphaISelPattern.cpp b/lib/Target/Alpha/AlphaISelPattern.cpp index eb3594cdca4..e6efc030cc1 100644 --- a/lib/Target/Alpha/AlphaISelPattern.cpp +++ b/lib/Target/Alpha/AlphaISelPattern.cpp @@ -653,7 +653,7 @@ unsigned ISel::SelectExpr(SDOperand N) { } } else if (dir == 2) { Tmp1 = SelectExpr(N.getOperand(1)); - if (isConst2) { + if (isConst1) { Tmp2 = cast(N.getOperand(0))->getValue(); BuildMI(BB, Opc, 2, Result).addReg(Tmp1).addImm(Tmp2); } else { @@ -866,9 +866,9 @@ unsigned ISel::SelectExpr(SDOperand N) { void ISel::Select(SDOperand N) { unsigned Tmp1, Tmp2, Opc; - if(ExprMap[N]) - return; //alread selected - ExprMap[N] = 1; + // FIXME: Disable for our current expansion model! + if (/*!N->hasOneUse() &&*/ !ExprMap.insert(std::make_pair(N, 1)).second) + return; // Already selected. SDNode *Node = N.Val; @@ -977,6 +977,7 @@ void ISel::Select(SDOperand N) { case ISD::CopyFromReg: case ISD::CALL: // case ISD::DYNAMIC_STACKALLOC: + ExprMap.erase(N); SelectExpr(N); return;