[llvm-dev] [lldb-dev] Adding DWARF5 accelerator table support to llvm

Jonas Devlieghere via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 30 07:52:43 PST 2018



> On Jan 30, 2018, at 3:35 PM, Pavel Labath <labath at google.com> wrote:
> 
> Hello all,
> 
> I am looking for feedback regarding implementation of the case folding
> algorithm for .debug_names hashes.
> 
> Unlike the apple tables, the .debug_names hashes are computed from
> case-folded names (to enable case-insensitive lookups for languages
> where that makes sense). The dwarf5 document specifies that the case
> folding should be done according the the "Caseless matching" Section
> of the Unicode standard (whose implementation is basically a long list
> of special cases). While certainly possible, implementing this would
> be much more complicated (and would probably make the code a bit
> slower) than a simple tolower(3) call.

Most of the characters in the CaseFolding.txt file seem to be contiguous, so I think we should be able to come up with am implementation that’s relatively efficient. 

> And the benefits of this are not really clear to me.

Adhering to the standard is a pretty big benefit IMHO, but I know what you mean. :-) 

> Do you know if we already make any promises or assumptions about the
> encoding and/or locale of the symbol names (and here I mainly mean the
> names in the debug info metadata, not llvm symbols).
> 
> If we don't already have a policy about this, then I propose to
> implement the case folding via tolower() (which is compatible with the
> full case folding algorithm, as long as one sticks to basic latin
> characters).
> 
> What do you think?



More information about the llvm-dev mailing list