Bug 180778 - ICs should be able to adapt the priority of structures over time.
Summary: ICs should be able to adapt the priority of structures over time.
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2017-12-13 16:02 PST by Keith Miller
Modified: 2017-12-13 16:04 PST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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>