Title: [203923] trunk/Source/_javascript_Core
Revision
203923
Author
[email protected]
Date
2016-07-29 15:04:02 -0700 (Fri, 29 Jul 2016)

Log Message

Refactor DFG::Node::hasLocal() to accessesStack()
https://bugs.webkit.org/show_bug.cgi?id=160357

Reviewed by Filip Pizlo.

Refactoring in preparation for using register arguments for _javascript_ calls.

Renamed Node::hasLocal() to Node::accessesStack() and changed all uses accordingly.
Also changed uses of Node::hasVariableAccessData() to accessesStack() where that
use guards stack operation logic associated with the Node's VariableAccessData.

The hasVariableAccessData() check now implies no more than the node has a
VariableAccessData and nothing about its use of that data to coordinate stack   
accesses.

* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
* dfg/DFGLiveCatchVariablePreservationPhase.cpp:
(JSC::DFG::LiveCatchVariablePreservationPhase::handleBlock):
* dfg/DFGMaximalFlushInsertionPhase.cpp:
(JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):
* dfg/DFGNode.h:
(JSC::DFG::Node::containsMovHint):
(JSC::DFG::Node::accessesStack):
(JSC::DFG::Node::hasLocal): Deleted.
* dfg/DFGPredictionInjectionPhase.cpp:
(JSC::DFG::PredictionInjectionPhase::run):
* dfg/DFGValidate.cpp:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (203922 => 203923)


--- trunk/Source/_javascript_Core/ChangeLog	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-07-29 22:04:02 UTC (rev 203923)
@@ -1,3 +1,36 @@
+2016-07-29  Michael Saboff  <[email protected]>
+
+        Refactor DFG::Node::hasLocal() to accessesStack()
+        https://bugs.webkit.org/show_bug.cgi?id=160357
+
+        Reviewed by Filip Pizlo.
+
+        Refactoring in preparation for using register arguments for _javascript_ calls.
+
+        Renamed Node::hasLocal() to Node::accessesStack() and changed all uses accordingly.
+        Also changed uses of Node::hasVariableAccessData() to accessesStack() where that
+        use guards stack operation logic associated with the Node's VariableAccessData.
+
+        The hasVariableAccessData() check now implies no more than the node has a
+        VariableAccessData and nothing about its use of that data to coordinate stack   
+        accesses.
+
+        * dfg/DFGGraph.cpp:
+        (JSC::DFG::Graph::dump):
+        (JSC::DFG::Graph::methodOfGettingAValueProfileFor):
+        * dfg/DFGLiveCatchVariablePreservationPhase.cpp:
+        (JSC::DFG::LiveCatchVariablePreservationPhase::handleBlock):
+        * dfg/DFGMaximalFlushInsertionPhase.cpp:
+        (JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
+        (JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):
+        * dfg/DFGNode.h:
+        (JSC::DFG::Node::containsMovHint):
+        (JSC::DFG::Node::accessesStack):
+        (JSC::DFG::Node::hasLocal): Deleted.
+        * dfg/DFGPredictionInjectionPhase.cpp:
+        (JSC::DFG::PredictionInjectionPhase::run):
+        * dfg/DFGValidate.cpp:
+
 2016-07-29  Benjamin Poulain  <[email protected]>
 
         [JSC] Use the same data structures for DFG and Air Liveness Analysis

Modified: trunk/Source/_javascript_Core/dfg/DFGGraph.cpp (203922 => 203923)


--- trunk/Source/_javascript_Core/dfg/DFGGraph.cpp	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/dfg/DFGGraph.cpp	2016-07-29 22:04:02 UTC (rev 203923)
@@ -273,7 +273,7 @@
         for (unsigned i = 0; i < data.variants.size(); ++i)
             out.print(comma, inContext(data.variants[i], context));
     }
-    ASSERT(node->hasVariableAccessData(*this) == node->hasLocal(*this));
+    ASSERT(node->hasVariableAccessData(*this) == node->accessesStack(*this));
     if (node->hasVariableAccessData(*this)) {
         VariableAccessData* variableAccessData = node->tryGetVariableAccessData();
         if (variableAccessData) {
@@ -370,7 +370,7 @@
         out.print(comma, "WasHoisted");
     out.print(")");
 
-    if (node->hasVariableAccessData(*this) && node->tryGetVariableAccessData())
+    if (node->accessesStack(*this) && node->tryGetVariableAccessData())
         out.print("  predicting ", SpeculationDump(node->tryGetVariableAccessData()->prediction()));
     else if (node->hasHeapPrediction())
         out.print("  predicting ", SpeculationDump(node->getHeapPrediction()));
@@ -1530,7 +1530,7 @@
     while (node) {
         CodeBlock* profiledBlock = baselineCodeBlockFor(node->origin.semantic);
         
-        if (node->hasLocal(*this)) {
+        if (node->accessesStack(*this)) {
             ValueProfile* result = [&] () -> ValueProfile* {
                 if (!node->local().isArgument())
                     return nullptr;

Modified: trunk/Source/_javascript_Core/dfg/DFGLiveCatchVariablePreservationPhase.cpp (203922 => 203923)


--- trunk/Source/_javascript_Core/dfg/DFGLiveCatchVariablePreservationPhase.cpp	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/dfg/DFGLiveCatchVariablePreservationPhase.cpp	2016-07-29 22:04:02 UTC (rev 203923)
@@ -122,7 +122,7 @@
                     }
                 }
 
-                if (node->hasVariableAccessData(m_graph))
+                if (node->accessesStack(m_graph))
                     currentBlockAccessData.operand(node->local()) = node->variableAccessData();
             }
         }

Modified: trunk/Source/_javascript_Core/dfg/DFGMaximalFlushInsertionPhase.cpp (203922 => 203923)


--- trunk/Source/_javascript_Core/dfg/DFGMaximalFlushInsertionPhase.cpp	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/dfg/DFGMaximalFlushInsertionPhase.cpp	2016-07-29 22:04:02 UTC (rev 203923)
@@ -78,7 +78,7 @@
                         Flush, node->origin, OpInfo(flushAccessData));
                 }
 
-                if (node->hasVariableAccessData(m_graph))
+                if (node->accessesStack(m_graph))
                     currentBlockAccessData.operand(node->local()) = node->variableAccessData();
             }
         }
@@ -110,7 +110,7 @@
         Operands<Node*> initialAccessNodes(block->variablesAtTail.numberOfArguments(), block->variablesAtTail.numberOfLocals(), nullptr);
         for (unsigned i = 0; i < block->size(); i++) {
             Node* node = block->at(i);
-            if (!node->hasVariableAccessData(m_graph))
+            if (!node->accessesStack(m_graph))
                 continue;
 
             VirtualRegister operand = node->local();

Modified: trunk/Source/_javascript_Core/dfg/DFGNode.h (203922 => 203923)


--- trunk/Source/_javascript_Core/dfg/DFGNode.h	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/dfg/DFGNode.h	2016-07-29 22:04:02 UTC (rev 203923)
@@ -807,7 +807,7 @@
     }
     
     bool hasVariableAccessData(Graph&);
-    bool hasLocal(Graph& graph)
+    bool accessesStack(Graph& graph)
     {
         return hasVariableAccessData(graph);
     }

Modified: trunk/Source/_javascript_Core/dfg/DFGPredictionInjectionPhase.cpp (203922 => 203923)


--- trunk/Source/_javascript_Core/dfg/DFGPredictionInjectionPhase.cpp	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/dfg/DFGPredictionInjectionPhase.cpp	2016-07-29 22:04:02 UTC (rev 203923)
@@ -74,7 +74,7 @@
                 Node* node = block->variablesAtHead.operand(operand);
                 if (!node)
                     continue;
-                ASSERT(node->hasLocal(m_graph));
+                ASSERT(node->accessesStack(m_graph));
                 node->variableAccessData()->predict(
                     speculationFromValue(m_graph.m_plan.mustHandleValues[i]));
             }

Modified: trunk/Source/_javascript_Core/dfg/DFGValidate.cpp (203922 => 203923)


--- trunk/Source/_javascript_Core/dfg/DFGValidate.cpp	2016-07-29 22:01:03 UTC (rev 203922)
+++ trunk/Source/_javascript_Core/dfg/DFGValidate.cpp	2016-07-29 22:04:02 UTC (rev 203923)
@@ -482,17 +482,17 @@
                 block->variablesAtHead.numberOfLocals());
             
             for (size_t i = 0; i < block->variablesAtHead.numberOfArguments(); ++i) {
-                VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtHead.argument(i) || block->variablesAtHead.argument(i)->hasVariableAccessData(m_graph));
+                VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtHead.argument(i) || block->variablesAtHead.argument(i)->accessesStack(m_graph));
                 if (m_graph.m_form == ThreadedCPS)
-                    VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtTail.argument(i) || block->variablesAtTail.argument(i)->hasVariableAccessData(m_graph));
+                    VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtTail.argument(i) || block->variablesAtTail.argument(i)->accessesStack(m_graph));
                 
                 getLocalPositions.argument(i) = notSet;
                 setLocalPositions.argument(i) = notSet;
             }
             for (size_t i = 0; i < block->variablesAtHead.numberOfLocals(); ++i) {
-                VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtHead.local(i) || block->variablesAtHead.local(i)->hasVariableAccessData(m_graph));
+                VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtHead.local(i) || block->variablesAtHead.local(i)->accessesStack(m_graph));
                 if (m_graph.m_form == ThreadedCPS)
-                    VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtTail.local(i) || block->variablesAtTail.local(i)->hasVariableAccessData(m_graph));
+                    VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtTail.local(i) || block->variablesAtTail.local(i)->accessesStack(m_graph));
 
                 getLocalPositions.local(i) = notSet;
                 setLocalPositions.local(i) = notSet;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to