stress/call-apply-exponential-bytecode-size.js.no-llint failing on 32-bit debug for...
authorsbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 4 May 2017 12:20:59 +0000 (12:20 +0000)
committersbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 4 May 2017 12:20:59 +0000 (12:20 +0000)
https://bugs.webkit.org/show_bug.cgi?id=171008

Reviewed by Yusuke Suzuki.

This patch lowers the threshold for .call/.apply recursion
in an attempt to emit less code and not impact perf.
We're currently failing tests on x86-32 by running out
of executable memory. If perf gets impacted because of this,
then I'll apply a stricter change just to 32-bit platforms.
However, if this doesn't negatively impact perf, it's all around
better than all platforms emit less bytecode.

* bytecompiler/NodesCodegen.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@216180 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

index 0c3213b..5189d9a 100644 (file)
@@ -1,3 +1,20 @@
+2017-05-04  Saam Barati  <sbarati@apple.com>
+
+        stress/call-apply-exponential-bytecode-size.js.no-llint failing on 32-bit debug for OOM on executable memory
+        https://bugs.webkit.org/show_bug.cgi?id=171008
+
+        Reviewed by Yusuke Suzuki.
+
+        This patch lowers the threshold for .call/.apply recursion
+        in an attempt to emit less code and not impact perf.
+        We're currently failing tests on x86-32 by running out
+        of executable memory. If perf gets impacted because of this,
+        then I'll apply a stricter change just to 32-bit platforms.
+        However, if this doesn't negatively impact perf, it's all around
+        better than all platforms emit less bytecode.
+
+        * bytecompiler/NodesCodegen.cpp:
+
 2017-05-04  Yusuke Suzuki  <utatane.tea@gmail.com>
 
         [JSC] Math unary functions should be handled by DFG
index d0263f0..f3e5557 100644 (file)
@@ -1187,7 +1187,7 @@ RegisterID* FunctionCallDotNode::emitBytecode(BytecodeGenerator& generator, Regi
     return ret;
 }
 
-static constexpr size_t maxDistanceToInnermostCallOrApply = 4;
+static constexpr size_t maxDistanceToInnermostCallOrApply = 2;
 
 RegisterID* CallFunctionCallDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst)
 {