Changeset 205601 in webkit


Ignore:
Timestamp:
Sep 8, 2016, 12:57:23 AM (9 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r205216 - [JSC] Some arith nodes are too pessimistic with the types supported on the fast path
https://bugs.webkit.org/show_bug.cgi?id=161410

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-30
Reviewed by Geoffrey Garen.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
DoubleRep is able to convert numbers, undefined, booleans and null.
I was too pessimistic when I gated the double implementations
on number-or-boolean speculation. We can just let DoubleRep convert
the other cases as long as it is not a Cell.

Location:
releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore/ChangeLog

    r205599 r205601  
     12016-08-30  Benjamin Poulain  <bpoulain@apple.com>
     2
     3        [JSC] Some arith nodes are too pessimistic with the types supported on the fast path
     4        https://bugs.webkit.org/show_bug.cgi?id=161410
     5
     6        Reviewed by Geoffrey Garen.
     7
     8        * dfg/DFGFixupPhase.cpp:
     9        (JSC::DFG::FixupPhase::fixupNode):
     10        DoubleRep is able to convert numbers, undefined, booleans and null.
     11        I was too pessimistic when I gated the double implementations
     12        on number-or-boolean speculation. We can just let DoubleRep convert
     13        the other cases as long as it is not a Cell.
     14
    1152016-08-30  Chris Dumez  <cdumez@apple.com>
    216
  • releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp

    r205112 r205601  
    344344            }
    345345
    346             if (node->child1()->shouldSpeculateNumberOrBoolean()) {
     346            if (node->child1()->shouldSpeculateNotCell()) {
    347347                fixDoubleOrBooleanEdge(node->child1());
    348348                node->clearFlags(NodeMustGenerate);
     
    401401        case ArithSqrt: {
    402402            Edge& child1 = node->child1();
    403             if (child1->shouldSpeculateNumberOrBoolean()) {
     403            if (child1->shouldSpeculateNotCell()) {
    404404                fixDoubleOrBooleanEdge(child1);
    405405                node->clearFlags(NodeMustGenerate);
Note: See TracChangeset for help on using the changeset viewer.