From 4642c2e18c01294f5d7b348e79f30b280f1bc293 Mon Sep 17 00:00:00 2001 From: "bmeurer@chromium.org" Date: Mon, 16 Jun 2014 13:03:59 +0000 Subject: [PATCH] Revert "GVN fix, preventing loads hoisting above stores to the same field when HObjectAccess's representation is not the same." This reverts commit r21830 for tanking performance on Deltablue. TBR=ishell@chromium.org Review URL: https://codereview.chromium.org/336223002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/hydrogen-gvn.cc | 2 +- src/hydrogen-instructions.h | 9 +-------- test/mjsunit/regress/regress-gvn-ftt.js | 27 --------------------------- 3 files changed, 2 insertions(+), 36 deletions(-) delete mode 100644 test/mjsunit/regress/regress-gvn-ftt.js diff --git a/src/hydrogen-gvn.cc b/src/hydrogen-gvn.cc index 385947d..e6f1ae9 100644 --- a/src/hydrogen-gvn.cc +++ b/src/hydrogen-gvn.cc @@ -466,7 +466,7 @@ bool SideEffectsTracker::ComputeGlobalVar(Unique cell, int* index) { bool SideEffectsTracker::ComputeInobjectField(HObjectAccess access, int* index) { for (int i = 0; i < num_inobject_fields_; ++i) { - if (access.SameField(inobject_fields_[i])) { + if (access.Equals(inobject_fields_[i])) { *index = i; return true; } diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h index fce5d68..f1720f4 100644 --- a/src/hydrogen-instructions.h +++ b/src/hydrogen-instructions.h @@ -6202,14 +6202,7 @@ class HObjectAccess V8_FINAL { void PrintTo(StringStream* stream) const; inline bool Equals(HObjectAccess that) const { - return value_ == that.value_; - } - - // Returns true if |this| access refers to the same field as |that|, which - // means that both have same |offset| and |portion| values. - inline bool SameField(HObjectAccess that) const { - uint32_t mask = PortionField::kMask | OffsetField::kMask; - return (value_ & mask) == (that.value_ & mask); + return value_ == that.value_; // portion and offset must match } protected: diff --git a/test/mjsunit/regress/regress-gvn-ftt.js b/test/mjsunit/regress/regress-gvn-ftt.js deleted file mode 100644 index d2cb443..0000000 --- a/test/mjsunit/regress/regress-gvn-ftt.js +++ /dev/null @@ -1,27 +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 --track-field-types --use-gvn - -function A(id) { - this.id = id; -} - -var a1 = new A(1); -var a2 = new A(2); - - -var g; -function f(o, value) { - g = o.o; - o.o = value; - return o.o; -} - -var obj = {o: a1}; - -f(obj, a1); -f(obj, a1); -%OptimizeFunctionOnNextCall(f); -assertEquals(a2.id, f(obj, a2).id); -- 2.7.4