5#ifndef RUNTIME_VM_BIT_VECTOR_H_
6#define RUNTIME_VM_BIT_VECTOR_H_
24 current_word_(
target->data_[0]) {
30 bool Done()
const {
return word_index_ >= target_->data_length_; }
50 data_(zone->Alloc<
uword>(data_length_)) {
98 ASSERT(length_ == other.length_);
99 for (intptr_t
i = 0;
i < data_length_; ++
i) {
100 if ((data_[
i] & other.data_[
i]) != data_[
i])
return false;
106 for (intptr_t
i = 0;
i < data_length_;
i++) {
112 for (intptr_t
i = 0;
i < data_length_;
i++) {
113 data_[
i] =
static_cast<uword>(-1);
117 intptr_t
length()
const {
return length_; }
123 intptr_t data_length_;
Iterator(BitVector *target)
void Set(intptr_t i, bool value)
bool Equals(const BitVector &other) const
bool KillAndAdd(BitVector *kill, BitVector *gen)
static intptr_t SizeFor(intptr_t length)
bool RemoveAll(const BitVector *from)
BitVector(Zone *zone, intptr_t length)
bool SubsetOf(const BitVector &other)
bool Contains(intptr_t i) const
bool AddAll(const BitVector *from)
void Intersect(const BitVector *other)
void CopyFrom(const BitVector *other)
constexpr intptr_t kBitsPerWord