Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 004aa16a8784337f874768166b75833c6eea8086..5f85a21afb4657d008fb14699caf7e6fb9e80b53 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -170,7 +170,11 @@ class HBasicBlock: public ZoneObject { |
HBasicBlock* inlined_entry_block() { return inlined_entry_block_; } |
bool IsDeoptimizing() const { return is_deoptimizing_; } |
- void MarkAsDeoptimizing() { is_deoptimizing_ = true; } |
+ void MarkAsDeoptimizing(); |
+ |
+ void MarkUnreachable(); |
+ bool IsUnreachable() const { return !is_reachable_; } |
+ bool IsReachable() const { return is_reachable_; } |
bool IsLoopSuccessorDominator() const { |
return dominates_loop_successors_; |
@@ -213,6 +217,7 @@ class HBasicBlock: public ZoneObject { |
HBasicBlock* parent_loop_header_; |
// For blocks marked as inline return target: the block with HEnterInlined. |
HBasicBlock* inlined_entry_block_; |
+ bool is_reachable_ : 1; |
bool is_inline_return_target_ : 1; |
bool is_deoptimizing_ : 1; |
bool dominates_loop_successors_ : 1; |
@@ -454,6 +459,9 @@ class HGraph: public ZoneObject { |
uint32_instructions_->Add(instr, zone()); |
} |
+ void MarkHasUnreachableCode() { has_unreachable_code_ = true; } |
+ bool HasUnreachableCode() const { return has_unreachable_code_; } |
+ |
void IncrementInNoSideEffectsScope() { no_side_effects_scope_count_++; } |
void DecrementInNoSideEffectsScope() { no_side_effects_scope_count_--; } |
bool IsInsideNoSideEffectsScope() { return no_side_effects_scope_count_ > 0; } |
@@ -497,6 +505,7 @@ class HGraph: public ZoneObject { |
CompilationInfo* info_; |
Zone* zone_; |
+ bool has_unreachable_code_; |
bool is_recursive_; |
bool use_optimistic_licm_; |
bool has_soft_deoptimize_; |