Changeset 203923 in webkit


Ignore:
Timestamp:
Jul 29, 2016 3:04:02 PM (8 years ago)
Author:
msaboff@apple.com
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:
Location:
trunk/Source/JavaScriptCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r203921 r203923  
     12016-07-29  Michael Saboff  <msaboff@apple.com>
     2
     3        Refactor DFG::Node::hasLocal() to accessesStack()
     4        https://bugs.webkit.org/show_bug.cgi?id=160357
     5
     6        Reviewed by Filip Pizlo.
     7
     8        Refactoring in preparation for using register arguments for JavaScript calls.
     9
     10        Renamed Node::hasLocal() to Node::accessesStack() and changed all uses accordingly.
     11        Also changed uses of Node::hasVariableAccessData() to accessesStack() where that
     12        use guards stack operation logic associated with the Node's VariableAccessData.
     13
     14        The hasVariableAccessData() check now implies no more than the node has a
     15        VariableAccessData and nothing about its use of that data to coordinate stack   
     16        accesses.
     17
     18        * dfg/DFGGraph.cpp:
     19        (JSC::DFG::Graph::dump):
     20        (JSC::DFG::Graph::methodOfGettingAValueProfileFor):
     21        * dfg/DFGLiveCatchVariablePreservationPhase.cpp:
     22        (JSC::DFG::LiveCatchVariablePreservationPhase::handleBlock):
     23        * dfg/DFGMaximalFlushInsertionPhase.cpp:
     24        (JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
     25        (JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):
     26        * dfg/DFGNode.h:
     27        (JSC::DFG::Node::containsMovHint):
     28        (JSC::DFG::Node::accessesStack):
     29        (JSC::DFG::Node::hasLocal): Deleted.
     30        * dfg/DFGPredictionInjectionPhase.cpp:
     31        (JSC::DFG::PredictionInjectionPhase::run):
     32        * dfg/DFGValidate.cpp:
     33
    1342016-07-29  Benjamin Poulain  <benjamin@webkit.org>
    235
  • trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp

    r203808 r203923  
    274274            out.print(comma, inContext(data.variants[i], context));
    275275    }
    276     ASSERT(node->hasVariableAccessData(*this) == node->hasLocal(*this));
     276    ASSERT(node->hasVariableAccessData(*this) == node->accessesStack(*this));
    277277    if (node->hasVariableAccessData(*this)) {
    278278        VariableAccessData* variableAccessData = node->tryGetVariableAccessData();
     
    371371    out.print(")");
    372372
    373     if (node->hasVariableAccessData(*this) && node->tryGetVariableAccessData())
     373    if (node->accessesStack(*this) && node->tryGetVariableAccessData())
    374374        out.print("  predicting ", SpeculationDump(node->tryGetVariableAccessData()->prediction()));
    375375    else if (node->hasHeapPrediction())
     
    15311531        CodeBlock* profiledBlock = baselineCodeBlockFor(node->origin.semantic);
    15321532       
    1533         if (node->hasLocal(*this)) {
     1533        if (node->accessesStack(*this)) {
    15341534            ValueProfile* result = [&] () -> ValueProfile* {
    15351535                if (!node->local().isArgument())
  • trunk/Source/JavaScriptCore/dfg/DFGLiveCatchVariablePreservationPhase.cpp

    r198364 r203923  
    123123                }
    124124
    125                 if (node->hasVariableAccessData(m_graph))
     125                if (node->accessesStack(m_graph))
    126126                    currentBlockAccessData.operand(node->local()) = node->variableAccessData();
    127127            }
  • trunk/Source/JavaScriptCore/dfg/DFGMaximalFlushInsertionPhase.cpp

    r198364 r203923  
    7979                }
    8080
    81                 if (node->hasVariableAccessData(m_graph))
     81                if (node->accessesStack(m_graph))
    8282                    currentBlockAccessData.operand(node->local()) = node->variableAccessData();
    8383            }
     
    111111        for (unsigned i = 0; i < block->size(); i++) {
    112112            Node* node = block->at(i);
    113             if (!node->hasVariableAccessData(m_graph))
     113            if (!node->accessesStack(m_graph))
    114114                continue;
    115115
  • trunk/Source/JavaScriptCore/dfg/DFGNode.h

    r203895 r203923  
    808808   
    809809    bool hasVariableAccessData(Graph&);
    810     bool hasLocal(Graph& graph)
     810    bool accessesStack(Graph& graph)
    811811    {
    812812        return hasVariableAccessData(graph);
  • trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp

    r198364 r203923  
    7575                if (!node)
    7676                    continue;
    77                 ASSERT(node->hasLocal(m_graph));
     77                ASSERT(node->accessesStack(m_graph));
    7878                node->variableAccessData()->predict(
    7979                    speculationFromValue(m_graph.m_plan.mustHandleValues[i]));
  • trunk/Source/JavaScriptCore/dfg/DFGValidate.cpp

    r203361 r203923  
    483483           
    484484            for (size_t i = 0; i < block->variablesAtHead.numberOfArguments(); ++i) {
    485                 VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtHead.argument(i) || block->variablesAtHead.argument(i)->hasVariableAccessData(m_graph));
     485                VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtHead.argument(i) || block->variablesAtHead.argument(i)->accessesStack(m_graph));
    486486                if (m_graph.m_form == ThreadedCPS)
    487                     VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtTail.argument(i) || block->variablesAtTail.argument(i)->hasVariableAccessData(m_graph));
     487                    VALIDATE((virtualRegisterForArgument(i), block), !block->variablesAtTail.argument(i) || block->variablesAtTail.argument(i)->accessesStack(m_graph));
    488488               
    489489                getLocalPositions.argument(i) = notSet;
     
    491491            }
    492492            for (size_t i = 0; i < block->variablesAtHead.numberOfLocals(); ++i) {
    493                 VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtHead.local(i) || block->variablesAtHead.local(i)->hasVariableAccessData(m_graph));
     493                VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtHead.local(i) || block->variablesAtHead.local(i)->accessesStack(m_graph));
    494494                if (m_graph.m_form == ThreadedCPS)
    495                     VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtTail.local(i) || block->variablesAtTail.local(i)->hasVariableAccessData(m_graph));
     495                    VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtTail.local(i) || block->variablesAtTail.local(i)->accessesStack(m_graph));
    496496
    497497                getLocalPositions.local(i) = notSet;
Note: See TracChangeset for help on using the changeset viewer.