Reviewers: Yang,

Description:
Disable for-in support in Crankshaft while crashes and regressions are being
investigated.

[email protected]


Please review this at https://chromiumcodereview.appspot.com/9463049/

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 bec85bfa2a01d5f4a5b8a31b718d31f5771415cc..2968445d87736082ac7245a834383ab47ef8d1bf 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -169,6 +169,9 @@ DEFINE_int(stress_runs, 0, "number of stress runs")
 DEFINE_bool(optimize_closures, true, "optimize closures")
 DEFINE_int(loop_weight, 1, "loop weight for representation inference")

+DEFINE_bool(optimize_for_in, false,
+            "optimize functions containing for-in loops")
+
 // Experimental profiler changes.
DEFINE_bool(experimental_profiler, false, "enable all profiler experiments")
 DEFINE_bool(watch_ic_patching, false, "profiler considers IC stability")
Index: src/hydrogen.cc
diff --git a/src/hydrogen.cc b/src/hydrogen.cc
index 6bc8af595d2eb26ac0fb069351560dbf8faad410..4908586f7c757c1654004bd1513930b694908d83 100644
--- a/src/hydrogen.cc
+++ b/src/hydrogen.cc
@@ -3242,6 +3242,10 @@ void HGraphBuilder::VisitForInStatement(ForInStatement* stmt) {
   ASSERT(current_block() != NULL);
   ASSERT(current_block()->HasPredecessor());

+  if (!FLAG_optimize_for_in) {
+    return Bailout("ForInStatement optimization is disabled");
+  }
+
   if (!stmt->each()->IsVariableProxy() ||
       !stmt->each()->AsVariableProxy()->var()->IsStackLocal()) {
     return Bailout("ForInStatement with non-local each variable");


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

Reply via email to