⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 242865 in webkit


Ignore:
Timestamp:
Mar 13, 2019, 2:24:50 AM (7 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r242276 - DFG: Loop-invariant code motion (LICM) should not hoist dead code
https://bugs.webkit.org/show_bug.cgi?id=194945
<rdar://problem/48311657>

Reviewed by Saam Barati.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

Location:
releases/WebKitGTK/webkit-2.24
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.24/JSTests/ChangeLog

    r242484 r242865  
    5656        Added a test and a microbenchmark for corner cases of
    5757        Array.prototype.join() with an uninitialized array.
     58
     592019-02-27  Robin Morisset  <rmorisset@apple.com>
     60
     61        DFG: Loop-invariant code motion (LICM) should not hoist dead code
     62        https://bugs.webkit.org/show_bug.cgi?id=194945
     63        <rdar://problem/48311657>
     64
     65        Reviewed by Mark Lam.
     66
     67        * stress/licm-dead-code.js: Added.
    5868
    5969        * microbenchmarks/array-prototype-join-uninitialized.js: Added.
  • releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore/ChangeLog

    r242542 r242865  
    416416        * runtime/JSString.h:
    417417        * runtime/NativeExecutable.cpp:
     4182019-02-27  Robin Morisset  <rmorisset@apple.com>
     419
     420        DFG: Loop-invariant code motion (LICM) should not hoist dead code
     421        https://bugs.webkit.org/show_bug.cgi?id=194945
     422        <rdar://problem/48311657>
     423
     424        Reviewed by Saam Barati.
     425
     426        * dfg/DFGLICMPhase.cpp:
     427        (JSC::DFG::LICMPhase::run):
     428
    418429        (JSC::NativeExecutable::hashFor const):
    419430        * runtime/NativeExecutable.h:
  • releases/WebKitGTK/webkit-2.24/Source/JavaScriptCore/dfg/DFGLICMPhase.cpp

    r232075 r242865  
    185185        bool changed = false;
    186186        for (BasicBlock* block : m_graph.blocksInPreOrder()) {
     187            if (!block->cfaHasVisited)
     188                continue;
     189
    187190            const NaturalLoop* loop = m_graph.m_ssaNaturalLoops->innerMostLoopOf(block);
    188191            if (!loop)
     
    211214            for (unsigned nodeIndex = 0; nodeIndex < block->size(); ++nodeIndex) {
    212215                Node*& nodeRef = block->at(nodeIndex);
     216                if (nodeRef->op() == ForceOSRExit)
     217                    break;
    213218                for (unsigned stackIndex = loopStack.size(); stackIndex--;)
    214219                    changed |= attemptHoist(block, nodeRef, loopStack[stackIndex]);
Note: See TracChangeset for help on using the changeset viewer.