Bug 281997
Summary: | Decompress the previous sibling and renderer pointers in WebCore::Node | ||
---|---|---|---|
Product: | WebKit | Reporter: | David Degazio <d_degazio> |
Component: | DOM | Assignee: | David Degazio <d_degazio> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | webkit-bug-importer |
Priority: | P2 | Keywords: | InRadar |
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=283397 |
David Degazio
rdar://138409833
Currently WebCore::Node is fairly aggressively packed, with three separate CompactPointerTuple fields for its previous sibling (paired with the element state flags), renderer (paired with its style bitfields), and rare data (paired with rare data bitfields). But, we currently have four spare padding bytes in WebCore::Node, meaning we have room to decompact at least two of these. Let's extract out the renderer and previous sibling fields into whole pointers and separate 16-bit payloads in order to make full use of the space and simplify accessing these fields in both C++ and the DOM JIT.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
David Degazio
Pull request: https://github.com/WebKit/WebKit/pull/35646
EWS
Committed 286827@main (113f84cbe254): <https://commits.webkit.org/286827@main>
Reviewed commits have been landed. Closing PR #35646 and removing active labels.