Back out 9157b71a7df1 (bug 793491) for assertion failures
authorPhil Ringnalda <philringnalda@gmail.com>
Sun, 07 Oct 2012 21:02:46 -0700
changeset 109612 c9bfb6646f04d7e8d0a9035125ad1c9824b4d493
parent 109611 20899bf876464a1e487e3e8b867e452c740a87db
child 109613 d9a4e5f65837b3d251da2cde685e9e683f465c8e
push id23636
push usergsharp@mozilla.com
push dateMon, 08 Oct 2012 08:08:19 +0000
treeherdermozilla-central@24cf40690042 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs793491
milestone18.0a1
backs out9157b71a7df1fcb50b22e23e724befc6e2de4613
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Back out 9157b71a7df1 (bug 793491) for assertion failures
js/src/jsinfer.cpp
--- a/js/src/jsinfer.cpp
+++ b/js/src/jsinfer.cpp
@@ -2692,36 +2692,22 @@ ScriptAnalysis::addTypeBarrier(JSContext
          * however, do not trigger recompilation (the script will be recompiled
          * if any of the barriers is ever violated).
          */
         RootedScript script(cx, script_);
         AddPendingRecompile(cx, script, const_cast<jsbytecode*>(pc), RECOMPILE_CHECK_BARRIERS);
     }
 
     /* Ignore duplicate barriers. */
-    size_t barrierCount = 0;
     TypeBarrier *barrier = code.typeBarriers;
     while (barrier) {
-        if (barrier->target == target && !barrier->singleton) {
-            if (barrier->type == type)
-                return;
-            if (barrier->type.isAnyObject() && type.isObject())
-                return;
-        }
+        if (barrier->target == target && barrier->type == type && !barrier->singleton)
+            return;
         barrier = barrier->next;
-        barrierCount++;
-    }
-
-    /*
-     * Use a generic object barrier if the number of barriers on an opcode gets
-     * excessive: it is unlikely that we will be able to completely discharge
-     * the barrier anyways without the target being marked as a generic object.
-     */
-    if (barrierCount >= BARRIER_OBJECT_LIMIT && type.isObject())
-        type = Type::AnyObjectType();
+    }
 
     InferSpew(ISpewOps, "typeBarrier: #%u:%05u: %sT%p%s %s",
               script_->id(), pc - script_->code,
               InferSpewColor(target), target, InferSpewColorReset(),
               TypeString(type));
 
     barrier = cx->analysisLifoAlloc().new_<TypeBarrier>(target, type, (JSObject *) NULL, JSID_VOID);