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