Changeset 157637 in webkit


Ignore:
Timestamp:
Oct 18, 2013 9:55:42 AM (10 years ago)
Author:
commit-queue@webkit.org
Message:

Fix a FlushLiveness problem.
https://bugs.webkit.org/show_bug.cgi?id=122984

Patch by Nadav Rotem <nrotem@apple.com> on 2013-10-18
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

  • dfg/DFGFlushLivenessAnalysisPhase.cpp:

(JSC::DFG::FlushLivenessAnalysisPhase::process):

LayoutTests:

  • js/regress/script-tests/stepanov_container.js: Added.
  • js/regress/stepanov_container-expected.txt: Added.
  • js/regress/stepanov_container.html: Added.
Location:
trunk
Files:
3 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r157629 r157637  
     12013-10-18  Nadav Rotem  <nrotem@apple.com>
     2
     3        Fix a FlushLiveness problem.
     4        https://bugs.webkit.org/show_bug.cgi?id=122984
     5
     6        Reviewed by Filip Pizlo.
     7
     8        * js/regress/script-tests/stepanov_container.js: Added.
     9        * js/regress/stepanov_container-expected.txt: Added.
     10        * js/regress/stepanov_container.html: Added.
     11
    1122013-10-18  Jinwoo Song  <jinwoo7.song@samsung.com>
    213
  • trunk/Source/JavaScriptCore/ChangeLog

    r157636 r157637  
     12013-10-18  Nadav Rotem  <nrotem@apple.com>
     2
     3        Fix a FlushLiveness problem.
     4        https://bugs.webkit.org/show_bug.cgi?id=122984
     5
     6        Reviewed by Filip Pizlo.
     7
     8        * dfg/DFGFlushLivenessAnalysisPhase.cpp:
     9        (JSC::DFG::FlushLivenessAnalysisPhase::process):
     10
    1112013-10-18  Michael Saboff  <msaboff@apple.com>
    212
  • trunk/Source/JavaScriptCore/dfg/DFGFlushLivenessAnalysisPhase.cpp

    r156984 r157637  
    151151                // Three possibilities:
    152152                // 1) Predecessor format is Dead, in which case it acquires our format.
    153                 // 2) Predecessor format is identical to our format, in which case we
     153                // 2) Predecessor format is not Dead but our format is dead, in which
     154                //    case we acquire the predecessor format.
     155                // 3) Predecessor format is identical to our format, in which case we
    154156                //    do nothing.
    155                 // 3) Predecessor format is different from our format and it's not Dead,
     157                // 4) Predecessor format is different from our format and it's not Dead,
    156158                //    in which case we have an erroneous set of Flushes and SetLocals.
    157                
    158                 // FIXME: What if the predecessor was already processed by the fixpoint
    159                 // and says "not Dead" and the current block says "Dead"? We may want to
    160                 // revisit this, and say that this is is acceptable.
    161                
     159
    162160                if (!predecessorFlush) {
    163161                    predecessorFlush = myFlush;
    164162                    continue;
    165163                }
    166                
     164
     165                if (!myFlush) {
     166                    m_live[j] = predecessorFlush;
     167                    continue;
     168                }
     169
    167170                if (predecessorFlush == myFlush)
    168171                    continue;
Note: See TracChangeset for help on using the changeset viewer.