Title: [183718] trunk/Source/_javascript_Core
- Revision
- 183718
- Author
- fpi...@apple.com
- Date
- 2015-05-02 10:33:36 -0700 (Sat, 02 May 2015)
Log Message
Unreviewed, add FIXMEs referencing https://bugs.webkit.org/show_bug.cgi?id=144524 and
https://bugs.webkit.org/show_bug.cgi?id=144525.
* dfg/DFGLICMPhase.cpp:
(JSC::DFG::LICMPhase::attemptHoist):
* dfg/DFGPhantomInsertionPhase.cpp:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (183717 => 183718)
--- trunk/Source/_javascript_Core/ChangeLog 2015-05-02 15:41:48 UTC (rev 183717)
+++ trunk/Source/_javascript_Core/ChangeLog 2015-05-02 17:33:36 UTC (rev 183718)
@@ -1,3 +1,12 @@
+2015-05-02 Filip Pizlo <fpi...@apple.com>
+
+ Unreviewed, add FIXMEs referencing https://bugs.webkit.org/show_bug.cgi?id=144524 and
+ https://bugs.webkit.org/show_bug.cgi?id=144525.
+
+ * dfg/DFGLICMPhase.cpp:
+ (JSC::DFG::LICMPhase::attemptHoist):
+ * dfg/DFGPhantomInsertionPhase.cpp:
+
2015-05-02 Yusuke Suzuki <utatane....@gmail.com>
Static property hashtable should only lookup with non-symbol key
Modified: trunk/Source/_javascript_Core/dfg/DFGLICMPhase.cpp (183717 => 183718)
--- trunk/Source/_javascript_Core/dfg/DFGLICMPhase.cpp 2015-05-02 15:41:48 UTC (rev 183717)
+++ trunk/Source/_javascript_Core/dfg/DFGLICMPhase.cpp 2015-05-02 17:33:36 UTC (rev 183718)
@@ -213,6 +213,10 @@
return false;
}
+ // FIXME: At this point if the hoisting of the full node fails but the node has type checks,
+ // we could still hoist just the checks.
+ // https://bugs.webkit.org/show_bug.cgi?id=144525
+
if (readsOverlap(m_graph, node, data.writes)) {
if (verbose) {
dataLog(
Modified: trunk/Source/_javascript_Core/dfg/DFGPhantomInsertionPhase.cpp (183717 => 183718)
--- trunk/Source/_javascript_Core/dfg/DFGPhantomInsertionPhase.cpp 2015-05-02 15:41:48 UTC (rev 183717)
+++ trunk/Source/_javascript_Core/dfg/DFGPhantomInsertionPhase.cpp 2015-05-02 17:33:36 UTC (rev 183718)
@@ -81,6 +81,20 @@
private:
void handleBlock(BasicBlock* block)
{
+ // FIXME: For blocks that have low register pressure, it would make the most sense to
+ // simply insert Phantoms at the last point possible since that would obviate the need to
+ // query bytecode liveness:
+ //
+ // - If we MovHint @x into loc42 then put a Phantom on the last MovHinted value in loc42.
+ // - At the end of the block put Phantoms for each MovHinted value.
+ //
+ // This will definitely not work if there are any phantom allocations. For those blocks
+ // where this would be legal, it remains to be seen how profitable it would be even if there
+ // was high register pressure. After all, a Phantom would cause a spill but it wouldn't
+ // cause a fill.
+ //
+ // https://bugs.webkit.org/show_bug.cgi?id=144524
+
m_values.fill(nullptr);
Epoch currentEpoch = Epoch::first();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes