Skip to content
  • fpizlo@apple.com's avatar
    DFG CFA should leave behind information in Edge that says if the Edge's type... · 89b9c0b9
    fpizlo@apple.com authored
    DFG CFA should leave behind information in Edge that says if the Edge's type check is proven to succeed
    https://bugs.webkit.org/show_bug.cgi?id=110840
    
    Reviewed by Mark Hahnenberg.
            
    This doesn't add any observable functionality to the compiler, yet. But it does give
    every phase that runs after CFA the ability to know, in O(1) time, whether an edge
    will need to execute a type check.
    
    * dfg/DFGAbstractState.h:
    (JSC::DFG::AbstractState::filterEdgeByUse):
    (JSC::DFG::AbstractState::filterByType):
    * dfg/DFGCommon.cpp:
    (WTF):
    (WTF::printInternal):
    * dfg/DFGCommon.h:
    (JSC::DFG::isProved):
    (DFG):
    (JSC::DFG::proofStatusForIsProved):
    (WTF):
    * dfg/DFGEdge.cpp:
    (JSC::DFG::Edge::dump):
    * dfg/DFGEdge.h:
    (JSC::DFG::Edge::Edge):
    (JSC::DFG::Edge::setNode):
    (JSC::DFG::Edge::useKindUnchecked):
    (JSC::DFG::Edge::setUseKind):
    (Edge):
    (JSC::DFG::Edge::proofStatusUnchecked):
    (JSC::DFG::Edge::proofStatus):
    (JSC::DFG::Edge::setProofStatus):
    (JSC::DFG::Edge::isProved):
    (JSC::DFG::Edge::needsCheck):
    (JSC::DFG::Edge::shift):
    (JSC::DFG::Edge::makeWord):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@144340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    89b9c0b9