Title: [181498] trunk/Source/_javascript_Core
- Revision
- 181498
- Author
- [email protected]
- Date
- 2015-03-14 10:45:43 -0700 (Sat, 14 Mar 2015)
Log Message
Unreviewed, rolling out r181487.
https://bugs.webkit.org/show_bug.cgi?id=142695
Caused Speedometer/Full.html to fail (Requested by smfr on
#webkit).
Reverted changeset:
"DFG::PutStackSinkingPhase should eliminate GetStacks that
have an obviously known source"
https://bugs.webkit.org/show_bug.cgi?id=141624
http://trac.webkit.org/changeset/181487
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (181497 => 181498)
--- trunk/Source/_javascript_Core/ChangeLog 2015-03-14 16:29:20 UTC (rev 181497)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-03-14 17:45:43 UTC (rev 181498)
@@ -1,3 +1,18 @@
+2015-03-14 Commit Queue <[email protected]>
+
+ Unreviewed, rolling out r181487.
+ https://bugs.webkit.org/show_bug.cgi?id=142695
+
+ Caused Speedometer/Full.html to fail (Requested by smfr on
+ #webkit).
+
+ Reverted changeset:
+
+ "DFG::PutStackSinkingPhase should eliminate GetStacks that
+ have an obviously known source"
+ https://bugs.webkit.org/show_bug.cgi?id=141624
+ http://trac.webkit.org/changeset/181487
+
2015-03-14 Michael Saboff <[email protected]>
ES6: Add binary and octal literal support
Modified: trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp (181497 => 181498)
--- trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp 2015-03-14 16:29:20 UTC (rev 181497)
+++ trunk/Source/_javascript_Core/dfg/DFGPutStackSinkingPhase.cpp 2015-03-14 17:45:43 UTC (rev 181498)
@@ -221,12 +221,6 @@
continue;
}
- if (node->op() == GetStack) {
- // A GetStack doesn't affect anything, since we know which local we are reading
- // from.
- continue;
- }
-
auto escapeHandler = [&] (VirtualRegister operand) {
if (operand.isHeader())
return;
@@ -396,28 +390,6 @@
deferred.operand(node->unlinkedLocal()) = ConflictingFlush;
break;
}
-
- case GetStack: {
- StackAccessData* data = ""
- FlushFormat format = deferred.operand(data->local);
- if (!isConcrete(format)) {
- // This means there is no deferral. No deferral means that the most
- // authoritative value for this stack slot is what is stored in the stack. So,
- // keep the GetStack.
- break;
- }
-
- // We have a concrete deferral, which means a PutStack that hasn't executed yet. It
- // would have stored a value with a certain format. That format must match our
- // format. But more importantly, we can simply use the value that the PutStack would
- // have stored and get rid of the GetStack.
- DFG_ASSERT(m_graph, node, format == data->format);
-
- Node* incoming = mapping.operand(data->local);
- node->convertToIdentity();
- node->child1() = incoming->defaultEdge();
- break;
- }
default: {
auto escapeHandler = [&] (VirtualRegister operand) {
@@ -446,6 +418,16 @@
preciseLocalClobberize(
m_graph, node, escapeHandler, escapeHandler,
[&] (VirtualRegister, Node*) { });
+
+ // If we're a GetStack, then we also create a mapping.
+ // FIXME: We should be able to just eliminate such GetLocals, when we know
+ // what their incoming value will be.
+ // https://bugs.webkit.org/show_bug.cgi?id=141624
+ if (node->op() == GetStack) {
+ StackAccessData* data = ""
+ VirtualRegister operand = data->local;
+ mapping.operand(operand) = node;
+ }
break;
} }
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes