Ignore:
Timestamp:
Sep 2, 2011, 2:16:25 PM (14 years ago)
Author:
[email protected]
Message:

DFG graph has no way of distinguishing or reconciling between static
and dynamic predictions
https://bugs.webkit.org/show_bug.cgi?id=67343

Reviewed by Gavin Barraclough.

PredictedType now stores the source of the prediction. Merging predictions,
which was previously done with a bitwise or, is now done via the
mergePredictions (equivalent to |) and mergePrediction (equivalent to |=)
functions, which correctly handle combinations of static and dynamic.

This is performance-neutral, since all predictions are currently static and
so the code has no visible effects.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::set):
(JSC::DFG::ByteCodeParser::staticallyPredictArray):
(JSC::DFG::ByteCodeParser::staticallyPredictInt32):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::predict):
(JSC::DFG::Graph::predictGlobalVar):

  • dfg/DFGNode.h:

(JSC::DFG::isArrayPrediction):
(JSC::DFG::isInt32Prediction):
(JSC::DFG::isDoublePrediction):
(JSC::DFG::isDynamicPrediction):
(JSC::DFG::mergePredictions):
(JSC::DFG::mergePrediction):
(JSC::DFG::makePrediction):
(JSC::DFG::Node::predict):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r94448 r94449  
     12011-09-02  Filip Pizlo  <[email protected]>
     2
     3        DFG graph has no way of distinguishing or reconciling between static
     4        and dynamic predictions
     5        https://bugs.webkit.org/show_bug.cgi?id=67343
     6
     7        Reviewed by Gavin Barraclough.
     8       
     9        PredictedType now stores the source of the prediction.  Merging predictions,
     10        which was previously done with a bitwise or, is now done via the
     11        mergePredictions (equivalent to |) and mergePrediction (equivalent to |=)
     12        functions, which correctly handle combinations of static and dynamic.
     13       
     14        This is performance-neutral, since all predictions are currently static and
     15        so the code has no visible effects.
     16
     17        * dfg/DFGByteCodeParser.cpp:
     18        (JSC::DFG::ByteCodeParser::set):
     19        (JSC::DFG::ByteCodeParser::staticallyPredictArray):
     20        (JSC::DFG::ByteCodeParser::staticallyPredictInt32):
     21        (JSC::DFG::ByteCodeParser::parseBlock):
     22        * dfg/DFGGraph.h:
     23        (JSC::DFG::Graph::predict):
     24        (JSC::DFG::Graph::predictGlobalVar):
     25        * dfg/DFGNode.h:
     26        (JSC::DFG::isArrayPrediction):
     27        (JSC::DFG::isInt32Prediction):
     28        (JSC::DFG::isDoublePrediction):
     29        (JSC::DFG::isDynamicPrediction):
     30        (JSC::DFG::mergePredictions):
     31        (JSC::DFG::mergePrediction):
     32        (JSC::DFG::makePrediction):
     33        (JSC::DFG::Node::predict):
     34
    1352011-09-02  Oliver Hunt  <[email protected]>
    236
Note: See TracChangeset for help on using the changeset viewer.