Skip to content
  • oliver@apple.com's avatar
    fourthTier: DFG should abstract out how it does forward exits, and that code should be simplified · c02ffd60
    oliver@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=113894
    
    Reviewed by Mark Hahnenberg.
    
    1) We previously had two different ways of convertingToForward, one path for
       where we had a ValueRecovery for the current node and one where we didn't.
       But the paths were doing exactly the same thing except that if you have a
       ValueRecovery, you also find the last applicable mov hint and do some
       extra things. This patch combines the two paths and bases both of them on
       the previous no-ValueRecovery path, which was simpler to begin with.
    
    2) This moves the logic into DFG::OSRExit, which further simplifies the code
       and makes the logic available to the FTL.
    
    * dfg/DFGOSRExit.cpp:
    (JSC::DFG::OSRExit::convertToForward):
    (DFG):
    * dfg/DFGOSRExit.h:
    (DFG):
    (OSRExit):
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::convertLastOSRExitToForward):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153114 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    c02ffd60