Skip to content
  • fpizlo@apple.com's avatar
    DFG optimized string access code should be enabled · a387b6a3
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=100825
    
    Reviewed by Oliver Hunt.
    
    - Removes prediction checks from the parser.
            
    - Fixes the handling of array mode refinement for strings. I.e. we don't do
      any refinement - we already know it's going to be a string. We could
      revisit this in the future, but for now the DFG lacks the ability to
      handle any array modes other than Array::String for string intrinsics, so
      this is as good as it gets.
            
    - Removes uses of isBlahSpeculation for checking if a mode is already
      checked. isBlahSpeculation implicitly checks if the SpeculatedType is not
      BOTTOM ("empty"), which breaks for checking if a mode is already checked
      since a mode may already be "checked" in the sense that we've proven that
      the code is unreachable.
            
    ~1% speed-up on V8v7, mostly from a speed-up on crypto, which uses string
    intrinsics in one of the hot functions.
    
    * bytecode/SpeculatedType.h:
    (JSC::speculationChecked):
    (JSC):
    * dfg/DFGArrayMode.cpp:
    (JSC::DFG::ArrayMode::alreadyChecked):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::handleIntrinsic):
    * dfg/DFGFixupPhase.cpp:
    (JSC::DFG::FixupPhase::fixupNode):
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@133135 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    a387b6a3