Vincent says the element is at most once in the vector, so we don't need a full std::remove.

llvm-svn: 183541
This commit is contained in:
Benjamin Kramer 2013-06-07 18:18:12 +00:00
parent 8d477dc08f
commit ebe0be9ca4
1 changed files with 7 additions and 3 deletions

View File

@ -198,9 +198,13 @@ MachineInstr *R600VectorRegMerger::RebuildVector(
.addReg(SubReg)
.addImm(Chan);
UpdatedRegToChan[SubReg] = Chan;
UpdatedUndef.erase(
std::remove(UpdatedUndef.begin(), UpdatedUndef.end(), Chan),
UpdatedUndef.end());
std::vector<unsigned>::iterator ChanPos =
std::find(UpdatedUndef.begin(), UpdatedUndef.end(), Chan);
if (ChanPos != UpdatedUndef.end())
UpdatedUndef.erase(ChanPos);
assert(std::find(UpdatedUndef.begin(), UpdatedUndef.end(), Chan) ==
UpdatedUndef.end() &&
"UpdatedUndef shouldn't contain Chan more than once!");
DEBUG(dbgs() << " ->"; Tmp->dump(););
(void)Tmp;
SrcVec = DstReg;