Title: [211548] trunk/Source/_javascript_Core
Revision
211548
Author
commit-qu...@webkit.org
Date
2017-02-01 17:57:00 -0800 (Wed, 01 Feb 2017)

Log Message

Unreviewed, rolling out r211461.
https://bugs.webkit.org/show_bug.cgi?id=167721

Big regression on kraken (Requested by jfbastien on #webkit).

Reverted changeset:

"OSR entry: delay outer-loop compilation when at inner-loop"
https://bugs.webkit.org/show_bug.cgi?id=167149
http://trac.webkit.org/changeset/211461

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (211547 => 211548)


--- trunk/Source/_javascript_Core/ChangeLog	2017-02-02 01:54:46 UTC (rev 211547)
+++ trunk/Source/_javascript_Core/ChangeLog	2017-02-02 01:57:00 UTC (rev 211548)
@@ -1,3 +1,16 @@
+2017-02-01  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, rolling out r211461.
+        https://bugs.webkit.org/show_bug.cgi?id=167721
+
+        Big regression on kraken (Requested by jfbastien on #webkit).
+
+        Reverted changeset:
+
+        "OSR entry: delay outer-loop compilation when at inner-loop"
+        https://bugs.webkit.org/show_bug.cgi?id=167149
+        http://trac.webkit.org/changeset/211461
+
 2017-02-01  Keith Miller  <keith_mil...@apple.com>
 
         Unreviewed, fix unintended change.

Modified: trunk/Source/_javascript_Core/dfg/DFGOperations.cpp (211547 => 211548)


--- trunk/Source/_javascript_Core/dfg/DFGOperations.cpp	2017-02-02 01:54:46 UTC (rev 211547)
+++ trunk/Source/_javascript_Core/dfg/DFGOperations.cpp	2017-02-02 01:57:00 UTC (rev 211548)
@@ -2351,19 +2351,6 @@
         worklistState = Worklist::NotKnown;
 
     JITCode* jitCode = codeBlock->jitCode()->dfg();
-
-    bool triggeredSlowPath = false;
-    auto tierUpEntryTriggers = jitCode->tierUpEntryTriggers.find(osrEntryBytecodeIndex);
-    if (tierUpEntryTriggers != jitCode->tierUpEntryTriggers.end()) {
-        if (tierUpEntryTriggers->value == 1) {
-            // We were asked to enter as soon as possible. Unset this trigger so we don't continually enter.
-            if (Options::verboseOSR())
-                dataLog("EntryTrigger for ", *codeBlock, " forced slow-path.\n");
-            triggeredSlowPath = true;
-            tierUpEntryTriggers->value = 0;
-        }
-    }
-
     if (worklistState == Worklist::Compiling) {
         CODEBLOCK_LOG_EVENT(codeBlock, "delayFTLCompile", ("still compiling"));
         jitCode->setOptimizationThresholdBasedOnCompilationResult(
@@ -2379,12 +2366,8 @@
         return nullptr;
     }
 
-    // The following is only true for triggerTierUpNowInLoop, which can never
-    // be an OSR entry.
-    bool canOSRFromHere = originBytecodeIndex == osrEntryBytecodeIndex;
-
     // If we can OSR Enter, do it right away.
-    if (canOSRFromHere) {
+    if (originBytecodeIndex == osrEntryBytecodeIndex) {
         unsigned streamIndex = jitCode->bytecodeIndexToStreamIndex.get(originBytecodeIndex);
         if (CodeBlock* entryBlock = jitCode->osrEntryBlock()) {
             if (void* address = FTL::prepareOSREntry(exec, codeBlock, entryBlock, originBytecodeIndex, streamIndex)) {
@@ -2398,10 +2381,10 @@
     // - If we do have an FTL code block, then try to enter for a while.
     // - If we couldn't enter for a while, then trigger OSR entry.
 
-    if (!shouldTriggerFTLCompile(codeBlock, jitCode) && !triggeredSlowPath)
+    if (!shouldTriggerFTLCompile(codeBlock, jitCode))
         return nullptr;
 
-    if (!jitCode->neverExecutedEntry && !triggeredSlowPath) {
+    if (!jitCode->neverExecutedEntry) {
         triggerFTLReplacementCompile(vm, codeBlock, jitCode);
 
         if (!codeBlock->hasOptimizedReplacement())
@@ -2447,28 +2430,13 @@
         return nullptr;
     }
 
-    if (!canOSRFromHere) {
-        // We can't OSR from here, or even start a compilation because doing so
-        // calls jitCode->reconstruct which would get the wrong state.
-        if (Options::verboseOSR())
-            dataLog("Non-OSR-able bc#", originBytecodeIndex, " in ", *codeBlock, " setting parent loop's trigger and backing off.\n");
-        jitCode->tierUpEntryTriggers.set(osrEntryBytecodeIndex, 1);
-        jitCode->dontOptimizeAnytimeSoon(codeBlock);
-        return nullptr;
-    }
-
     unsigned streamIndex = jitCode->bytecodeIndexToStreamIndex.get(osrEntryBytecodeIndex);
-
-    if (!triggeredSlowPath) {
-        auto tierUpHierarchyEntry = jitCode->tierUpInLoopHierarchy.find(osrEntryBytecodeIndex);
-        if (tierUpHierarchyEntry != jitCode->tierUpInLoopHierarchy.end()) {
-            for (unsigned osrEntryCandidate : tierUpHierarchyEntry->value) {
-                if (jitCode->tierUpEntrySeen.contains(osrEntryCandidate)) {
-                    // Ask an enclosing loop to compile, instead of doing so here.
-                    jitCode->tierUpEntryTriggers.set(osrEntryCandidate, 1);
-                    jitCode->dontOptimizeAnytimeSoon(codeBlock);
-                    return nullptr;
-                }
+    auto tierUpHierarchyEntry = jitCode->tierUpInLoopHierarchy.find(osrEntryBytecodeIndex);
+    if (tierUpHierarchyEntry != jitCode->tierUpInLoopHierarchy.end()) {
+        for (unsigned osrEntryCandidate : tierUpHierarchyEntry->value) {
+            if (jitCode->tierUpEntrySeen.contains(osrEntryCandidate)) {
+                osrEntryBytecodeIndex = osrEntryCandidate;
+                streamIndex = jitCode->bytecodeIndexToStreamIndex.get(osrEntryBytecodeIndex);
             }
         }
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to