Bug 200362

Summary: [JSC] OSR entry to Wasm OMG
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: JavaScriptCoreAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: cdumez, ews-watchlist, keith_miller, mark.lam, msaboff, rniwa, saam, Skinnermelony09, tzagallo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 200329, 200759    
Bug Blocks: 228595    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Archive of layout-test-results from ews114 for mac-highsierra
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch msaboff: review+

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.