Ignore:
Timestamp:
Dec 8, 2015, 1:45:54 PM (9 years ago)
Author:
[email protected]
Message:

DFG::UnificationPhase should merge isProfitableToUnbox, since this may have been set in ByteCodeParser
https://bugs.webkit.org/show_bug.cgi?id=152011
rdar://problem/23777875

Reviewed by Michael Saboff.

Previously UnificationPhase did not merge this because we used to only set this in FixupPhase, which runs after unification. But now
ByteCodeParser may set isProfitableToUnbox as part of how it handles the ArgumentCount of an inlined varargs call, so UnificationPhase
needs to merge it after unifying.

Also changed the order of unification since this makes the bug more obvious and easier to test.

  • dfg/DFGUnificationPhase.cpp:

(JSC::DFG::UnificationPhase::run):

  • tests/stress/varargs-with-unused-count.js: Added.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGUnificationPhase.cpp

    r181993 r193782  
    6161                        break;
    6262                   
    63                     phi->variableAccessData()->unify(
    64                         phi->children.child(childIdx)->variableAccessData());
     63                    phi->children.child(childIdx)->variableAccessData()->unify(phi->variableAccessData());
    6564                }
    6665            }
     
    7574            data->find()->mergeShouldNeverUnbox(data->shouldNeverUnbox());
    7675            data->find()->mergeIsLoadedFrom(data->isLoadedFrom());
     76            data->find()->mergeIsProfitableToUnbox(data->isProfitableToUnbox());
    7777        }
    7878       
Note: See TracChangeset for help on using the changeset viewer.