New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 638110 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

devirt-want: Node::getPseudoId

Project Member Reported by krasin@chromium.org, Aug 16 2016

Issue description

Node::getPseudoId has two overrides:

Node:
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/dom/Node.h?sq=package:chromium&dr=CSs&rcl=1471276009&l=258
virtual PseudoId getPseudoId() const { return PseudoIdNone; }

PseudoElement:
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/dom/PseudoElement.h?sq=package:chromium&dr=CSs&rcl=1471276009&l=46

PseudoId getPseudoId() const override { return m_pseudoId; }

This can be trivially devirtualized to something like (pseudo code):

(type == PseudoElement)? m_pseudoId : PseudoIdNone;

That will require a special optimization within WholeProgramDevirt pass in LLVM, and we should measure the list of types devirtualizable by this approach before actually implementing it.

 
Status: Assigned (was: Untriaged)

Sign in to add a comment