Manual-sync mirror of chromium.googlesource.com/external/github.com/llvm/llvm-project (bare monorepo, no subtree suffix)
Find a file
Fabian Parzefall 0bd936eee2
[BOLT] Register PIE indirect goto relocations (#206819)
PIE binaries use R_*_RELATIVE dynamic relocations for indirect goto jump
tables. BOLT creates entry points for their targets but does not mark
these addresses as targets from data relocations, so indirect jumps with
unknown control flow (which originates from indirect goto) have no CFG
successors and are interpreted as potential tail calls, while the jump
targets are incorrectly identified as additional entry points.

Add these offsets to the function's list of non-entry relocation
references instead of marking them as entry points. Extend relocation
rewriting to also check whether a block is externally referenced. This
mirrors behavior of data-to-code relocations in non-pie binaries.
2026-07-08 14:21:12 -07:00
.ci CI: move libclang python bindings tests to main CI (#201677) 2026-07-06 23:13:30 -03:00
.github [docs] Rename LangRef.{rst|md} (#201974) 2026-07-08 12:57:00 -07:00
bolt [BOLT] Register PIE indirect goto relocations (#206819) 2026-07-08 14:21:12 -07:00
clang [arm64e] Add a builtin + intrinsic for arm64e PAuth_LR: __builtin_ptr_auth_auth_with_pc_and_resign (#202742) 2026-07-08 13:21:02 -07:00
clang-tools-extra [clang] Reland: fix getTemplateInstantiationArgs (#208285) 2026-07-08 16:53:43 -03:00
cmake Reapply "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133) (#205522) 2026-07-08 16:47:31 +02:00
compiler-rt [X86] Sync compiler-rt cpu subtypes and vendors with libgcc and refactor internal cpu type tables in LLVM (#171172) 2026-07-07 15:03:15 +02:00
cross-project-tests [Clang][RISCV] packed absolute difference sum intrinsics (#207936) 2026-07-08 16:40:13 +08:00
flang [flang][OpenACC] Attach OpenACCLoopLocAttr to acc.loop op (#208238) 2026-07-08 13:47:00 -07:00
flang-rt [flang-rt] Fix -Wunused-template in time intrinsics and test helpers (NFC) (#207979) 2026-07-08 17:01:10 +03:00
libc [libc][mathvec][aarch64] Add AdvSIMD optimised expf (#206776) 2026-07-08 20:52:23 +01:00
libclc [CMake] Warn when the version of CMake is older than 3.31.0 (#204203) 2026-06-29 11:16:27 -07:00
libcxx [libc++][pstl] Default implementation of parallel std::find_first_of (#206328) 2026-07-08 11:18:56 -04:00
libcxxabi [libcxxabi] Don't enable -fvisibility=hidden on Windows (#207943) 2026-07-07 16:16:36 +03:00
libsycl [libsycl] Implement memcpy API (#205369) 2026-07-07 11:29:57 +02:00
libunwind [libunwind] include alloca.h in test/aarch64_za_unwind.pass.cpp (#207376) 2026-07-08 12:33:55 +05:30
lld [lld][ELF][test] Accept zlib-ng compressed size (#206880) 2026-07-08 09:31:53 -03:00
lldb [lldb] Remove unused AnyMatches functions from DataFormatters (#208288) 2026-07-08 13:34:31 -07:00
llvm [SimpleLoopUnswitch] Don't latch-redirect trivial unswitch across convergent ops (#207047) 2026-07-08 17:14:46 -04:00
llvm-libgcc [CMake] Warn when the version of CMake is older than 3.31.0 (#204203) 2026-06-29 11:16:27 -07:00
mlir [mlir][acc] Add acc.on_device op (#208096) 2026-07-08 23:19:26 +02:00
offload [offload] Add the ability to record and replay IR bitcode modules (#207278) 2026-07-08 09:53:13 -07:00
openmp [OpenMP] Remove internal linkage from __kmp_wait template (NFC) (#207983) 2026-07-07 18:41:34 +03:00
orc-rt [orc-rt] Add a configurable logging API with a no-op backend (#208214) 2026-07-08 23:15:38 +10:00
polly [NFC] Fix "is is" typos (#206288) 2026-07-06 18:07:45 +00:00
runtimes Reapply "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133) (#205522) 2026-07-08 16:47:31 +02:00
third-party Fix a warning and an uninitialized variable in benchmark (#200927) 2026-06-02 13:49:06 -07:00
utils [bazel] Correct config.h definitions for musl (#207295) 2026-07-08 14:13:51 -07:00
.clang-format Enforce Unix line endings for Clang/LLVM/MLIR projects (#161460) 2025-10-02 06:09:12 -07:00
.clang-format-ignore [Docs] Update coding standard for TD files (#200848) 2026-06-01 21:35:58 +01:00
.clang-tidy Add default empty header filter regex to root .clang-tidy (#167386) 2025-11-11 01:36:25 +03:00
.git-blame-ignore-revs Add "Split clang/lib/CodeGen/CGBuiltin.cpp" to .git-blame-ignore-revs (#203419) 2026-06-12 12:03:28 +01:00
.gitattributes [libclang/python] Enable packaging clang python bindings (#125806) 2025-11-24 17:21:24 -08:00
.gitignore gitignore: Add emacs lock files (#205055) 2026-06-22 18:19:29 +02:00
.mailmap [mailmap] Add mailmap entry for myself (#189447) 2026-03-30 18:35:34 +00:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE.TXT
pyproject.toml [docs] Create utils/docs (#203962) 2026-06-24 15:12:48 -04:00
README.md
SECURITY.md [SECURITY.md] add pointers to "what is a security issue" (#177372) 2026-01-22 17:19:09 -07:00

The LLVM Compiler Infrastructure

OpenSSF Scorecard OpenSSF Best Practices libc++

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, LLVM Office Hours or Regular sync-ups.

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