Bug 220204

Summary: [JSC] bluenoise script takes too long time
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: JavaScriptCoreAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: bfulgham, krollin, mark.lam, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 220254, 220219    
Bug Blocks:    

Description Yusuke Suzuki 2020-12-30 15:54:39 PST
This sounds like some optimization failure in DFG/FTL. We should fix.
https://twitter.com/DasSurma/status/1344325758089650178
Comment 1 Radar WebKit Bug Importer 2020-12-30 16:07:12 PST
<rdar://problem/72744961>
Comment 2 Yusuke Suzuki 2021-01-01 01:43:31 PST
OK, this is not something simple issue.

The main reason why this takes some time is that, valueAt and setValueAt are not inlined.
Their callers and callees are creating objects frequently (return value / parameter).
If they are inlined, FTL compiler knows that these objects are not escaped so we can completely eliminate object allocations for them. However, if they are not inlined, we need to allocate them since it is escaped inside this function. This is the reason why they are slow.
And why they are not inlined is because they are complex enough and taking enough amount of bytecodes which prevents inlining.
Comment 3 Yusuke Suzuki 2021-01-01 04:14:12 PST
https://bugs.webkit.org/show_bug.cgi?id=220219 does not fix this. But it slightly removes unnecessary bytecodes that can be seen commonly.
Comment 4 Yusuke Suzuki 2021-01-04 13:49:42 PST
Let's fix this with https://bugs.webkit.org/show_bug.cgi?id=220254
Comment 5 Brent Fulgham 2022-02-12 19:47:30 PST

*** This bug has been marked as a duplicate of bug 220254 ***