diff options
Diffstat (limited to 'deps/v8/src/compiler/escape-analysis-reducer.cc')
-rw-r--r-- | deps/v8/src/compiler/escape-analysis-reducer.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/deps/v8/src/compiler/escape-analysis-reducer.cc b/deps/v8/src/compiler/escape-analysis-reducer.cc index 9f760f2c0b..758a6188ee 100644 --- a/deps/v8/src/compiler/escape-analysis-reducer.cc +++ b/deps/v8/src/compiler/escape-analysis-reducer.cc @@ -125,19 +125,21 @@ Reduction EscapeAnalysisReducer::Reduce(Node* node) { // occurrences of virtual objects. class Deduplicator { public: - explicit Deduplicator(Zone* zone) : is_duplicate_(zone) {} + explicit Deduplicator(Zone* zone) : zone_(zone) {} bool SeenBefore(const VirtualObject* vobject) { - VirtualObject::Id id = vobject->id(); - if (id >= is_duplicate_.size()) { - is_duplicate_.resize(id + 1); + DCHECK_LE(vobject->id(), std::numeric_limits<int>::max()); + int id = static_cast<int>(vobject->id()); + if (id >= is_duplicate_.length()) { + is_duplicate_.Resize(id + 1, zone_); } - bool is_duplicate = is_duplicate_[id]; - is_duplicate_[id] = true; + bool is_duplicate = is_duplicate_.Contains(id); + is_duplicate_.Add(id); return is_duplicate; } private: - ZoneVector<bool> is_duplicate_; + Zone* zone_; + BitVector is_duplicate_; }; void EscapeAnalysisReducer::ReduceFrameStateInputs(Node* node) { |