Doh. Brain cramp. Evan On Apr 30, 2007, at 9:39 PM, Chris Lattner wrote:
>> + bool HasUses = false; >> + SmallVector<MVT::ValueType, 2> VTs; >> + for (unsigned i = 0, e = N->getNumValues(); i != e; ++i) { >> + if (!N->hasNUsesOfValue(0, i)) { >> + HasUses = true; >> + break; >> + } >> + VTs.push_back(N->getValueType(i)); >> + } >> + if (!HasUses) { >> + SmallVector<SDOperand, 1> Ops; >> + return CombineTo(N, DAG.getNode(ISD::UNDEF, &VTs[0], VTs.size >> (), 0, 0), >> + Chain); > > This can never trigger and isn't right if it did. > > #1: This should trigger if the chain has uses but the other values do > not. If the entire node is dead, it will already have been removed. > > #2. you can't create an undef with multiple results, you have to > create multiple undefs :) > > I'd suggest just writing this as: > > if (N->getValueType(1) == MVT::Other) { > // single result case. > } else { > assert(N->getValueType(2) == MVT::Other); > // multi result case. > } > > This lets you drop the looping and smallvector. > > -Chris > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits