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.
Created attachment 456316 [details] Patch
<rdar://problem/91147437>
Subsequent testing showed this was not as much of a win as an earlier benchmark run showed.