summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/escape-analysis-reducer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/escape-analysis-reducer.cc')
-rw-r--r--deps/v8/src/compiler/escape-analysis-reducer.cc16
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) {