<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[203440] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/203440">203440</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2016-07-19 18:45:25 -0700 (Tue, 19 Jul 2016)</dd>
</dl>

<h3>Log Message</h3>
<pre>The default testing mode should not involve disabling the FTL JIT
https://bugs.webkit.org/show_bug.cgi?id=159929

Rubber stamped by Mark Lam and Saam Barati.
        
Source/JavaScriptCore:

Use the new powers to make some tests run only in the default configuration (i.e. FTL,
concurrent JIT).

* tests/mozilla/mozilla-tests.yaml:

Tools:

It used to be the case that most actively maintained ports did not have the FTL JIT enabled.
Heck, for most of the FTL's initial development, it wasn't enabled anywhere. So, testing the
FTL was not the default. You had to enable it with an option.
        
For some reason we have kept this arrangement even though the FTL JIT is now the default on
all of the major ports. This has become a serious pain. For example, it's useful to be able
to say that a test should only run in the default config that is representative of what a
normal user would see if they ran JSC. Clearly, this would be a config that does not
explicitly disable the FTL JIT on the command line. However, if you try to specify this then
your test won't run at all if the --ftl-jit option is not passed. That's dangerous!
        
So, this change gets rid of all of this logic. I think it's better to get rid of it then to
try to fix it, because:
        
- I don't know what the fix would look like. Presumably it would ensure that ports that don't
  have the FTL enabled never run any tests that explicitly disable the FTL, since that
  doesn't do anything. The code is not really structured to allow this.
        
- It benefits a minority of clients. Three build bots run tests in a config that has the FTL
  disabled in testing. On the other hand there are already build bots that do FTL tests
  despite having the FTL disabled by virtue of being a 32-bit platform. So, maybe rather than
  preserving this broken feature, we should create something that (a) acknowledges the fact
  that the FTL is the default on those platforms that support it and (b) avoids running
  no-ftl tests on precisely those platforms that don't have FTL.
        
- To the extent that some bots benefited from disabling FTL tests, they were doing it by
  relying on a feature that was never meant to stick around. The FTL JIT is meant to be the
  default configuration. Disabling the FTL JIT is the non-default. So, we shouldn't be
  pretending that the FTL JIT is not the default just because some bots used that as an
  optimization.
        
This change allows me to speed up some debug tests and paint some bots green.

* Scripts/run-javascriptcore-tests:
(runJSCStressTests):
* Scripts/run-jsc-stress-tests:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCoretestsmozillamozillatestsyaml">trunk/Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsScriptsrunjavascriptcoretests">trunk/Tools/Scripts/run-javascriptcore-tests</a></li>
<li><a href="#trunkToolsScriptsrunjscstresstests">trunk/Tools/Scripts/run-jsc-stress-tests</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (203439 => 203440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2016-07-20 01:29:25 UTC (rev 203439)
+++ trunk/Source/JavaScriptCore/ChangeLog        2016-07-20 01:45:25 UTC (rev 203440)
</span><span class="lines">@@ -1,3 +1,15 @@
</span><ins>+2016-07-19  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        The default testing mode should not involve disabling the FTL JIT
+        https://bugs.webkit.org/show_bug.cgi?id=159929
+
+        Rubber stamped by Mark Lam and Saam Barati.
+        
+        Use the new powers to make some tests run only in the default configuration (i.e. FTL,
+        concurrent JIT).
+
+        * tests/mozilla/mozilla-tests.yaml:
+
</ins><span class="cx"> 2016-07-19  Keith Miller  &lt;keith_miller@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Test262 should have a file with the revision and url
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoretestsmozillamozillatestsyaml"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml (203439 => 203440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml        2016-07-20 01:29:25 UTC (rev 203439)
+++ trunk/Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml        2016-07-20 01:45:25 UTC (rev 203440)
</span><span class="lines">@@ -592,13 +592,13 @@
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.1.1-2.js
</span><span class="cx">   cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.1.1-3.js
</span><del>-  cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</del><ins>+  cmd: runMozillaTestDefaultFTL :normal, &quot;../shell.js&quot;
</ins><span class="cx"> - path: ecma/FunctionObjects/15.3.2.1-1.js
</span><span class="cx">   cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.2.1-2.js
</span><span class="cx">   cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.2.1-3.js
</span><del>-  cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</del><ins>+  cmd: runMozillaTestDefaultFTL :normal, &quot;../shell.js&quot;
</ins><span class="cx"> - path: ecma/FunctionObjects/15.3.3.1-1.js
</span><span class="cx">   cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.3.1-2.js
</span><span class="lines">@@ -616,7 +616,7 @@
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.4.js
</span><span class="cx">   cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.5-1.js
</span><del>-  cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</del><ins>+  cmd: runMozillaTestDefaultFTL :normal, &quot;../shell.js&quot;
</ins><span class="cx"> - path: ecma/FunctionObjects/15.3.5-2.js
</span><span class="cx">   cmd: defaultRunMozillaTest :normal, &quot;../shell.js&quot;
</span><span class="cx"> - path: ecma/FunctionObjects/15.3.5.1.js
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (203439 => 203440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2016-07-20 01:29:25 UTC (rev 203439)
+++ trunk/Tools/ChangeLog        2016-07-20 01:45:25 UTC (rev 203440)
</span><span class="lines">@@ -1,3 +1,47 @@
</span><ins>+2016-07-19  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        The default testing mode should not involve disabling the FTL JIT
+        https://bugs.webkit.org/show_bug.cgi?id=159929
+
+        Rubber stamped by Mark Lam and Saam Barati.
+        
+        It used to be the case that most actively maintained ports did not have the FTL JIT enabled.
+        Heck, for most of the FTL's initial development, it wasn't enabled anywhere. So, testing the
+        FTL was not the default. You had to enable it with an option.
+        
+        For some reason we have kept this arrangement even though the FTL JIT is now the default on
+        all of the major ports. This has become a serious pain. For example, it's useful to be able
+        to say that a test should only run in the default config that is representative of what a
+        normal user would see if they ran JSC. Clearly, this would be a config that does not
+        explicitly disable the FTL JIT on the command line. However, if you try to specify this then
+        your test won't run at all if the --ftl-jit option is not passed. That's dangerous!
+        
+        So, this change gets rid of all of this logic. I think it's better to get rid of it then to
+        try to fix it, because:
+        
+        - I don't know what the fix would look like. Presumably it would ensure that ports that don't
+          have the FTL enabled never run any tests that explicitly disable the FTL, since that
+          doesn't do anything. The code is not really structured to allow this.
+        
+        - It benefits a minority of clients. Three build bots run tests in a config that has the FTL
+          disabled in testing. On the other hand there are already build bots that do FTL tests
+          despite having the FTL disabled by virtue of being a 32-bit platform. So, maybe rather than
+          preserving this broken feature, we should create something that (a) acknowledges the fact
+          that the FTL is the default on those platforms that support it and (b) avoids running
+          no-ftl tests on precisely those platforms that don't have FTL.
+        
+        - To the extent that some bots benefited from disabling FTL tests, they were doing it by
+          relying on a feature that was never meant to stick around. The FTL JIT is meant to be the
+          default configuration. Disabling the FTL JIT is the non-default. So, we shouldn't be
+          pretending that the FTL JIT is not the default just because some bots used that as an
+          optimization.
+        
+        This change allows me to speed up some debug tests and paint some bots green.
+
+        * Scripts/run-javascriptcore-tests:
+        (runJSCStressTests):
+        * Scripts/run-jsc-stress-tests:
+
</ins><span class="cx"> 2016-07-19  Alex Christensen  &lt;achristensen@webkit.org&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix API test after r203426.
</span></span></pre></div>
<a id="trunkToolsScriptsrunjavascriptcoretests"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/run-javascriptcore-tests (203439 => 203440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/run-javascriptcore-tests        2016-07-20 01:29:25 UTC (rev 203439)
+++ trunk/Tools/Scripts/run-javascriptcore-tests        2016-07-20 01:45:25 UTC (rev 203440)
</span><span class="lines">@@ -65,7 +65,6 @@
</span><span class="cx"> my $gmallocPath = undef;
</span><span class="cx"> my $gmallocDefaultPath = &quot;/usr/lib/libgmalloc.dylib&quot;;
</span><span class="cx"> 
</span><del>-my $enableFTL = isAppleMacWebKit() || isX86_64() &amp;&amp; (isGtk() || isEfl());
</del><span class="cx"> my $createTarball = 0;
</span><span class="cx"> my $remoteHost = 0;
</span><span class="cx"> my $failFast = 1;
</span><span class="lines">@@ -148,7 +147,6 @@
</span><span class="cx">     'root=s' =&gt; \$root,
</span><span class="cx">     'extra-tests=s' =&gt; \$extraTests,
</span><span class="cx">     'build!' =&gt; \$buildJSC,
</span><del>-    'ftl-jit!' =&gt; \$enableFTL,
</del><span class="cx">     'testapi!' =&gt; \$runTestAPI,
</span><span class="cx">     'jsc-stress!' =&gt; \$runJSCStress,
</span><span class="cx">     'jit-stress-tests!' =&gt; \$runJITStressTests,
</span><span class="lines">@@ -171,11 +169,6 @@
</span><span class="cx"> # Assume any arguments left over from GetOptions are assumed to be build arguments
</span><span class="cx"> my @buildArgs = @ARGV;
</span><span class="cx"> 
</span><del>-# The --ftl-jit argument gets passed as a build argument.
-if ($enableFTL) {
-    push(@buildArgs, '--ftl-jit');
-}
-
</del><span class="cx"> if ($showHelp) {
</span><span class="cx">    print STDERR $usage;
</span><span class="cx">    exit 1;
</span><span class="lines">@@ -210,7 +203,7 @@
</span><span class="cx"> 
</span><span class="cx"> my $productDir = jscProductDir();
</span><span class="cx"> $ENV{DYLD_FRAMEWORK_PATH} = $productDir;
</span><del>-$ENV{JSCTEST_timeout} = 60 unless $ENV{JSCTEST_timeout}; # Set a 60 second timeout on all jsc tests (if environment variable not defined already).
</del><ins>+$ENV{JSCTEST_timeout} = 120 unless $ENV{JSCTEST_timeout}; # Set a 120 second timeout on all jsc tests (if environment variable not defined already).
</ins><span class="cx"> $ENV{TZ}=&quot;US/Pacific&quot;; # Some tests fail if the time zone is not set to US/Pacific (&lt;https://webkit.org/b/136363&gt;)
</span><span class="cx"> setPathForRunningWebKitApp(\%ENV) if isCygwin();
</span><span class="cx"> 
</span><span class="lines">@@ -316,10 +309,6 @@
</span><span class="cx"> 
</span><span class="cx">     if (!$runJITStressTests) {
</span><span class="cx">         push(@jscStressDriverCmd, &quot;--no-jit&quot;);
</span><del>-    } else {
-        if ($enableFTL) {
-            push(@jscStressDriverCmd, &quot;--ftl-jit&quot;);
-        }
</del><span class="cx">     }
</span><span class="cx">     if ($createTarball) {
</span><span class="cx">         push(@jscStressDriverCmd, &quot;--tarball&quot;);
</span></span></pre></div>
<a id="trunkToolsScriptsrunjscstresstests"></a>
<div class="modfile"><h4>Modified: trunk/Tools/Scripts/run-jsc-stress-tests (203439 => 203440)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/Scripts/run-jsc-stress-tests        2016-07-20 01:29:25 UTC (rev 203439)
+++ trunk/Tools/Scripts/run-jsc-stress-tests        2016-07-20 01:45:25 UTC (rev 203440)
</span><span class="lines">@@ -97,7 +97,6 @@
</span><span class="cx"> 
</span><span class="cx"> $jscPath = nil
</span><span class="cx"> $doNotMessWithVMPath = false
</span><del>-$enableFTL = false
</del><span class="cx"> $jitTests = true
</span><span class="cx"> $memoryLimited = false
</span><span class="cx"> $outputDir = Pathname.new(&quot;results&quot;)
</span><span class="lines">@@ -124,7 +123,6 @@
</span><span class="cx">     puts &quot;--jsc                (-j)   Path to JavaScriptCore build product. This option is required.&quot;
</span><span class="cx">     puts &quot;--no-copy                   Do not copy the JavaScriptCore build product before testing.&quot;
</span><span class="cx">     puts &quot;                            --jsc specifies an already present JavaScriptCore to test.&quot;
</span><del>-    puts &quot;--ftl-jit                   Indicate that we have the FTL JIT.&quot;
</del><span class="cx">     puts &quot;--memory-limited            Indicate that we are targeting the test for a memory limited device.&quot;
</span><span class="cx">     puts &quot;                            Skip tests tagged with //@large-heap&quot;
</span><span class="cx">     puts &quot;--no-jit                    Do not run JIT specific tests.&quot;
</span><span class="lines">@@ -158,7 +156,6 @@
</span><span class="cx"> GetoptLong.new(['--help', '-h', GetoptLong::NO_ARGUMENT],
</span><span class="cx">                ['--jsc', '-j', GetoptLong::REQUIRED_ARGUMENT],
</span><span class="cx">                ['--no-copy', GetoptLong::NO_ARGUMENT],
</span><del>-               ['--ftl-jit', GetoptLong::NO_ARGUMENT],
</del><span class="cx">                ['--memory-limited', GetoptLong::NO_ARGUMENT],
</span><span class="cx">                ['--no-jit', GetoptLong::NO_ARGUMENT],
</span><span class="cx">                ['--output-dir', '-o', GetoptLong::REQUIRED_ARGUMENT],
</span><span class="lines">@@ -188,8 +185,6 @@
</span><span class="cx">         $doNotMessWithVMPath = true
</span><span class="cx">     when '--output-dir'
</span><span class="cx">         $outputDir = Pathname.new(arg)
</span><del>-    when '--ftl-jit'
-        $enableFTL = true
</del><span class="cx">     when '--memory-limited'
</span><span class="cx">         $memoryLimited = true
</span><span class="cx">     when '--no-jit'
</span><span class="lines">@@ -276,11 +271,6 @@
</span><span class="cx">     puts &quot;Using the following jsc path: #{jscArg}&quot;
</span><span class="cx"> end
</span><span class="cx"> 
</span><del>-if $enableFTL and !$jitTests
-    $stderr.puts &quot;Error: can only specify one of --no-jit and --ftl-jit&quot;
-    exit 1
-end
-
</del><span class="cx"> if $doNotMessWithVMPath
</span><span class="cx">     $jscPath = Pathname.new(jscArg)
</span><span class="cx"> else
</span><span class="lines">@@ -813,27 +803,27 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runDefaultFTL
</span><del>-    run(&quot;default-ftl&quot;, *FTL_OPTIONS) if $enableFTL
</del><ins>+    run(&quot;default-ftl&quot;, *FTL_OPTIONS)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJIT
</span><del>-    run(&quot;ftl-no-cjit&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJITValidate
</span><del>-    run(&quot;ftl-no-cjit-validate-sampling-profiler&quot;, &quot;--validateGraph=true&quot;, &quot;--useSamplingProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit-validate-sampling-profiler&quot;, &quot;--validateGraph=true&quot;, &quot;--useSamplingProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJITNoPutStackValidate
</span><del>-    run(&quot;ftl-no-cjit-no-put-stack-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--usePutStackSinking=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit-no-put-stack-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--usePutStackSinking=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJITNoInlineValidate
</span><del>-    run(&quot;ftl-no-cjit-no-inline-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--maximumInliningDepth=1&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit-no-inline-validate&quot;, &quot;--validateGraph=true&quot;, &quot;--maximumInliningDepth=1&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJITOSRValidation
</span><del>-    run(&quot;ftl-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runDFGEager
</span><span class="lines">@@ -845,15 +835,15 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLEager
</span><del>-    run(&quot;ftl-eager&quot;, *(FTL_OPTIONS + EAGER_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-eager&quot;, *(FTL_OPTIONS + EAGER_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLEagerNoCJITValidate
</span><del>-    run(&quot;ftl-eager-no-cjit&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-eager-no-cjit&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLEagerNoCJITOSRValidation
</span><del>-    run(&quot;ftl-eager-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-eager-no-cjit-osr-validation&quot;, &quot;--validateFTLOSRExitLiveness=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runAlwaysTriggerCopyPhase
</span><span class="lines">@@ -869,11 +859,11 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJITNoAccessInlining
</span><del>-    run(&quot;ftl-no-cjit-no-access-inlining&quot;, &quot;--useAccessInlining=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit-no-access-inlining&quot;, &quot;--useAccessInlining=false&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runFTLNoCJITSmallPool
</span><del>-    run(&quot;ftl-no-cjit-small-pool&quot;, &quot;--jitMemoryReservationSize=50000&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    run(&quot;ftl-no-cjit-small-pool&quot;, &quot;--jitMemoryReservationSize=50000&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runMiscNoCJITTest(*options)
</span><span class="lines">@@ -938,7 +928,7 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def defaultQuickRun
</span><del>-    if $enableFTL and $jitTests
</del><ins>+    if $jitTests
</ins><span class="cx">         runDefaultFTL
</span><span class="cx">         runFTLNoCJITValidate
</span><span class="cx">     else
</span><span class="lines">@@ -1024,13 +1014,8 @@
</span><span class="cx">         return
</span><span class="cx">     end
</span><span class="cx"> 
</span><del>-    if $enableFTL
-        run(&quot;ftl-no-cjit-type-profiler&quot;, &quot;--useTypeProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
-        run(&quot;ftl-type-profiler&quot;, &quot;--useTypeProfiler=true&quot;, *(FTL_OPTIONS))
-    else
-        run(&quot;no-cjit-type-profiler&quot;, &quot;--useTypeProfiler=true&quot;, *NO_CJIT_OPTIONS)
-        run(&quot;type-profiler&quot;, &quot;--useTypeProfiler=true&quot;)
-    end
</del><ins>+    run(&quot;ftl-no-cjit-type-profiler&quot;, &quot;--useTypeProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+    run(&quot;ftl-type-profiler&quot;, &quot;--useTypeProfiler=true&quot;, *(FTL_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runControlFlowProfiler
</span><span class="lines">@@ -1038,11 +1023,7 @@
</span><span class="cx">         return
</span><span class="cx">     end
</span><span class="cx"> 
</span><del>-    if $enableFTL
-        run(&quot;ftl-no-cjit-type-profiler&quot;, &quot;--useControlFlowProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
-    else
-        run(&quot;no-cjit-type-profiler&quot;, &quot;--useControlFlowProfiler=true&quot;, *NO_CJIT_OPTIONS)
-    end
</del><ins>+    run(&quot;ftl-no-cjit-type-profiler&quot;, &quot;--useControlFlowProfiler=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runTest262(mode, exception, includeFiles, flags)
</span><span class="lines">@@ -1128,14 +1109,12 @@
</span><span class="cx">     run(&quot;no-cjit-validate-phases-modules&quot;, &quot;-m&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *NO_CJIT_OPTIONS)
</span><span class="cx">     run(&quot;dfg-eager-modules&quot;, &quot;-m&quot;, *EAGER_OPTIONS)
</span><span class="cx">     run(&quot;dfg-eager-no-cjit-validate-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, *(NO_CJIT_OPTIONS + EAGER_OPTIONS))
</span><del>-    if $enableFTL
-        run(&quot;default-ftl-modules&quot;, &quot;-m&quot;, *FTL_OPTIONS)
-        run(&quot;ftl-no-cjit-validate-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
-        run(&quot;ftl-no-cjit-no-inline-validate-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, &quot;--maximumInliningDepth=1&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
-        run(&quot;ftl-eager-modules&quot;, &quot;-m&quot;, *(FTL_OPTIONS + EAGER_OPTIONS))
-        run(&quot;ftl-eager-no-cjit-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
-        run(&quot;ftl-no-cjit-small-pool-modules&quot;, &quot;-m&quot;, &quot;--jitMemoryReservationSize=50000&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
-    end
</del><ins>+    run(&quot;default-ftl-modules&quot;, &quot;-m&quot;, *FTL_OPTIONS)
+    run(&quot;ftl-no-cjit-validate-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+    run(&quot;ftl-no-cjit-no-inline-validate-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, &quot;--maximumInliningDepth=1&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
+    run(&quot;ftl-eager-modules&quot;, &quot;-m&quot;, *(FTL_OPTIONS + EAGER_OPTIONS))
+    run(&quot;ftl-eager-no-cjit-modules&quot;, &quot;-m&quot;, &quot;--validateGraph=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
+    run(&quot;ftl-no-cjit-small-pool-modules&quot;, &quot;-m&quot;, &quot;--jitMemoryReservationSize=50000&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runLayoutTest(kind, *options)
</span><span class="lines">@@ -1174,15 +1153,15 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runLayoutTestDefaultFTL
</span><del>-    runLayoutTest(&quot;ftl&quot;, &quot;--testTheFTL=true&quot;, *FTL_OPTIONS) if $enableFTL
</del><ins>+    runLayoutTest(&quot;ftl&quot;, &quot;--testTheFTL=true&quot;, *FTL_OPTIONS)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runLayoutTestFTLNoCJIT
</span><del>-    runLayoutTest(&quot;ftl-no-cjit&quot;, &quot;--testTheFTL=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL
</del><ins>+    runLayoutTest(&quot;ftl-no-cjit&quot;, &quot;--testTheFTL=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runLayoutTestFTLEagerNoCJIT
</span><del>-    runLayoutTest(&quot;ftl-eager-no-cjit&quot;, &quot;--testTheFTL=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL
</del><ins>+    runLayoutTest(&quot;ftl-eager-no-cjit&quot;, &quot;--testTheFTL=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def noFTLRunLayoutTest
</span><span class="lines">@@ -1293,7 +1272,7 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runMozillaTestDefaultFTL(mode, *extraFiles)
</span><del>-    runMozillaTest(&quot;ftl&quot;, mode, extraFiles, *FTL_OPTIONS) if $enableFTL
</del><ins>+    runMozillaTest(&quot;ftl&quot;, mode, extraFiles, *FTL_OPTIONS)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runMozillaTestLLInt(mode, *extraFiles)
</span><span class="lines">@@ -1309,11 +1288,11 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runMozillaTestFTLEagerNoCJITValidatePhases(mode, *extraFiles)
</span><del>-    runMozillaTest(&quot;ftl-eager-no-cjit-validate-phases&quot;, mode, extraFiles, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL
</del><ins>+    runMozillaTest(&quot;ftl-eager-no-cjit-validate-phases&quot;, mode, extraFiles, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def defaultQuickRunMozillaTest(mode, *extraFiles)
</span><del>-    if $enableFTL and $jitTests
</del><ins>+    if $jitTests
</ins><span class="cx">         runMozillaTestDefaultFTL(mode, *extraFiles)
</span><span class="cx">         runMozillaTestFTLEagerNoCJITValidatePhases(mode, *extraFiles)
</span><span class="cx">     else
</span><span class="lines">@@ -1348,15 +1327,15 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runNoisyTestDefaultFTL
</span><del>-    runNoisyTest(&quot;ftl&quot;, *FTL_OPTIONS) if $enableFTL
</del><ins>+    runNoisyTest(&quot;ftl&quot;, *FTL_OPTIONS)
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runNoisyTestNoCJIT
</span><del>-    runNoisyTest($enableFTL ? &quot;ftl-no-cjit&quot; : &quot;no-cjit&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *(($enableFTL ? FTL_OPTIONS : []) + NO_CJIT_OPTIONS))
</del><ins>+    runNoisyTest(&quot;ftl-no-cjit&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def runNoisyTestEagerNoCJIT
</span><del>-    runNoisyTest($enableFTL ? &quot;ftl-eager-no-cjit&quot; : &quot;eager-no-cjit&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *(($enableFTL ? FTL_OPTIONS : []) + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</del><ins>+    runNoisyTest(&quot;ftl-eager-no-cjit&quot;, &quot;--validateBytecode=true&quot;, &quot;--validateGraphAtEachPhase=true&quot;, *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS))
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> def defaultRunNoisyTest
</span><span class="lines">@@ -2040,13 +2019,6 @@
</span><span class="cx">     end
</span><span class="cx"> end
</span><span class="cx"> 
</span><del>-if $enableFTL and ENV[&quot;JSCTEST_timeout&quot;] or !ifJSCArgIsntProvidedAreWeReleaseBuild
-    # Currently, using the FTL is a performance regression particularly in real
-    # (i.e. non-loopy) benchmarks. Account for this in the timeout.
-    # Increase the timeout for debug builds too. (--debug command line option)
-    ENV[&quot;JSCTEST_timeout&quot;] = (ENV[&quot;JSCTEST_timeout&quot;].to_i * 2).to_s
-end
-
</del><span class="cx"> if ENV[&quot;JSCTEST_timeout&quot;]
</span><span class="cx">     # In the worst case, the processors just interfere with each other.
</span><span class="cx">     # Increase the timeout proportionally to the number of processors.
</span></span></pre>
</div>
</div>

</body>
</html>