The alternative LHS &= ~RHS is way too slow because it creates a
temporary that calls malloc/free.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149187
91177308-0d34-0410-b5e6-
96231b3b80d8
return *this;
}
+ // reset - Reset bits that are set in RHS. Same as *this &= ~RHS.
+ BitVector &reset(const BitVector &RHS) {
+ unsigned ThisWords = NumBitWords(size());
+ unsigned RHSWords = NumBitWords(RHS.size());
+ unsigned i;
+ for (i = 0; i != std::min(ThisWords, RHSWords); ++i)
+ Bits[i] &= ~RHS.Bits[i];
+ return *this;
+ }
+
BitVector &operator|=(const BitVector &RHS) {
if (size() < RHS.size())
resize(RHS.size());