[DFG] Consider increasing the number of DFG worklist threads
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Sep 2017 00:11:49 +0000 (00:11 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Sep 2017 00:11:49 +0000 (00:11 +0000)
commitd3ed6415564ea5bcc186ad40ac0a52746043ad40
treec3094484b34522df6dacf279aac3119c00f01bff
parentbda129b9bc3d56b4683ab2352b4e9d1fff229bf8
[DFG] Consider increasing the number of DFG worklist threads
https://bugs.webkit.org/show_bug.cgi?id=176222

Reviewed by Saam Barati.

Attempt to add one more thread to DFG worklist. DFG compiler sometimes takes
very long time if the target function is very large. However, DFG worklist
has only one thread before this patch. Therefore, one function that takes
too much time to be compiled can prevent the other functions from being
compiled in DFG or upper tiers.

One example is Octane/zlib. In zlib, compiling "a1" function in DFG takes
super long time (447 ms) because of its super large size of the function.
While this function never gets compiled in FTL due to its large size,
it can be compiled in DFG and takes super long time. Subsequent "a8" function
compilation in DFG is blocked by this "a1". As a consequence, the benchmark
takes very long time in a1/Baseline code, which is slower than DFG of course.

While FTL has a bit more threads, DFG worklist has only one thread. This patch
adds one more thread to DFG worklist to alleviate the above situation. This
change significantly improves Octane/zlib performance.

                            baseline                  patched

zlib           x2     482.32825+-6.07640    ^   408.66072+-14.03856      ^ definitely 1.1803x faster

* runtime/Options.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@221597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/Options.h