Reviewers: Yang,

Message:
PTAL.

Description:
Disable elimination of unreachable code after HSoftDeopts


Please review this at https://codereview.chromium.org/12036011/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/flag-definitions.h
  M src/hydrogen.cc


Index: src/flag-definitions.h
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index 5bf7df3a5a51118966676ec9f655ec51098cfb32..71ab693fa411ad8b1c34a6f5b01e0207c4ee7ff3 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -211,6 +211,8 @@ DEFINE_bool(array_index_dehoisting, true,
             "perform array index dehoisting")
 DEFINE_bool(dead_code_elimination, true, "use dead code elimination")
DEFINE_bool(trace_dead_code_elimination, false, "trace dead code elimination")
+DEFINE_bool(unreachable_code_elimination, false,
+            "eliminate unreachable code (hidden behind soft deopts)")
 DEFINE_bool(track_allocation_sites, true,
             "Use allocation site info to reduce transitions")
 DEFINE_bool(trace_osr, false, "trace on-stack replacement")
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index a4578ee3dfa5324e94cdd9ae32c2b08ffd9b7852..57ba4655e14b9d262a6b9e0e6b62a93fa70a9aba 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -1267,6 +1267,7 @@ void HGraph::MarkAsDeoptimizingRecursively(HBasicBlock* block) {


 void HGraph::NullifyUnreachableInstructions() {
+  if (!FLAG_unreachable_code_elimination) return;
   int block_count = blocks_.length();
   for (int i = 0; i < block_count; ++i) {
     HBasicBlock* block = blocks_.at(i);


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to