Changeset 203440 in webkit
- Timestamp:
- Jul 19, 2016, 6:45:25 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
-
Source/JavaScriptCore/ChangeLog (modified) (1 diff)
-
Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml (modified) (3 diffs)
-
Tools/ChangeLog (modified) (1 diff)
-
Tools/Scripts/run-javascriptcore-tests (modified) (5 diffs)
-
Tools/Scripts/run-jsc-stress-tests (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r203421 r203440 1 2016-07-19 Filip Pizlo <fpizlo@apple.com> 2 3 The default testing mode should not involve disabling the FTL JIT 4 https://bugs.webkit.org/show_bug.cgi?id=159929 5 6 Rubber stamped by Mark Lam and Saam Barati. 7 8 Use the new powers to make some tests run only in the default configuration (i.e. FTL, 9 concurrent JIT). 10 11 * tests/mozilla/mozilla-tests.yaml: 12 1 13 2016-07-19 Keith Miller <keith_miller@apple.com> 2 14 -
trunk/Source/JavaScriptCore/tests/mozilla/mozilla-tests.yaml
r197962 r203440 593 593 cmd: defaultRunMozillaTest :normal, "../shell.js" 594 594 - path: ecma/FunctionObjects/15.3.1.1-3.js 595 cmd: defaultRunMozillaTest:normal, "../shell.js"595 cmd: runMozillaTestDefaultFTL :normal, "../shell.js" 596 596 - path: ecma/FunctionObjects/15.3.2.1-1.js 597 597 cmd: defaultRunMozillaTest :normal, "../shell.js" … … 599 599 cmd: defaultRunMozillaTest :normal, "../shell.js" 600 600 - path: ecma/FunctionObjects/15.3.2.1-3.js 601 cmd: defaultRunMozillaTest:normal, "../shell.js"601 cmd: runMozillaTestDefaultFTL :normal, "../shell.js" 602 602 - path: ecma/FunctionObjects/15.3.3.1-1.js 603 603 cmd: defaultRunMozillaTest :normal, "../shell.js" … … 617 617 cmd: defaultRunMozillaTest :normal, "../shell.js" 618 618 - path: ecma/FunctionObjects/15.3.5-1.js 619 cmd: defaultRunMozillaTest:normal, "../shell.js"619 cmd: runMozillaTestDefaultFTL :normal, "../shell.js" 620 620 - path: ecma/FunctionObjects/15.3.5-2.js 621 621 cmd: defaultRunMozillaTest :normal, "../shell.js" -
trunk/Tools/ChangeLog
r203436 r203440 1 2016-07-19 Filip Pizlo <fpizlo@apple.com> 2 3 The default testing mode should not involve disabling the FTL JIT 4 https://bugs.webkit.org/show_bug.cgi?id=159929 5 6 Rubber stamped by Mark Lam and Saam Barati. 7 8 It used to be the case that most actively maintained ports did not have the FTL JIT enabled. 9 Heck, for most of the FTL's initial development, it wasn't enabled anywhere. So, testing the 10 FTL was not the default. You had to enable it with an option. 11 12 For some reason we have kept this arrangement even though the FTL JIT is now the default on 13 all of the major ports. This has become a serious pain. For example, it's useful to be able 14 to say that a test should only run in the default config that is representative of what a 15 normal user would see if they ran JSC. Clearly, this would be a config that does not 16 explicitly disable the FTL JIT on the command line. However, if you try to specify this then 17 your test won't run at all if the --ftl-jit option is not passed. That's dangerous! 18 19 So, this change gets rid of all of this logic. I think it's better to get rid of it then to 20 try to fix it, because: 21 22 - I don't know what the fix would look like. Presumably it would ensure that ports that don't 23 have the FTL enabled never run any tests that explicitly disable the FTL, since that 24 doesn't do anything. The code is not really structured to allow this. 25 26 - It benefits a minority of clients. Three build bots run tests in a config that has the FTL 27 disabled in testing. On the other hand there are already build bots that do FTL tests 28 despite having the FTL disabled by virtue of being a 32-bit platform. So, maybe rather than 29 preserving this broken feature, we should create something that (a) acknowledges the fact 30 that the FTL is the default on those platforms that support it and (b) avoids running 31 no-ftl tests on precisely those platforms that don't have FTL. 32 33 - To the extent that some bots benefited from disabling FTL tests, they were doing it by 34 relying on a feature that was never meant to stick around. The FTL JIT is meant to be the 35 default configuration. Disabling the FTL JIT is the non-default. So, we shouldn't be 36 pretending that the FTL JIT is not the default just because some bots used that as an 37 optimization. 38 39 This change allows me to speed up some debug tests and paint some bots green. 40 41 * Scripts/run-javascriptcore-tests: 42 (runJSCStressTests): 43 * Scripts/run-jsc-stress-tests: 44 1 45 2016-07-19 Alex Christensen <achristensen@webkit.org> 2 46 -
trunk/Tools/Scripts/run-javascriptcore-tests
r202689 r203440 66 66 my $gmallocDefaultPath = "/usr/lib/libgmalloc.dylib"; 67 67 68 my $enableFTL = isAppleMacWebKit() || isX86_64() && (isGtk() || isEfl());69 68 my $createTarball = 0; 70 69 my $remoteHost = 0; … … 149 148 'extra-tests=s' => \$extraTests, 150 149 'build!' => \$buildJSC, 151 'ftl-jit!' => \$enableFTL,152 150 'testapi!' => \$runTestAPI, 153 151 'jsc-stress!' => \$runJSCStress, … … 172 170 my @buildArgs = @ARGV; 173 171 174 # The --ftl-jit argument gets passed as a build argument.175 if ($enableFTL) {176 push(@buildArgs, '--ftl-jit');177 }178 179 172 if ($showHelp) { 180 173 print STDERR $usage; … … 211 204 my $productDir = jscProductDir(); 212 205 $ENV{DYLD_FRAMEWORK_PATH} = $productDir; 213 $ENV{JSCTEST_timeout} = 60 unless $ENV{JSCTEST_timeout}; # Set a 60 second timeout on all jsc tests (if environment variable not defined already).206 $ENV{JSCTEST_timeout} = 120 unless $ENV{JSCTEST_timeout}; # Set a 120 second timeout on all jsc tests (if environment variable not defined already). 214 207 $ENV{TZ}="US/Pacific"; # Some tests fail if the time zone is not set to US/Pacific (<https://webkit.org/b/136363>) 215 208 setPathForRunningWebKitApp(\%ENV) if isCygwin(); … … 317 310 if (!$runJITStressTests) { 318 311 push(@jscStressDriverCmd, "--no-jit"); 319 } else {320 if ($enableFTL) {321 push(@jscStressDriverCmd, "--ftl-jit");322 }323 312 } 324 313 if ($createTarball) { -
trunk/Tools/Scripts/run-jsc-stress-tests
r203332 r203440 98 98 $jscPath = nil 99 99 $doNotMessWithVMPath = false 100 $enableFTL = false101 100 $jitTests = true 102 101 $memoryLimited = false … … 125 124 puts "--no-copy Do not copy the JavaScriptCore build product before testing." 126 125 puts " --jsc specifies an already present JavaScriptCore to test." 127 puts "--ftl-jit Indicate that we have the FTL JIT."128 126 puts "--memory-limited Indicate that we are targeting the test for a memory limited device." 129 127 puts " Skip tests tagged with //@large-heap" … … 159 157 ['--jsc', '-j', GetoptLong::REQUIRED_ARGUMENT], 160 158 ['--no-copy', GetoptLong::NO_ARGUMENT], 161 ['--ftl-jit', GetoptLong::NO_ARGUMENT],162 159 ['--memory-limited', GetoptLong::NO_ARGUMENT], 163 160 ['--no-jit', GetoptLong::NO_ARGUMENT], … … 189 186 when '--output-dir' 190 187 $outputDir = Pathname.new(arg) 191 when '--ftl-jit'192 $enableFTL = true193 188 when '--memory-limited' 194 189 $memoryLimited = true … … 277 272 end 278 273 279 if $enableFTL and !$jitTests280 $stderr.puts "Error: can only specify one of --no-jit and --ftl-jit"281 exit 1282 end283 284 274 if $doNotMessWithVMPath 285 275 $jscPath = Pathname.new(jscArg) … … 814 804 815 805 def runDefaultFTL 816 run("default-ftl", *FTL_OPTIONS) if $enableFTL806 run("default-ftl", *FTL_OPTIONS) 817 807 end 818 808 819 809 def runFTLNoCJIT 820 run("ftl-no-cjit", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL810 run("ftl-no-cjit", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 821 811 end 822 812 823 813 def runFTLNoCJITValidate 824 run("ftl-no-cjit-validate-sampling-profiler", "--validateGraph=true", "--useSamplingProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL814 run("ftl-no-cjit-validate-sampling-profiler", "--validateGraph=true", "--useSamplingProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 825 815 end 826 816 827 817 def runFTLNoCJITNoPutStackValidate 828 run("ftl-no-cjit-no-put-stack-validate", "--validateGraph=true", "--usePutStackSinking=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL818 run("ftl-no-cjit-no-put-stack-validate", "--validateGraph=true", "--usePutStackSinking=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 829 819 end 830 820 831 821 def runFTLNoCJITNoInlineValidate 832 run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL822 run("ftl-no-cjit-no-inline-validate", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 833 823 end 834 824 835 825 def runFTLNoCJITOSRValidation 836 run("ftl-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL826 run("ftl-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 837 827 end 838 828 … … 846 836 847 837 def runFTLEager 848 run("ftl-eager", *(FTL_OPTIONS + EAGER_OPTIONS)) if $enableFTL838 run("ftl-eager", *(FTL_OPTIONS + EAGER_OPTIONS)) 849 839 end 850 840 851 841 def runFTLEagerNoCJITValidate 852 run("ftl-eager-no-cjit", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL842 run("ftl-eager-no-cjit", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 853 843 end 854 844 855 845 def runFTLEagerNoCJITOSRValidation 856 run("ftl-eager-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL846 run("ftl-eager-no-cjit-osr-validation", "--validateFTLOSRExitLiveness=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 857 847 end 858 848 … … 870 860 871 861 def runFTLNoCJITNoAccessInlining 872 run("ftl-no-cjit-no-access-inlining", "--useAccessInlining=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL862 run("ftl-no-cjit-no-access-inlining", "--useAccessInlining=false", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 873 863 end 874 864 875 865 def runFTLNoCJITSmallPool 876 run("ftl-no-cjit-small-pool", "--jitMemoryReservationSize=50000", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL866 run("ftl-no-cjit-small-pool", "--jitMemoryReservationSize=50000", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 877 867 end 878 868 … … 939 929 940 930 def defaultQuickRun 941 if $ enableFTL and $jitTests931 if $jitTests 942 932 runDefaultFTL 943 933 runFTLNoCJITValidate … … 1025 1015 end 1026 1016 1027 if $enableFTL 1028 run("ftl-no-cjit-type-profiler", "--useTypeProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1029 run("ftl-type-profiler", "--useTypeProfiler=true", *(FTL_OPTIONS)) 1030 else 1031 run("no-cjit-type-profiler", "--useTypeProfiler=true", *NO_CJIT_OPTIONS) 1032 run("type-profiler", "--useTypeProfiler=true") 1033 end 1017 run("ftl-no-cjit-type-profiler", "--useTypeProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1018 run("ftl-type-profiler", "--useTypeProfiler=true", *(FTL_OPTIONS)) 1034 1019 end 1035 1020 … … 1039 1024 end 1040 1025 1041 if $enableFTL 1042 run("ftl-no-cjit-type-profiler", "--useControlFlowProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1043 else 1044 run("no-cjit-type-profiler", "--useControlFlowProfiler=true", *NO_CJIT_OPTIONS) 1045 end 1026 run("ftl-no-cjit-type-profiler", "--useControlFlowProfiler=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1046 1027 end 1047 1028 … … 1129 1110 run("dfg-eager-modules", "-m", *EAGER_OPTIONS) 1130 1111 run("dfg-eager-no-cjit-validate-modules", "-m", "--validateGraph=true", *(NO_CJIT_OPTIONS + EAGER_OPTIONS)) 1131 if $enableFTL 1132 run("default-ftl-modules", "-m", *FTL_OPTIONS) 1133 run("ftl-no-cjit-validate-modules", "-m", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1134 run("ftl-no-cjit-no-inline-validate-modules", "-m", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1135 run("ftl-eager-modules", "-m", *(FTL_OPTIONS + EAGER_OPTIONS)) 1136 run("ftl-eager-no-cjit-modules", "-m", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 1137 run("ftl-no-cjit-small-pool-modules", "-m", "--jitMemoryReservationSize=50000", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1138 end 1112 run("default-ftl-modules", "-m", *FTL_OPTIONS) 1113 run("ftl-no-cjit-validate-modules", "-m", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1114 run("ftl-no-cjit-no-inline-validate-modules", "-m", "--validateGraph=true", "--maximumInliningDepth=1", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1115 run("ftl-eager-modules", "-m", *(FTL_OPTIONS + EAGER_OPTIONS)) 1116 run("ftl-eager-no-cjit-modules", "-m", "--validateGraph=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 1117 run("ftl-no-cjit-small-pool-modules", "-m", "--jitMemoryReservationSize=50000", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1139 1118 end 1140 1119 … … 1175 1154 1176 1155 def runLayoutTestDefaultFTL 1177 runLayoutTest("ftl", "--testTheFTL=true", *FTL_OPTIONS) if $enableFTL1156 runLayoutTest("ftl", "--testTheFTL=true", *FTL_OPTIONS) 1178 1157 end 1179 1158 1180 1159 def runLayoutTestFTLNoCJIT 1181 runLayoutTest("ftl-no-cjit", "--testTheFTL=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) if $enableFTL1160 runLayoutTest("ftl-no-cjit", "--testTheFTL=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1182 1161 end 1183 1162 1184 1163 def runLayoutTestFTLEagerNoCJIT 1185 runLayoutTest("ftl-eager-no-cjit", "--testTheFTL=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL1164 runLayoutTest("ftl-eager-no-cjit", "--testTheFTL=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 1186 1165 end 1187 1166 … … 1294 1273 1295 1274 def runMozillaTestDefaultFTL(mode, *extraFiles) 1296 runMozillaTest("ftl", mode, extraFiles, *FTL_OPTIONS) if $enableFTL1275 runMozillaTest("ftl", mode, extraFiles, *FTL_OPTIONS) 1297 1276 end 1298 1277 … … 1310 1289 1311 1290 def runMozillaTestFTLEagerNoCJITValidatePhases(mode, *extraFiles) 1312 runMozillaTest("ftl-eager-no-cjit-validate-phases", mode, extraFiles, "--validateBytecode=true", "--validateGraphAtEachPhase=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) if $enableFTL1291 runMozillaTest("ftl-eager-no-cjit-validate-phases", mode, extraFiles, "--validateBytecode=true", "--validateGraphAtEachPhase=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 1313 1292 end 1314 1293 1315 1294 def defaultQuickRunMozillaTest(mode, *extraFiles) 1316 if $ enableFTL and $jitTests1295 if $jitTests 1317 1296 runMozillaTestDefaultFTL(mode, *extraFiles) 1318 1297 runMozillaTestFTLEagerNoCJITValidatePhases(mode, *extraFiles) … … 1349 1328 1350 1329 def runNoisyTestDefaultFTL 1351 runNoisyTest("ftl", *FTL_OPTIONS) if $enableFTL1330 runNoisyTest("ftl", *FTL_OPTIONS) 1352 1331 end 1353 1332 1354 1333 def runNoisyTestNoCJIT 1355 runNoisyTest( $enableFTL ? "ftl-no-cjit" : "no-cjit", "--validateBytecode=true", "--validateGraphAtEachPhase=true", *(($enableFTL ? FTL_OPTIONS : [])+ NO_CJIT_OPTIONS))1334 runNoisyTest("ftl-no-cjit", "--validateBytecode=true", "--validateGraphAtEachPhase=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS)) 1356 1335 end 1357 1336 1358 1337 def runNoisyTestEagerNoCJIT 1359 runNoisyTest( $enableFTL ? "ftl-eager-no-cjit" : "eager-no-cjit", "--validateBytecode=true", "--validateGraphAtEachPhase=true", *(($enableFTL ? FTL_OPTIONS : [])+ NO_CJIT_OPTIONS + EAGER_OPTIONS))1338 runNoisyTest("ftl-eager-no-cjit", "--validateBytecode=true", "--validateGraphAtEachPhase=true", *(FTL_OPTIONS + NO_CJIT_OPTIONS + EAGER_OPTIONS)) 1360 1339 end 1361 1340 … … 2041 2020 end 2042 2021 2043 if $enableFTL and ENV["JSCTEST_timeout"] or !ifJSCArgIsntProvidedAreWeReleaseBuild2044 # Currently, using the FTL is a performance regression particularly in real2045 # (i.e. non-loopy) benchmarks. Account for this in the timeout.2046 # Increase the timeout for debug builds too. (--debug command line option)2047 ENV["JSCTEST_timeout"] = (ENV["JSCTEST_timeout"].to_i * 2).to_s2048 end2049 2050 2022 if ENV["JSCTEST_timeout"] 2051 2023 # In the worst case, the processors just interfere with each other.
Note:
See TracChangeset
for help on using the changeset viewer.