[PATCH] D60765: [ELF] Place SectionPiece::{Live,Hash} bit fields together
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 17 00:55:55 PDT 2019
MaskRay added a comment.
In D60765#1469806 <https://reviews.llvm.org/D60765#1469806>, @ruiu wrote:
> In D60765#1469717 <https://reviews.llvm.org/D60765#1469717>, @MaskRay wrote:
>
> > uint32_t Hash;
> > uint8_t Live : 1;
> > uint8_t TailShardId : 5;
> > uint8_t OutputOffHi;
> > uint32_t OutputOffLo;
> >
> >
> > Do you mean
> >
> > // 16 bytes -> 12 bytes
> > uint32_t InputOff;
> >
> > uint32_t Live : 1
> > uint32_t Hash : 18;
> > uint32_t TailShardId : 5;
> > uint32_t OutputOffHi : 8;
> >
> > uint32_t OutputOffLo;
> >
> >
> > Looks fine.
>
>
> Reducing the size to 12 bytes looks like a good idea, but I'm worried if 18 bits hash may be too short. This hash value will be used to determine a bucket in a hash table, so reducing the number of hash bits means that we'll likely to have more collisions.
It was my interpretation of your previous comment. I thought you wanted to do that (Now I think I don't understand what you were getting at):
> 40 bits for the output offset (should be large enough)
I am happy with the current 16-byte `SectionPiece`. Making `OutputOffHi` part of either `Hash` or `Live` can have data sharing caveats.
Repository:
rLLD LLVM Linker
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D60765/new/
https://reviews.llvm.org/D60765
More information about the llvm-commits
mailing list