Bug 180778

Summary: ICs should be able to adapt the priority of structures over time.
Product: WebKit Reporter: Keith Miller <keith_miller>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Keith Miller 2017-12-13 16:02:23 PST
Currently, if our ICs see only a few (or even just one) structure 95% of the time but have cases for many different structures. We may end up creating a Binary switch that branches many times before selecting the common case. Instead we should have some heuristic to change the ordering/priority over time. 

Here are a couple of possible ideas to experiment with:

- Thread nukes the IC jump. This could be making the out of line jump target point to the slow path or some other method of forcing an out of line jump.
- Execution count trigger causes a read of the profiles. This could be on the main thread or on another thread.
- Use GC to try to find correlations in allocations/collections and access rates. 
- Take slow patch based on some per IC counter.
- Counter per access case.
Comment 1 Radar WebKit Bug Importer 2017-12-13 16:04:06 PST
<rdar://problem/36034880>