llvm-capstone/llvm
Felipe de Azevedo Piovezan 15a1f7f6f7 [AppleTables] Implement iterator over all entries in table
This commit adds functionality to the Apple Accelerator table allowing iteration
over all elements in the table.

Our iterators look like streaming iterators: when we increment the iterator we
check if there is still enough data in the "stream" (in our case, the blob of
data of the accelerator table) and extract the next entry. If any failures
occur, we immediately set the iterator to be the end iterator.

Since the ultimate user of this functionality is LLDB, there are roughly two
iteration methods we want support: one that also loads the name of each entry,
and one which does not. Loading names is measurably slower (one order the
magnitude) than only loading DIEs, so we used some template metaprograming to
implement both iteration methods.

Depends on D153066

Differential Revision: https://reviews.llvm.org/D153066
2023-06-21 06:44:56 -04:00
..
benchmarks
bindings [OCaml] Rename link_modules' to link_modules 2023-06-16 09:18:26 -04:00
cmake Define/guard MLIR_STANDALONE_BUILD LLVM_LIBRARY_OUTPUT_INTDIR var. 2023-06-20 14:14:15 -07:00
docs ReleaseNotes: __builtin_unpredictable is now handled by X86 Backend 2023-06-21 10:25:33 +02:00
examples [ORC] Simplify construction of EPCIndirectionUtils. 2023-06-07 16:28:07 -07:00
include [AppleTables] Implement iterator over all entries in table 2023-06-21 06:44:56 -04:00
lib [AppleTables] Implement iterator over all entries in table 2023-06-21 06:44:56 -04:00
projects
resources
runtimes Revert "Reland [compiler-rt][CMake] Properly set COMPILER_RT_HAS_LLD" 2023-06-06 16:01:05 -07:00
test [AppleTables] Implement iterator over all entries in table 2023-06-21 06:44:56 -04:00
tools [AppleTables] Implement iterator over all entries in table 2023-06-21 06:44:56 -04:00
unittests Revert "[llvm-exegesis] Introduce SubprocessMemory Utility Class" 2023-06-21 08:43:52 +00:00
utils [gn build] Port ba85f206fe 2023-06-21 08:50:28 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt [LLVM] Removes CMake work-arounds. 2023-06-07 18:04:13 +02:00
CODE_OWNERS.TXT Update CODE_OWNERS.TXT 2023-06-09 12:35:02 -07:00
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
README.txt
RELEASE_TESTERS.TXT

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.