hokein wrote:

> Sorry for being dumb... how are we getting away with only storing 40 bits? 
> Does that not just artificially limit our source-location size for 
> statements? And, frankly, then our entire space? I guess 8 2x-increases in 
> source-location size are nice, but I was sort of hoping the switch to 64 bits 
> meant we never had to discuss this again for the rest of my life:D

Yeah, kind of. We can actually use up to 48 bits for `SourceLocation`, based on 
how we encode it for modules-- see the PR description for details.

The entire space will be `2^(SourceLocation::Bits-1)`. In the current 
implementation, adjusting the number of bits used is straightforward — it just 
changes `SourceLocation::Bits`. So I figured we could start with a “small” 
number (40 bits in this case, so that most Stmt's `Loc` can stay inside the 
`StmtBits`) and see if that’s sufficient in practice. If we ever need more, 
increasing it is relatively easy.

https://github.com/llvm/llvm-project/pull/146314
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to