[webkit-reviews] review granted: [Bug 179835] The recursive tail call optimisation is wrong on closures : [Attachment 327645] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 28 11:30:13 PST 2017


Saam Barati <sbarati at apple.com> has granted Robin Morisset
<rmorisset at apple.com>'s request for review:
Bug 179835: The recursive tail call optimisation is wrong on closures
https://bugs.webkit.org/show_bug.cgi?id=179835

Attachment 327645: Patch

https://bugs.webkit.org/attachment.cgi?id=327645&action=review




--- Comment #2 from Saam Barati <sbarati at apple.com> ---
Comment on attachment 327645
  --> https://bugs.webkit.org/attachment.cgi?id=327645
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=327645&action=review

> Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1436
> +    // Currently we cannot do this optimisation for closures. The problem is
that "emitFunctionChecks" which we use later is too coarse, only checking the
executable
> +    // and not the value of captured variables.
> +    if (callLinkStatus[0].isClosureCall())
> +	   return false;

How is this only a problem with this code an not all of inlining? Can you
elaborate? Is the bug if we constant fold loading a closure variable?

Can you add a semantic test for this and not just a benchmark?


More information about the webkit-reviews mailing list