Bug 238650

Summary: devirtualize Node::customPseudoId
Product: WebKit Reporter: Cameron McCormack (:heycam) <heycam>
Component: DOMAssignee: Cameron McCormack (:heycam) <heycam>
Status: RESOLVED WONTFIX    
Severity: Normal CC: cdumez, esprehn+autocc, ews-watchlist, kangil.han, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch ews-feeder: commit-queue-

Description Cameron McCormack (:heycam) 2022-03-31 20:26:18 PDT
Node::pseudoId calls customPseudoId, a virtual function, only if the node has a custom style resolver.  In Speedometer 2, many non-PseudoElement nodes (the <input> elements) do, and Node::customPseudoId ends up being the third top virtual function called.  PseudoElement is the only class that needs to provide a non-None result, so it's not too hard to devirtualize this.
Comment 1 Cameron McCormack (:heycam) 2022-03-31 20:29:27 PDT
Created attachment 456316 [details]
Patch
Comment 2 Radar WebKit Bug Importer 2022-03-31 23:28:37 PDT
<rdar://problem/91147437>
Comment 3 Cameron McCormack (:heycam) 2022-04-02 14:53:03 PDT
Subsequent testing showed this was not as much of a win as an earlier benchmark run showed.