Use list waymarking bits

The documentation for the Use list waymarking bits says that we use the 2 lsbs of the Prev pointer in Use objects and the lsb of the User object for the special bits. PointerLikeTypeTraits for both of these types indicates they have 3 low bits available on 64-bit targets. We use PointerIntPair which tries to use the highest low bits to store the integer. So we’re really using bits 2:1 of Use and bit 2 of User.

Should we fix the documentation or override the type traits on these to match the documentation.

I’m particularly curious about the “portable trick” mentioned here