Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index cfd5444cd5101ccac70b895980fd9b295ae69cba..a6da1c3a75e9b3ceb3abc8264608687180e8f9da 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -1529,8 +1529,23 @@ class HCompareMap V8_FINAL : public HUnaryControlInstruction { |
DECLARE_INSTRUCTION_FACTORY_P4(HCompareMap, HValue*, Handle<Map>, |
HBasicBlock*, HBasicBlock*); |
+ virtual bool KnownSuccessorBlock(HBasicBlock** block) V8_OVERRIDE { |
+ if (known_successor_index() != kNoKnownSuccessorIndex) { |
+ *block = SuccessorAt(known_successor_index()); |
+ return true; |
+ } |
+ *block = NULL; |
+ return false; |
+ } |
+ |
virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE; |
+ static const int kNoKnownSuccessorIndex = -1; |
+ int known_successor_index() const { return known_successor_index_; } |
+ void set_known_successor_index(int known_successor_index) { |
+ known_successor_index_ = known_successor_index; |
+ } |
+ |
Unique<Map> map() const { return map_; } |
virtual Representation RequiredInputRepresentation(int index) V8_OVERRIDE { |
@@ -1548,10 +1563,11 @@ class HCompareMap V8_FINAL : public HUnaryControlInstruction { |
HBasicBlock* true_target = NULL, |
HBasicBlock* false_target = NULL) |
: HUnaryControlInstruction(value, true_target, false_target), |
- map_(Unique<Map>(map)) { |
+ known_successor_index_(kNoKnownSuccessorIndex), map_(Unique<Map>(map)) { |
ASSERT(!map.is_null()); |
} |
+ int known_successor_index_; |
Unique<Map> map_; |
}; |