Changeset 151405 in webkit


Ignore:
Timestamp:
Jun 10, 2013, 2:50:01 PM (12 years ago)
Author:
fpizlo@apple.com
Message:

Source/JavaScriptCore: Marge trunk r146653.

2013-03-22 Filip Pizlo <fpizlo@apple.com>


DFG folding of PutById to SimpleReplace should consider the specialized function case
https://bugs.webkit.org/show_bug.cgi?id=113093


Reviewed by Geoffrey Garen and Mark Hahnenberg.


  • bytecode/PutByIdStatus.cpp: (JSC::PutByIdStatus::computeFor):

LayoutTests: Merge trunk r146653.

2013-03-22 Filip Pizlo <fpizlo@apple.com>


DFG folding of PutById to SimpleReplace should consider the specialized function case
https://bugs.webkit.org/show_bug.cgi?id=113093


Reviewed by Geoffrey Garen and Mark Hahnenberg.


  • fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function-expected.txt: Added.
  • fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.html: Added.
  • fast/js/jsc-test-list:
  • fast/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js: Added. (foo): (baz): (fuzz):
Location:
branches/dfgFourthTier
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • branches/dfgFourthTier/LayoutTests/ChangeLog

    r151401 r151405  
     12013-06-09  Filip Pizlo  <fpizlo@apple.com>
     2
     3        Merge trunk r146653.
     4
     5    2013-03-22  Filip Pizlo  <fpizlo@apple.com>
     6   
     7            DFG folding of PutById to SimpleReplace should consider the specialized function case
     8            https://bugs.webkit.org/show_bug.cgi?id=113093
     9   
     10            Reviewed by Geoffrey Garen and Mark Hahnenberg.
     11   
     12            * fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function-expected.txt: Added.
     13            * fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.html: Added.
     14            * fast/js/jsc-test-list:
     15            * fast/js/script-tests/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js: Added.
     16            (foo):
     17            (baz):
     18            (fuzz):
     19   
    1202013-06-10  Geoffrey Garen  <ggaren@apple.com>
    221
  • branches/dfgFourthTier/LayoutTests/fast/js/jsc-test-list

    r150780 r151405  
    9999fast/js/dfg-captured-var-get-local
    100100fast/js/dfg-cfa-merge-with-dead-use-at-tail
     101fast/js/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function
    101102fast/js/dfg-cfg-simplify-eliminate-set-local-type-check-then-branch-not-null
    102103fast/js/dfg-cfg-simplify-eliminate-set-local-type-check-then-branch-not-null-and-decrement
  • branches/dfgFourthTier/LayoutTests/fast/js/resources/js-test-pre.js

    r151130 r151405  
    576576{
    577577    var numberOfCompiles = "compiles" in argument ? argument.compiles : 1;
     578   
     579    if (!("f" in argument))
     580        throw new Error("dfgCompiled called with invalid argument.");
    578581   
    579582    if (argument.f instanceof Array) {
  • branches/dfgFourthTier/Source/JavaScriptCore/ChangeLog

    r151401 r151405  
     12013-06-09  Filip Pizlo  <fpizlo@apple.com>
     2
     3        Marge trunk r146653.
     4
     5    2013-03-22  Filip Pizlo  <fpizlo@apple.com>
     6   
     7            DFG folding of PutById to SimpleReplace should consider the specialized function case
     8            https://bugs.webkit.org/show_bug.cgi?id=113093
     9   
     10            Reviewed by Geoffrey Garen and Mark Hahnenberg.
     11   
     12            * bytecode/PutByIdStatus.cpp:
     13            (JSC::PutByIdStatus::computeFor):
     14   
    1152013-06-10  Geoffrey Garen  <ggaren@apple.com>
    216
  • branches/dfgFourthTier/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp

    r151401 r151405  
    161161   
    162162    unsigned attributes;
    163     JSCell* specificValueIgnored;
    164     PropertyOffset offset = structure->getConcurrently(
    165         vm, uid, attributes, specificValueIgnored);
     163    JSCell* specificValue;
     164    PropertyOffset offset = structure->getConcurrently(vm, uid, attributes, specificValue);
    166165    if (isValidOffset(offset)) {
    167166        if (attributes & (Accessor | ReadOnly))
    168167            return PutByIdStatus(TakesSlowPath);
     168        if (specificValue) {
     169            // We need the PutById slow path to verify that we're storing the right value into
     170            // the specialized slot.
     171            return PutByIdStatus(TakesSlowPath);
     172        }
    169173        return PutByIdStatus(SimpleReplace, structure, 0, 0, offset);
    170174    }
Note: See TracChangeset for help on using the changeset viewer.