aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/InlineFunction.cpp
diff options
context:
space:
mode:
authorFelipe de Azevedo Piovezan <fpiovezan@apple.com>2023-06-03 07:23:16 -0400
committerFelipe de Azevedo Piovezan <fpiovezan@apple.com>2023-06-08 14:20:54 -0400
commitc1059dcb1c88405bff4d3ceaa58af22c2f8c536e (patch)
tree5f2b15d13dfe46f9a65b9fa37c722a1eff593695 /llvm/lib/Transforms/Utils/InlineFunction.cpp
parent715726429ec4fc4f0f5f0f2e3dc6c3c31ce8f3a6 (diff)
downloadllvm-c1059dcb1c88405bff4d3ceaa58af22c2f8c536e.zip
llvm-c1059dcb1c88405bff4d3ceaa58af22c2f8c536e.tar.gz
llvm-c1059dcb1c88405bff4d3ceaa58af22c2f8c536e.tar.bz2
[AppleAccelTable] Keep track of the size of each hash data entry
In a future patch, it will be desirable to skip over all hash data entries for a particular string. In order to do so, we must know how many bytes each of those entries have. In its full specification, Apple tables allow for variable length entries, which would make the above impossible without reading the data of each entry. However, this is largely unsupported today (as a FIXME in the code indicates, there is a bug with hash collisions exactly because we don't know how to skip over data), and the documentation[1] states that: > For the current implementations of the “.apple_names” (all functions + > globals), the “.apple_types” (names of all types that are defined), and the > “.apple_namespaces” (all namespaces), we currently set the Atom array to be: > [...] > This defines the contents to be the DIE offset (eAtomTypeDIEOffset) that is > encoded as a 32 bit value (DW_FORM_data4). In other words, we only produce fixed sized entries. A few tests containing invalid dwarf had to be updated, as the error is now detected earlier (when the accelerator table is being parsed, instead of inside the explicit call to "verify"). [1]: https://llvm.org/docs/SourceLevelDebugging.html#fixed-lookup Depends on D152156 Differential Revision: https://reviews.llvm.org/D152157
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
0 files changed, 0 insertions, 0 deletions