Manual-sync mirror of chromium.googlesource.com/external/github.com/llvm/llvm-project (bare monorepo, no subtree suffix)
Find a file
Matt Arsenault 188b9a3bfb
ValueTracking: Generalize known frexp exponent range to any constant (#208316)
Extend computeKnownExponentRangeFromContext beyond the special case of a
dominating fabs(V) compare against exactly 1.0 to any finite limit.

Generalizing below 1.0 exposes a soundness issue: frexp(0) has exponent
0, so a bound derived assuming a nonzero value could wrongly exclude it
when the limit implies a negative maximum exponent. Query fcZero and
clamp the maximum exponent to at least 0 when the source may be zero.

Co-authored-by: Claude (Opus 4.8) <noreply@anthropic.com>
2026-07-10 20:24:53 +02:00
.ci Revert "[lldb][Windows][CI] split steps (#206946)" (#208519) 2026-07-09 21:45:47 +01:00
.github [Github] Add ids container (#208498) 2026-07-10 09:45:31 -07:00
bolt [BOLT] Treat relr relocations like rela (#206830) 2026-07-10 09:26:48 -07:00
clang [NFC][clang][dataflow] Add explanatory comment to test. (#208779) 2026-07-10 14:06:26 -04:00
clang-tools-extra [clang] more useful error message for decomposition declaration missing initializer (#127924) 2026-07-10 17:55:46 +00:00
cmake Revert "Reapply "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133) (#205522)" (#208644) 2026-07-10 08:58:58 +00:00
compiler-rt [asan][test] Fix Posix/new_array_cookie_with_new_from_class.cpp to work for arm targets (#208378) 2026-07-10 10:50:37 -07:00
cross-project-tests [RISCV][P-ext][NFC] Add tests for packed reverse intrinsics (#208484) 2026-07-10 00:37:31 +08:00
flang [flang][OpenMP] Semantic checks for metadirective loop nests (#207088) 2026-07-10 11:00:23 -05: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] Use internal::clock_gettime in socketopt_test (#208667) 2026-07-10 11:57:15 +02: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++] Update the base image hash to get most recent clang-23 (#208766) 2026-07-10 12:30:58 -04:00
libcxxabi [libc++abi][NFC] Use C++11 spelling of [[noreturn]] (#207344) 2026-07-10 15:47:09 +02: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][AArch64] Make adrp+ldr relaxation per-symbol all-or-nothing (#208396) 2026-07-10 07:09:08 +00:00
lldb [lldb] Improved formatting of 'register read' command. (#188049) 2026-07-10 10:58:35 -07:00
llvm ValueTracking: Generalize known frexp exponent range to any constant (#208316) 2026-07-10 20:24:53 +02: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][xegpu] Add support for 1D SLM case in vector-to-xepgu (#208276) 2026-07-10 10:20:42 -07:00
offload offload: Match amdgpu triple name in lit config (#208551) 2026-07-10 12:32:54 +02:00
openmp [OpenMP] Use secure_getenv when read OMPT library path (#208652) 2026-07-10 13:25:21 +02:00
orc-rt [orc-rt] Rename the "disable logging" level from "none" to "off" (#208697) 2026-07-10 21:56:56 +10:00
polly [NFC] Fix "is is" typos (#206288) 2026-07-06 18:07:45 +00:00
runtimes Revert "Reapply "runtimes: Pass CMAKE_SYSTEM_NAME based on target triple" (#205133) (#205522)" (#208644) 2026-07-10 08:58:58 +00:00
third-party Fix a warning and an uninitialized variable in benchmark (#200927) 2026-06-02 13:49:06 -07:00
utils [Bazel] Fixes 5ddad72 (#208792) 2026-07-10 12:48:06 -05: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.