[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
> What do you think?
More information about the llvm-dev