RESOLVED FIXED 200362
[JSC] OSR entry to Wasm OMG
https://bugs.webkit.org/show_bug.cgi?id=200362
Summary [JSC] OSR entry to Wasm OMG
Yusuke Suzuki
Reported 2019-08-01 14:41:45 PDT
gcc-loops-wasm shows that we should do OSR entry to execute hot code in OMG.
Attachments
Patch (8.94 KB, patch)
2019-08-02 20:24 PDT, Yusuke Suzuki
no flags
Patch (81.21 KB, patch)
2019-08-05 22:21 PDT, Yusuke Suzuki
no flags
Patch (84.35 KB, patch)
2019-08-05 23:28 PDT, Yusuke Suzuki
no flags
Archive of layout-test-results from ews114 for mac-highsierra (3.25 MB, application/zip)
2019-08-06 01:01 PDT, EWS Watchlist
no flags
Patch (84.47 KB, patch)
2019-08-06 11:50 PDT, Yusuke Suzuki
no flags
Patch (86.82 KB, patch)
2019-08-06 15:23 PDT, Yusuke Suzuki
no flags
Patch (95.72 KB, patch)
2019-08-07 11:15 PDT, Yusuke Suzuki
no flags
Patch (99.47 KB, patch)
2019-08-07 11:20 PDT, Yusuke Suzuki
no flags
Patch (109.25 KB, patch)
2019-08-07 20:27 PDT, Yusuke Suzuki
no flags
Patch (112.67 KB, patch)
2019-08-08 01:20 PDT, Yusuke Suzuki
no flags
Patch (111.73 KB, patch)
2019-08-08 23:41 PDT, Yusuke Suzuki
no flags
Patch (122.31 KB, patch)
2019-08-12 18:55 PDT, Yusuke Suzuki
no flags
Patch (126.21 KB, patch)
2019-08-12 19:53 PDT, Yusuke Suzuki
no flags
Patch (150.92 KB, patch)
2019-08-12 23:22 PDT, Yusuke Suzuki
no flags
Patch (152.42 KB, patch)
2019-08-13 01:22 PDT, Yusuke Suzuki
no flags
Patch (161.83 KB, patch)
2019-08-13 18:37 PDT, Yusuke Suzuki
no flags
Patch (176.50 KB, patch)
2019-08-13 23:56 PDT, Yusuke Suzuki
no flags
Patch (176.39 KB, patch)
2019-08-14 02:52 PDT, Yusuke Suzuki
no flags
Patch (178.06 KB, patch)
2019-08-15 00:38 PDT, Yusuke Suzuki
no flags
Patch (180.86 KB, patch)
2019-08-15 14:48 PDT, Yusuke Suzuki
no flags
Patch (181.25 KB, patch)
2019-08-15 15:03 PDT, Yusuke Suzuki
no flags
Patch (181.51 KB, patch)
2019-08-15 23:49 PDT, Yusuke Suzuki
no flags
Patch (185.01 KB, patch)
2019-08-16 14:00 PDT, Yusuke Suzuki
no flags
Patch (184.96 KB, patch)
2019-08-16 14:09 PDT, Yusuke Suzuki
no flags
Patch (187.25 KB, patch)
2019-08-18 04:07 PDT, Yusuke Suzuki
no flags
Patch (187.35 KB, patch)
2019-08-18 04:12 PDT, Yusuke Suzuki
no flags
Patch (187.44 KB, patch)
2019-08-19 01:16 PDT, Yusuke Suzuki
msaboff: review+
Yusuke Suzuki
Comment 1 2019-08-02 15:06:15 PDT
By using bug 200329's patch, we get the following output. This indicates that gcc-loops-wasm stays on BBQ tier because the hottest function includes the loop inside it and we cannot tier up to OMG! Starting JetStream2 Running gcc-loops-wasm: Startup: 227.273 Run time: 0.588 Score: 11.561 Startup: 227.273 Runtime: 0.588 Total Score: 11.561 Sampling rate: 1000.000000 microseconds Top functions as <numSamples 'functionName:sourceID'> 2603 '<?>.wasm-function[38]:-1' 1494 '<?>.wasm-function[39]:-1' 1004 '<?>.wasm-function[36]:-1' 965 '<?>.wasm-function[35]:-1' 325 '<?>.wasm-function[34]:-1' 202 '<?>.wasm-function[546]:-1' 16 '<?>.wasm-function[40]:-1' 3 'loadString:-1' 3 '<?>.wasm-function[37]:-1' 2 'load:-1' 1 'prepareToRun:2' 1 '(unknown):-1' Sampling rate: 1000.000000 microseconds Hottest bytecodes as <numSamples 'functionName#hash:JITType:bytecodeIndex'> 2603 '<?>.wasm-function[38]#<nil>:BBQ:<nil>' 1494 '<?>.wasm-function[39]#<nil>:BBQ:<nil>' 1004 '<?>.wasm-function[36]#<nil>:BBQ:<nil>' 965 '<?>.wasm-function[35]#<nil>:BBQ:<nil>' 324 '<?>.wasm-function[34]#<nil>:OMG:<nil>' 202 '<?>.wasm-function[546]#<nil>:OMG:<nil>' 16 '<?>.wasm-function[40]#<nil>:BBQ:<nil>' 3 'loadString#<nil>:None:<nil>' 3 '<?>.wasm-function[37]#<nil>:BBQ:<nil>' 2 'load#<nil>:None:<nil>' 1 'createStandardStreams#Asr3FY:LLInt:387' 1 'filter#CXE8tr:Baseline:81' 1 'newPromiseCapability#DzQl2X:Baseline:91' 1 'prepareToRun#DqWFYU:LLInt:129' 1 'callRuntimeCallbacks#EYZrDM:LLInt:200' 1 'updateGlobalBufferViews#AqvIC2:LLInt:85' 1 '(unknown)#<nil>:None:<nil>' 1 '#<nil>:None:<nil>' 1 '<?>.wasm-function[34]#<nil>:BBQ:<nil>' 1 'doRun#C0pLVZ:LLInt:20191' 1 '#A7TOIG:LLInt:22' 1 'instantiateArrayBuffer#ALPYQ8:LLInt:22' 1 'fulfillPromise#AuvX5q:Baseline:95'
Yusuke Suzuki
Comment 2 2019-08-02 20:24:15 PDT
Yusuke Suzuki
Comment 3 2019-08-05 22:21:22 PDT
EWS Watchlist
Comment 4 2019-08-05 22:23:44 PDT
Attachment 375601 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmInstance.h:154: The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:247: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:249: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] Total errors found: 3 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 5 2019-08-05 23:28:49 PDT
EWS Watchlist
Comment 6 2019-08-05 23:30:00 PDT
Attachment 375604 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:1728: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/wasm/WasmInstance.h:154: The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:247: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:249: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] Total errors found: 4 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 7 2019-08-06 01:01:39 PDT
Comment on attachment 375604 [details] Patch Attachment 375604 [details] did not pass mac-debug-ews (mac): Output: https://webkit-queues.webkit.org/results/12867878 New failing tests: workers/wasm-hashset.html
EWS Watchlist
Comment 8 2019-08-06 01:01:40 PDT
Created attachment 375613 [details] Archive of layout-test-results from ews114 for mac-highsierra The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-highsierra Platform: Mac OS X 10.13.6
Yusuke Suzuki
Comment 9 2019-08-06 11:50:00 PDT
EWS Watchlist
Comment 10 2019-08-06 11:51:45 PDT
Attachment 375636 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:1728: One line control clauses should not use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/wasm/WasmInstance.h:154: The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:248: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:250: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] Total errors found: 4 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 11 2019-08-06 13:55:23 PDT
Comment on attachment 375636 [details] Patch Attachment 375636 [details] did not pass jsc-ews (mac): Output: https://webkit-queues.webkit.org/results/12870069 New failing tests: mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-ftl-eager-no-cjit-validate-phases
Yusuke Suzuki
Comment 12 2019-08-06 15:23:21 PDT
Yusuke Suzuki
Comment 13 2019-08-07 11:15:35 PDT
Yusuke Suzuki
Comment 14 2019-08-07 11:20:57 PDT
EWS Watchlist
Comment 15 2019-08-07 11:23:48 PDT
Attachment 375719 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:248: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:250: Extra space before last semicolon. If this should be an empty statement, use { } instead. [whitespace/semicolon] [5] ERROR: Source/JavaScriptCore/wasm/WasmInstance.h:154: The parameter name "size" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:1722: One line control clauses should not use braces. [whitespace/braces] [4] Total errors found: 4 in 24 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 16 2019-08-07 11:35:35 PDT
EWS Watchlist
Comment 17 2019-08-07 14:38:41 PDT
Comment on attachment 375719 [details] Patch Attachment 375719 [details] did not pass jsc-ews (mac): Output: https://webkit-queues.webkit.org/results/12875060 New failing tests: mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-no-ftl
Yusuke Suzuki
Comment 18 2019-08-07 20:27:32 PDT
EWS Watchlist
Comment 19 2019-08-07 22:34:36 PDT
Comment on attachment 375784 [details] Patch Attachment 375784 [details] did not pass jsc-ews (mac): Output: https://webkit-queues.webkit.org/results/12877458 New failing tests: mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-llint
Yusuke Suzuki
Comment 20 2019-08-08 01:20:25 PDT
EWS Watchlist
Comment 21 2019-08-08 03:24:07 PDT
Comment on attachment 375788 [details] Patch Attachment 375788 [details] did not pass jsc-ews (mac): Output: https://webkit-queues.webkit.org/results/12878263 New failing tests: mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-llint
Yusuke Suzuki
Comment 22 2019-08-08 23:41:56 PDT
Yusuke Suzuki
Comment 23 2019-08-09 03:31:27 PDT
Now, gcc-loops-wasm's Runtime score gets 4x higher. I'll fix the thing bloating OSR entry code in Air, and finalize this patch :)
Yusuke Suzuki
Comment 24 2019-08-12 18:55:20 PDT
Yusuke Suzuki
Comment 25 2019-08-12 19:53:41 PDT
Yusuke Suzuki
Comment 26 2019-08-12 23:22:06 PDT
Yusuke Suzuki
Comment 27 2019-08-13 01:22:57 PDT
Yusuke Suzuki
Comment 28 2019-08-13 18:37:27 PDT
Yusuke Suzuki
Comment 29 2019-08-13 23:56:07 PDT
EWS Watchlist
Comment 30 2019-08-14 00:00:00 PDT
Attachment 376240 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 49 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 31 2019-08-14 02:07:23 PDT
Comment on attachment 376240 [details] Patch Attachment 376240 [details] did not pass jsc-ews (mac): Output: https://webkit-queues.webkit.org/results/12909069 New failing tests: wasm.yaml/wasm/stress/osr-entry-basic.js.wasm-no-air wasm.yaml/wasm/stress/osr-entry-many-locals-f32.js.wasm-no-air wasm.yaml/wasm/stress/osr-entry-many-stacks-f32.js.wasm-no-air
Yusuke Suzuki
Comment 32 2019-08-14 02:52:58 PDT
EWS Watchlist
Comment 33 2019-08-14 02:56:19 PDT
Attachment 376255 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 49 files If any of these errors are false positives, please file a bug against check-webkit-style.
EWS Watchlist
Comment 34 2019-08-14 05:03:58 PDT
Comment on attachment 376255 [details] Patch Attachment 376255 [details] did not pass jsc-ews (mac): Output: https://webkit-queues.webkit.org/results/12909856 New failing tests: wasm.yaml/wasm/stress/osr-entry-many-stacks-f32.js.wasm-no-air mozilla-tests.yaml/js1_5/Array/regress-101964.js.mozilla-no-ftl
Yusuke Suzuki
Comment 35 2019-08-15 00:38:20 PDT
EWS Watchlist
Comment 36 2019-08-15 00:39:42 PDT
Attachment 376366 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 47 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 37 2019-08-15 14:48:57 PDT
EWS Watchlist
Comment 38 2019-08-15 14:51:05 PDT
Attachment 376424 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 47 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 39 2019-08-15 15:03:07 PDT
EWS Watchlist
Comment 40 2019-08-15 15:06:27 PDT
Attachment 376426 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 1 in 47 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 41 2019-08-15 23:49:17 PDT
EWS Watchlist
Comment 42 2019-08-15 23:52:11 PDT
Attachment 376474 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:203: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 2 in 47 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 43 2019-08-16 14:00:05 PDT
Created attachment 376536 [details] Patch Add wasm-eager
EWS Watchlist
Comment 44 2019-08-16 14:02:31 PDT
Attachment 376536 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:203: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 2 in 49 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 45 2019-08-16 14:09:18 PDT
Created attachment 376537 [details] Patch Add wasm-eager
EWS Watchlist
Comment 46 2019-08-16 14:10:54 PDT
Attachment 376537 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:203: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 2 in 49 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 47 2019-08-18 04:07:06 PDT
Created attachment 376633 [details] Patch Rebaseline
EWS Watchlist
Comment 48 2019-08-18 04:08:43 PDT
Attachment 376633 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:203: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 2 in 48 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 49 2019-08-18 04:12:50 PDT
Created attachment 376634 [details] Patch Rebaseline
EWS Watchlist
Comment 50 2019-08-18 04:14:57 PDT
Attachment 376634 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:203: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 2 in 48 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 51 2019-08-19 00:31:09 PDT
Comment on attachment 376634 [details] Patch std::make_unique things are replaced to makeUnique later.
Yusuke Suzuki
Comment 52 2019-08-19 01:16:59 PDT
Created attachment 376675 [details] Patch Rebaseline, using makeUnique
EWS Watchlist
Comment 53 2019-08-19 01:22:11 PDT
Attachment 376675 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:203: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1064: More than one command on the same line [whitespace/newline] [4] Total errors found: 2 in 48 files If any of these errors are false positives, please file a bug against check-webkit-style.
Michael Saboff
Comment 54 2019-08-19 15:51:40 PDT
Comment on attachment 376675 [details] Patch r=me
Yusuke Suzuki
Comment 55 2019-08-19 17:21:35 PDT
Note You need to log in before you can comment on or make changes to this bug.