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

Reply via email to