Title: [188776] trunk/Source/_javascript_Core
Revision
188776
Author
[email protected]
Date
2015-08-21 14:44:11 -0700 (Fri, 21 Aug 2015)

Log Message

DFG::PutStackSinkingPhase doesn't need to emit KillStack nodes
https://bugs.webkit.org/show_bug.cgi?id=148331

Reviewed by Geoffrey Garen.

PutStackSinkingPhase previously emitted a KillStack node when it sank a PutStack. This
isn't necessary because KillStack is only interesting for OSR exit, and PutStack nodes
that are relevant to OSR will already be preceded by a KillStack/MovHint pair.

* dfg/DFGPutStackSinkingPhase.cpp:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (188775 => 188776)


--- trunk/Source/_javascript_Core/ChangeLog	2015-08-21 21:41:53 UTC (rev 188775)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-08-21 21:44:11 UTC (rev 188776)
@@ -1,5 +1,18 @@
 2015-08-21  Filip Pizlo  <[email protected]>
 
+        DFG::PutStackSinkingPhase doesn't need to emit KillStack nodes
+        https://bugs.webkit.org/show_bug.cgi?id=148331
+
+        Reviewed by Geoffrey Garen.
+
+        PutStackSinkingPhase previously emitted a KillStack node when it sank a PutStack. This
+        isn't necessary because KillStack is only interesting for OSR exit, and PutStack nodes
+        that are relevant to OSR will already be preceded by a KillStack/MovHint pair.
+
+        * dfg/DFGPutStackSinkingPhase.cpp:
+
+2015-08-21  Filip Pizlo  <[email protected]>
+
         DFG::NodeOrigin should have a flag determining if exiting is OK right now
         https://bugs.webkit.org/show_bug.cgi?id=148323
 

Modified: trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp (188775 => 188776)


--- trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp	2015-08-21 21:41:53 UTC (rev 188775)
+++ trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp	2015-08-21 21:44:11 UTC (rev 188776)
@@ -516,8 +516,7 @@
         }
         
         // Finally eliminate the sunken PutStacks by turning them into Checks. This keeps whatever
-        // type check they were doing. Also prepend KillStacks to them to ensure that we know that
-        // the relevant value was *not* stored to the stack.
+        // type check they were doing.
         for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
             for (unsigned nodeIndex = 0; nodeIndex < block->size(); ++nodeIndex) {
                 Node* node = block->at(nodeIndex);
@@ -525,8 +524,6 @@
                 if (!putLocalsToSink.contains(node))
                     continue;
                 
-                insertionSet.insertNode(
-                    nodeIndex, SpecNone, KillStack, node->origin, OpInfo(node->stackAccessData()->local.offset()));
                 node->remove();
             }
             
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to