Skip to content
  • fpizlo@apple.com's avatar
    DFG backends don't have access to per-node predictions from the propagator · d30b1206
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=69291
    
    Reviewed by Oliver Hunt.
            
    Nodes now have two notion of predictions: the heap prediction, which is
    what came directly from value profiling, and the propagator's predictions,
    which arise out of abstract interpretation. Every node has a propagator
    prediction, but not every node has a heap prediction; and there is no
    guarantee that a node that has both will keep them consistent as the
    propagator may have additional information available to it.
            
    This is performance neutral.
    
    * dfg/DFGGraph.cpp:
    (JSC::DFG::Graph::dump):
    * dfg/DFGGraph.h:
    * dfg/DFGJITCompiler.h:
    (JSC::DFG::JITCompiler::getPrediction):
    * dfg/DFGNode.h:
    (JSC::DFG::Node::Node):
    (JSC::DFG::Node::hasHeapPrediction):
    (JSC::DFG::Node::getHeapPrediction):
    (JSC::DFG::Node::predictHeap):
    (JSC::DFG::Node::prediction):
    (JSC::DFG::Node::predict):
    * dfg/DFGPropagator.cpp:
    (JSC::DFG::Propagator::Propagator):
    (JSC::DFG::Propagator::setPrediction):
    (JSC::DFG::Propagator::mergePrediction):
    (JSC::DFG::Propagator::propagateNodePredictions):
    (JSC::DFG::Propagator::fixupNode):
    (JSC::DFG::Propagator::isPredictedNumerical):
    (JSC::DFG::Propagator::logicalNotIsPure):
    (JSC::DFG::Propagator::setReplacement):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@96562 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    d30b1206