llvm with tablegen backend for capstone disassembler
Go to file
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
.github/workflows workflows/release-tasks: Upload lit releases to pypi 2023-05-31 09:25:19 -07:00
bolt [BOLT][RISCV] Fix implementation of getTargetSymbol 2023-06-21 10:21:00 +02:00
clang [Clang][Interp] Diagnose uninitialized ctor of global record arrays 2023-06-21 19:03:01 +09:00
clang-tools-extra [clangd] Use resolveTypeToRecordDecl() to resolve the type of a base specifier during heuristic resolution 2023-06-20 13:40:26 -04:00
cmake [CMake] Ensure CLANG_RESOURCE_DIR is respected. 2023-06-03 04:21:35 -07:00
compiler-rt [XRay] Make xray_fn_idx entries PC-relative 2023-06-20 22:40:56 -07:00
cross-project-tests [Dexter] XFAIL Dexter tests for Apple Silicon (arm64) 2023-05-26 15:43:20 -07:00
flang [flang][hlfir] Add hlfir.count intrinsic 2023-06-19 09:09:26 +00:00
libc [libc] Support for riscv32 2023-06-21 07:11:22 +00:00
libclc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
libcxx [libc++][format] Adds formattable-with concept. 2023-06-21 08:05:33 +02:00
libcxxabi [libc++][NFC] Consistently qualify malloc and free calls with std:: 2023-06-16 09:40:31 -04:00
libunwind [libunwind] Removes CMake work-arounds. 2023-06-05 17:42:37 +02:00
lld [lld-macho][test] Make reloc-subtractor.s robust 2023-06-20 20:50:06 -07:00
lldb [lldb] Correct spelling in RegisterFlags comments 2023-06-21 09:34:22 +00:00
llvm [AppleTables] Implement iterator over all entries in table 2023-06-21 06:44:56 -04:00
llvm-libgcc Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
mlir [mlir][CRunnerUtils] Use explicit execution engine symbol registration. 2023-06-21 09:44:10 +00:00
openmp [OpenMP] Disable some tests for AArch64 2023-06-20 19:00:07 +00:00
polly [SCEV] Compute AddRec range computations using different type BECount 2023-05-31 21:05:17 -07:00
pstl Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
runtimes Reland "[CMake] Bumps minimum version to 3.20.0. 2023-05-27 12:51:21 +02:00
third-party Revert "Prevent deadlocks in death tests." 2023-06-20 07:39:31 +00:00
utils [Bazel][mlir] Fix ODR violation introduced in 7ab749c. 2023-06-21 11:15:09 +02:00
.arcconfig
.arclint
.clang-format
.clang-tidy Add -misc-use-anonymous-namespace to .clang-tidy 2023-05-06 02:33:20 +03:00
.git-blame-ignore-revs [NFC] Add libc++ formatting commit to the git-blame ignore file 2023-06-19 11:21:15 -04:00
.gitignore
.mailmap Add entry to mailmap 2023-04-25 23:15:07 -07:00
CONTRIBUTING.md
LICENSE.TXT
README.md
SECURITY.md

The LLVM Compiler Infrastructure

Welcome to the LLVM project!

This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.

The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.

C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

Consult the Getting Started with LLVM page for information on building and running LLVM.

For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.

Getting in touch

Join the LLVM Discourse forums, Discord chat, or #llvm IRC channel on OFTC.

The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.