FTL should not flush strict arguments unless it really needs to
authorfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Mar 2017 18:00:25 +0000 (18:00 +0000)
committerfpizlo@apple.com <fpizlo@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Mar 2017 18:00:25 +0000 (18:00 +0000)
commit40fce3e3116629b6ed919f4d6d6294e2be5dcbc6
tree138115368268a435f96ce300f31636b97264ac7b
parent90186ce27916ade4352b0b94e90f5468d22418e5
FTL should not flush strict arguments unless it really needs to
https://bugs.webkit.org/show_bug.cgi?id=169519

Reviewed by Mark Lam.

JSTests:

This benchmark runs 3.5x faster thanks to this patch.

* microbenchmarks/strict-arguments-no-escape.js: Added.
(foo):
(bar):
(baz):

Source/JavaScriptCore:

This is a refinement that we should have done ages ago. This kills some pointless PutStacks
in DFG SSA IR. It can sometimes unlock other optimizations.

* dfg/DFGPreciseLocalClobberize.h:
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@213856 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSTests/ChangeLog
JSTests/microbenchmarks/strict-arguments-no-escape.js [new file with mode: 0644]
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h