Chromium Code Reviews

Unified Diff: src/hydrogen.h

Issue 22876009: Improve and simplify removal of unreachable code (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix ia32 Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
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_;
« no previous file with comments | « src/arm/lithium-codegen-arm.cc ('k') | src/hydrogen.cc » ('j') | src/hydrogen.cc » ('J')

Powered by Google App Engine