Switch the SetVector::remove_if implementation to use partition which
authorChandler Carruth <chandlerc@gmail.com>
Wed, 3 Oct 2012 00:03:00 +0000 (00:03 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Wed, 3 Oct 2012 00:03:00 +0000 (00:03 +0000)
commit75eac5f0ebff4d0ffe10ce6bc8f2867c5f15315b
tree144f058935a0b1390a75daae8268fbf73a98aa68
parent2b87e06d265e83d61873075e8f8e9c51430ff332
Switch the SetVector::remove_if implementation to use partition which
preserves the values of the relocated entries, unlikely remove_if. This
allows walking them and erasing them.

Also flesh out the predicate we are using for this to support the
various constraints actually imposed on a UnaryPredicate -- without this
we can't compose it with std::not1.

Thanks to Sean Silva for the review here and noticing the issue with
std::remove_if.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165073 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ADT/SetVector.h
lib/Transforms/Scalar/SROA.cpp