Reviewers: Michael Starzinger,

Description:
Revert "[turbofan] Fix control reducer bug with NTLs."

This reverts commit aeda76c5cfa9181fff5ed7140e726f96ec883cc3.

Reason: exposed other TurboFan bugs.

[email protected]
BUG=

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

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+3, -47 lines):
  M src/compiler/control-reducer.cc
  D test/mjsunit/regress-ntl.js


Index: test/mjsunit/regress-ntl.js
diff --git a/test/mjsunit/regress-ntl.js b/test/mjsunit/regress-ntl.js
deleted file mode 100644
index 993599e552369a2964c26fade7dc594c1f9d0a20..0000000000000000000000000000000000000000
--- a/test/mjsunit/regress-ntl.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Flags: --allow-natives-syntax
-
-function mod1() {
-  var v_1 = 1;
-  var v_2 = 1;
-  v_1++;
-  v_2 = {valueOf: function() { throw "gagh"; }};
-
-  function bug1() {
-    for (var i = 0; i < 1; v_2++) {
-      if (v_1 == 1) ;
-    }
-  }
-
-  return bug1;
-}
-
-var f = mod1();
-assertThrows(f);
-%OptimizeFunctionOnNextCall(f);
-assertThrows(f);
-
-
-var v_3 = 1;
-var v_4 = 1;
-v_3++;
-v_4 = {valueOf: function() { throw "gagh"; }};
-
-function bug2() {
-  for (var i = 0; i < 1; v_4++) {
-    if (v_3 == 1) ;
-  }
-}
-
-assertThrows(bug2);
-%OptimizeFunctionOnNextCall(bug2);
-assertThrows(bug2);
Index: src/compiler/control-reducer.cc
diff --git a/src/compiler/control-reducer.cc b/src/compiler/control-reducer.cc index e738ccf24e82f874447cb4584a78b8c488e71a57..236ce4b77ef725306f308c3b96771e5041db07a3 100644
--- a/src/compiler/control-reducer.cc
+++ b/src/compiler/control-reducer.cc
@@ -107,7 +107,7 @@ class ControlReducerImpl {

     // We use a stack of (Node, UseIter) pairs to avoid O(n^2) traversal.
     typedef std::pair<Node*, UseIter> FwIter;
-    ZoneVector<FwIter> fw_stack(zone_);
+    ZoneDeque<FwIter> fw_stack(zone_);
     fw_stack.push_back(FwIter(start, start->uses().begin()));

     while (!fw_stack.empty()) {
@@ -123,11 +123,8 @@ class ControlReducerImpl {
           marked.SetReachableFromEnd(added);
           AddBackwardsReachableNodes(marked, nodes, nodes.size() - 1);

-          // Reset the use iterators for the entire stack.
-          for (size_t i = 0; i < fw_stack.size(); i++) {
-            FwIter& iter = fw_stack[i];
-            fw_stack[i] = FwIter(iter.first, iter.first->uses().begin());
-          }
+          // The use list of {succ} might have changed.
+ fw_stack[fw_stack.size() - 1] = FwIter(succ, succ->uses().begin());
           pop = false;  // restart traversing successors of this node.
           break;
         }


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to