Backed out changeset 3a5257ac933d (bug 1198245) for SM failures.
authorHannes Verschore <hv1989@gmail.com>
Tue, 25 Aug 2015 23:26:55 +0200
changeset 259332 cb0c060fb081ec27038bf813e9c32bb1445e06e1
parent 259331 d2629e3e4b0c67390c95c5f56ccb101ff1802772
child 259333 e7251438cac7035cc129f7fa86737c9183b02e0d
push id29277
push userryanvm@gmail.com
push dateWed, 26 Aug 2015 18:32:23 +0000
treeherdermozilla-central@fea87cbeaa6b [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs1198245
milestone43.0a1
backs out3a5257ac933dce09eb38c8f3615aa14ce996f1ee
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
Backed out changeset 3a5257ac933d (bug 1198245) for SM failures.
js/src/jit/Ion.cpp
--- a/js/src/jit/Ion.cpp
+++ b/js/src/jit/Ion.cpp
@@ -464,18 +464,16 @@ PrepareForDebuggerOnIonCompilationHook(J
         scripts->resize(info->scriptIndex);
         info->numBlocks = 0;
     }
 }
 
 void
 jit::FinishOffThreadBuilder(JSContext* cx, IonBuilder* builder)
 {
-    MOZ_ASSERT(HelperThreadState().isLocked());
-
     // Clean the references to the pending IonBuilder, if we just finished it.
     if (builder->script()->baselineScript()->hasPendingIonBuilder() &&
         builder->script()->baselineScript()->pendingIonBuilder() == builder)
     {
         builder->script()->baselineScript()->removePendingIonBuilder(builder->script());
     }
 
     // If the builder is still in one of the helper thread list, then remove it.
@@ -580,33 +578,33 @@ jit::LazyLink(JSContext* cx, HandleScrip
     MOZ_ASSERT(calleeScript->hasBaselineScript());
     IonBuilder* builder = calleeScript->baselineScript()->pendingIonBuilder();
     calleeScript->baselineScript()->removePendingIonBuilder(calleeScript);
 
     // See PrepareForDebuggerOnIonCompilationHook
     AutoScriptVector debugScripts(cx);
     OnIonCompilationInfo info(builder->alloc().lifoAlloc());
 
+    // Remove from pending.
+    builder->removeFrom(HelperThreadState().ionLazyLinkList());
+
     {
         AutoEnterAnalysis enterTypes(cx);
         if (!LinkBackgroundCodeGen(cx, builder, &debugScripts, &info)) {
             // Silently ignore OOM during code generation. The assembly code
             // doesn't has code to handle it after linking happened. So it's
             // not OK to throw a catchable exception from there.
             cx->clearPendingException();
         }
     }
 
     if (info.filled())
         Debugger::onIonCompilation(cx, debugScripts, info.graph);
 
-    {
-        AutoLockHelperThreadState lock;
-        FinishOffThreadBuilder(cx, builder);
-    }
+    FinishOffThreadBuilder(cx, builder);
 
     MOZ_ASSERT(calleeScript->hasBaselineScript());
     MOZ_ASSERT(calleeScript->baselineOrIonRawPointer());
 }
 
 uint8_t*
 jit::LazyLinkTopActivation(JSContext* cx)
 {