llvm with tablegen backend for capstone disassembler
Go to file
Johannes Doerfert f2c385934b [OpenMP] Remove shadow pointer map and introduce consistent locking
The shadow pointer map was problematic as we scanned an entire list if
an entry had shadow pointers. The new scheme stores the shadow pointers
inside the entries. This allows easy access without any search. It also
helps us, but also makes it necessary, to define a consistent locking
scheme. The implicit locking of entries via TargetPointerResultTy makes
this pretty effortless, however one has to:

- Lock HDTTMap before locking an entry.
- Do not lock HDTTMap while holding an entry lock.
- Hold the entry lock to read or modify an entry.

The changes to submitData and retrieveData have been made to ensure 2
when the LIBOMPTARGET_INFO flag is used. Most everything else happens by
itself as TargetPointerResultTy acts as a lock_guard for the entry. It
is a little complicated when we deal with multiple entries, especially
as they can be equal. However, one can still follow the rules with
reasonable effort.

LookupResult are now finally also locking the entry before it is
inspected. This is good even if we haven't run into a problem yet.

Differential Revision: https://reviews.llvm.org/D123446
2023-03-21 19:16:27 -07:00
.github workflows: Don't try and run llvm-bugs in forks 2023-03-16 16:47:07 +00:00
bolt [BOLT] Reject symbols pointing to section end 2023-03-21 13:59:39 +04:00
clang [CUDA] Update cached kernel handle when the function instance changes. 2023-03-21 15:36:12 -07:00
clang-tools-extra [clangd][NFC] Format & include cleanup for AddUsingTests.cpp 2023-03-21 07:53:08 +01:00
cmake Revert "[CMake] Unify llvm_check_linker_flag and llvm_check_compiler_linker_flag" 2023-03-12 13:27:23 +07:00
compiler-rt [NFC][tsan] Add __tsan_default_{options,suppressions} into interface header 2023-03-21 15:46:34 -07:00
cross-project-tests [Dexter] Add a simple logging class to Dexter 2023-03-15 19:25:37 +00:00
flang [flang] Set proper source location for the main function. 2023-03-21 12:32:42 -07:00
libc [libc] Don't install the GPU startup code for now 2023-03-21 21:01:27 -05:00
libclc Revert "Reland "[CMake] Bumps minimum version to 3.20.0."" 2023-03-18 20:32:43 +01:00
libcxx [libc++][spaceship] Implement operator<=> for duration 2023-03-21 20:06:42 +02:00
libcxxabi [libcxxabi] Fix for c9d36bd807 2023-03-20 13:00:33 +00:00
libunwind [libunwind][Modules] Add unwind_arm_ehabi.h and unwind_itanium.h to the unwind module) 2023-03-20 15:13:14 -07:00
lld Revert "Reland "[CMake] Bumps minimum version to 3.20.0."" 2023-03-18 20:32:43 +01:00
lldb [lldb][CMake] Enforce not linking against plugin libs in core libs 2023-03-21 16:24:36 -07:00
llvm [RISCV] Use LBU for extloadi8. 2023-03-21 18:52:05 -07:00
llvm-libgcc Revert "Reland "[CMake] Bumps minimum version to 3.20.0."" 2023-03-18 20:32:43 +01:00
mlir [mlir][sparse] fix crash when using pure constant index in indexing mapping (fixes #61530) 2023-03-21 23:45:20 +00:00
openmp [OpenMP] Remove shadow pointer map and introduce consistent locking 2023-03-21 19:16:27 -07:00
polly Revert "Reland "[CMake] Bumps minimum version to 3.20.0."" 2023-03-18 20:32:43 +01:00
pstl Revert "Reland "[CMake] Bumps minimum version to 3.20.0."" 2023-03-18 20:32:43 +01:00
runtimes [runtimes] Don't use -Wall on clang-cl builds 2023-03-19 12:51:37 +01:00
third-party Remove an extra // in the IWYU pragma for gtest-matchers.h 2023-03-14 13:11:53 +01:00
utils Add missing dependency for TransformDialect 2023-03-21 15:23:23 -07:00
.arcconfig Add modern arc config for default "onto" branch 2021-02-22 11:58:13 -08:00
.arclint PR46997: don't run clang-format on clang's testcases. 2020-08-04 17:53:25 -07:00
.clang-format Revert "Title: [RISCV] Add missing part of instruction vmsge {u}. VX Review By: craig.topper Differential Revision : https://reviews.llvm.org/D100115" 2021-04-14 08:04:37 +01:00
.clang-tidy Add -misc-const-correctness to .clang-tidy 2022-08-08 13:00:52 -07:00
.git-blame-ignore-revs Add __config formatting to .git-blame-ignore-revs 2022-06-14 09:52:49 -04:00
.gitignore [llvm] Ignore .rej files in .gitignore 2022-04-28 08:44:51 -07:00
.mailmap [mailmap] Add my entry 2022-12-16 05:30:29 +08:00
CONTRIBUTING.md docs: update some bug tracker references (NFC) 2022-01-10 15:59:08 -08:00
LICENSE.TXT [docs] Add LICENSE.txt to the root of the mono-repo 2022-08-24 09:35:00 +02:00
README.md [docs] Update README and GettingStarted 2023-03-08 12:55:59 -08:00
SECURITY.md [docs] Describe reporting security issues on the chromium tracker. 2021-05-19 15:21:50 -07:00

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.