Bug 281997

Summary: Decompress the previous sibling and renderer pointers in WebCore::Node
Product: WebKit Reporter: David Degazio <d_degazio>
Component: DOMAssignee: 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
Reported 2024-10-23 11:47:25 PDT
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
David Degazio
Comment 1 2024-10-23 14:13:54 PDT
EWS
Comment 2 2024-11-19 16:10:42 PST
Committed 286827@main (113f84cbe254): <https://commits.webkit.org/286827@main> Reviewed commits have been landed. Closing PR #35646 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.