Skip to content
  • fpizlo@apple.com's avatar
    DFG should have some facility for recognizing redundant CheckArrays and Arrayifies · 372c6d51
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=99287
    
    Reviewed by Mark Hahnenberg.
    
    Adds reasoning about indexing type sets (i.e. ArrayModes) to AbstractValue, which
    then enables us to fold away CheckArray's and Arrayify's that are redundant.
    
    * bytecode/ArrayProfile.cpp:
    (JSC::arrayModesToString):
    (JSC):
    * bytecode/ArrayProfile.h:
    (JSC):
    (JSC::mergeArrayModes):
    (JSC::arrayModesAlreadyChecked):
    * bytecode/StructureSet.h:
    (JSC::StructureSet::arrayModesFromStructures):
    (StructureSet):
    * dfg/DFGAbstractState.cpp:
    (JSC::DFG::AbstractState::execute):
    * dfg/DFGAbstractValue.h:
    (JSC::DFG::AbstractValue::AbstractValue):
    (JSC::DFG::AbstractValue::clear):
    (JSC::DFG::AbstractValue::isClear):
    (JSC::DFG::AbstractValue::makeTop):
    (JSC::DFG::AbstractValue::clobberStructures):
    (AbstractValue):
    (JSC::DFG::AbstractValue::setMostSpecific):
    (JSC::DFG::AbstractValue::set):
    (JSC::DFG::AbstractValue::operator==):
    (JSC::DFG::AbstractValue::merge):
    (JSC::DFG::AbstractValue::filter):
    (JSC::DFG::AbstractValue::filterArrayModes):
    (JSC::DFG::AbstractValue::validate):
    (JSC::DFG::AbstractValue::checkConsistency):
    (JSC::DFG::AbstractValue::dump):
    (JSC::DFG::AbstractValue::clobberArrayModes):
    (JSC::DFG::AbstractValue::clobberArrayModesSlow):
    (JSC::DFG::AbstractValue::setFuturePossibleStructure):
    (JSC::DFG::AbstractValue::filterFuturePossibleStructure):
    * dfg/DFGArrayMode.cpp:
    (JSC::DFG::modeAlreadyChecked):
    * dfg/DFGArrayMode.h:
    (JSC::DFG::arrayModesFor):
    (DFG):
    * dfg/DFGConstantFoldingPhase.cpp:
    (JSC::DFG::ConstantFoldingPhase::foldConstants):
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::arrayify):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131982 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    372c6d51