• Mythri's avatar
    [TurboFan] Do not allow direct recursive inlining · 08bfcb29
    Mythri authored
    Do not allow recursive inlining when function calls itself. i.e.f() -> f()
    This is because we only get some static information for the first level
    of inlining and it may not be very beneficial to just duplicate the entire
    function. However, we still allow indirect recursion f() -> g() -> f() -> g1().
    This helps in cases where f() is a small dispatch function. For example,
    in rayTrace class.create -> obj.initialize -> class.create -> obj1.initialize.
    
    Bug: chromium:757798
    Change-Id: I0a5d9e62eabd7681849f900997b4df061b5f8ed5
    Reviewed-on: https://chromium-review.googlesource.com/632622Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
    Commit-Queue: Mythri Alle <mythria@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47605}
    08bfcb29
js-inlining-heuristic.cc 15.1 KB