WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
the patch
blah.patch (text/plain), 2.49 KB, created by
Filip Pizlo
on 2015-04-28 10:58:24 PDT
(
hide
)
Description:
the patch
Filename:
MIME Type:
Creator:
Filip Pizlo
Created:
2015-04-28 10:58:24 PDT
Size:
2.49 KB
patch
obsolete
>Index: Source/JavaScriptCore/ChangeLog >=================================================================== >--- Source/JavaScriptCore/ChangeLog (revision 183489) >+++ Source/JavaScriptCore/ChangeLog (working copy) >@@ -1,3 +1,21 @@ >+2015-04-28 Filip Pizlo <fpizlo@apple.com> >+ >+ VarargsForwardingPhase should only consider MovHints that have the candidate as a child >+ https://bugs.webkit.org/show_bug.cgi?id=144340 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Since we were considering all MovHints, we'd assume that the CreateDirectArguments node was >+ live so long as any MovHinted bytecode variable was alive. Basically, we'd keep it alive >+ until the end of the block. This maximized the chances of there being an interfering >+ operation, which would prevent elimination. >+ >+ The fix is to only consider MovHints that have the arguments candidate as a child. We only >+ care to track the liveness of those bytecode locals that would need an arguments object >+ recovery on OSR exit. >+ >+ * dfg/DFGVarargsForwardingPhase.cpp: >+ > 2015-04-28 Csaba Osztrogonác <ossy@webkit.org> > > Remove WinCE cruft from cmake build system >Index: Source/JavaScriptCore/dfg/DFGVarargsForwardingPhase.cpp >=================================================================== >--- Source/JavaScriptCore/dfg/DFGVarargsForwardingPhase.cpp (revision 183486) >+++ Source/JavaScriptCore/dfg/DFGVarargsForwardingPhase.cpp (working copy) >@@ -34,6 +34,7 @@ > #include "DFGGraph.h" > #include "DFGPhase.h" > #include "JSCInlines.h" >+#include <wtf/ListDump.h> > > namespace JSC { namespace DFG { > >@@ -96,6 +97,8 @@ private: > > switch (node->op()) { > case MovHint: >+ if (node->child1() != candidate) >+ break; > lastUserIndex = nodeIndex; > if (!relevantLocals.contains(node->unlinkedLocal())) > relevantLocals.append(node->unlinkedLocal()); >@@ -138,6 +141,8 @@ private: > forAllKilledOperands( > m_graph, node, block->tryAt(nodeIndex + 1), > [&] (VirtualRegister reg) { >+ if (verbose) >+ dataLog(" Killing ", reg, " while we are interested in ", listDump(relevantLocals), "\n"); > for (unsigned i = 0; i < relevantLocals.size(); ++i) { > if (relevantLocals[i] == reg) { > relevantLocals[i--] = relevantLocals.last();
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
mark.lam
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 144340
: 251862