LLVM/project 6d1fbb5.github CODEOWNERS

[Github] Add myself to clang-tidy codeowners (#206365)
DeltaFile
+5-0.github/CODEOWNERS
+5-01 files

LLVM/project bdfb524llvm/utils/lit/lit TestRunner.py

python format

Created using spr 1.3.8-wip
DeltaFile
+2-2llvm/utils/lit/lit/TestRunner.py
+2-21 files

LLVM/project 94e7102llvm/utils/lit/lit TestRunner.py

debug only, should fix libcxx

Created using spr 1.3.8-wip
DeltaFile
+14-17llvm/utils/lit/lit/TestRunner.py
+14-171 files

LLVM/project e74cc18llvm/test/tools/llubi noalias_scope.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Treat `llvm.experimental.noalias.scope.decl` as a noop (#206357)

The noalias support is still work in progress:
https://github.com/llvm/llvm-project/pull/195808
`llvm.experimental.noalias.scope.decl` is emitted by the inliner. We may
need more time to clarify the semantics.
This patch treats the intrinsic as a noop to avoid crashes (metadata
arguments are not supported before this patch).
DeltaFile
+16-0llvm/test/tools/llubi/noalias_scope.ll
+5-0llvm/tools/llubi/lib/Interpreter.cpp
+21-02 files

LLVM/project 679ed0bllvm/include/llvm/CodeGen MachineCheckDebugify.h, llvm/lib/CodeGen MachineCheckDebugify.cpp TargetPassConfig.cpp

[CodeGen] Port mir-check-debugify to new pass manager (#199280)
DeltaFile
+101-80llvm/lib/CodeGen/MachineCheckDebugify.cpp
+33-0llvm/include/llvm/CodeGen/MachineCheckDebugify.h
+3-0llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.mir
+2-0llvm/test/CodeGen/Generic/MIRDebugify/multifunction-module.mir
+2-0llvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables-x.mir
+1-1llvm/lib/CodeGen/TargetPassConfig.cpp
+142-816 files not shown
+147-8512 files

LLVM/project 27e3251llvm/lib/Transforms/InstCombine InstCombineCalls.cpp, llvm/test/Transforms/InstCombine minmax-of-minmax.ll intrinsics.ll

[InstCombine] Create new instructions instead of in-place operand replacement (#115988)

Fixes https://github.com/llvm/llvm-project/issues/115890.

Currently it doesn't affect final codegen. But we may suffer from this
problem when we utilize these attributes for further optimization (e.g.,
https://github.com/llvm/llvm-project/pull/111284). This test case is
reduced from a csmith-generated C program. And I believe this problem
also exists in real-world programs.
DeltaFile
+60-50llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+28-0llvm/test/Transforms/InstCombine/minmax-of-minmax.ll
+8-8llvm/test/Transforms/InstCombine/intrinsics.ll
+7-7llvm/test/Transforms/InstCombine/cttz-abs.ll
+11-0llvm/test/Transforms/InstCombine/minmax-fold.ll
+10-0llvm/test/Transforms/InstCombine/abs-intrinsic.ll
+124-658 files not shown
+145-8414 files

LLVM/project 8eb0c59llvm/test/Transforms/LoopVectorize/VPlan expand-scev.ll, llvm/test/Transforms/LoopVectorize/VPlan/RISCV expand-scev.ll

[VPlan] Add printing tests for various SCEV expressions. (NFC) (#206351)

Add tests currently not yet expanded to VPInstruction.
DeltaFile
+146-0llvm/test/Transforms/LoopVectorize/VPlan/expand-scev.ll
+59-0llvm/test/Transforms/LoopVectorize/VPlan/RISCV/expand-scev.ll
+205-02 files

LLVM/project 7cd03d0llvm/utils/lit/lit TestRunner.py

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+15-12llvm/utils/lit/lit/TestRunner.py
+15-121 files

LLVM/project cef5569llvm/include/llvm/Support ScopedPrinter.h, llvm/unittests/Support ScopedPrinterTest.cpp

[Support] Remove the now-unused EnumEntry (#206330)
DeltaFile
+0-307llvm/unittests/Support/ScopedPrinterTest.cpp
+0-82llvm/include/llvm/Support/ScopedPrinter.h
+0-3892 files

LLVM/project 905cccbllvm/test/Transforms/SLPVectorizer/X86 poor-throughput-seeds.ll

[SLP][NFC]Add a test with the poor cost seed instructions, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/206352
DeltaFile
+106-0llvm/test/Transforms/SLPVectorizer/X86/poor-throughput-seeds.ll
+106-01 files

LLVM/project e3ef2d9llvm/include/llvm/ADT SmallPtrSet.h, llvm/lib/Support SmallPtrSet.cpp

[SmallPtrSet] Optimize Grow and inline FindBucketFor. NFC (#206304)

During rehashing every key is known absent, so skip the equal-key
comparison.
DenseMap got a similar optimization in #200595

FindBucketFor is then only used by insert_imp_big; inline its probe loop
there. The loop takes 7 inst instead of 9 in the clang-generated
assembly after removing the two `LLVM_LIKELY`.
DeltaFile
+22-24llvm/lib/Support/SmallPtrSet.cpp
+0-1llvm/include/llvm/ADT/SmallPtrSet.h
+22-252 files

LLVM/project 49de424clang/lib/Format CMakeLists.txt

[clang-format][NFC] Clean up clang/lib/Format/CMakeLists.txt (#206314)
DeltaFile
+3-6clang/lib/Format/CMakeLists.txt
+3-61 files

LLVM/project c03e4bdclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp FormatTest.cpp

[clang-format] Set Context.IsExpression for C++ ternary operators (#206300)

This reverts e99e343dfdb2b1b490789a7bcba6d646a4824f15 (#199112).

Fixes #199027
DeltaFile
+2-8clang/lib/Format/TokenAnnotator.cpp
+5-4clang/unittests/Format/TokenAnnotatorTest.cpp
+1-1clang/unittests/Format/FormatTest.cpp
+8-133 files

LLVM/project 2959bfallvm/test/Transforms/LoopVectorize hoist-predicated-loads-with-predicated-stores.ll

[LV] Add test with pointer based on SRem expression (NFC). (#206344)

Add a test with loads and stores with pointers based on a signed
remainder (srem) of a non-negative induction variable, mirroring the
existing urem test.
DeltaFile
+123-0llvm/test/Transforms/LoopVectorize/hoist-predicated-loads-with-predicated-stores.ll
+123-01 files

LLVM/project 07a8a5ellvm/test/Transforms/SLPVectorizer/X86 odd_store.ll

[SLP][NFC] Avoid undef usage in odd_store.ll (#206333)

Replace `ret i32 undef` with void return type to avoid CI undef
deprecator failures.

For this PR: https://github.com/llvm/llvm-project/pull/206259
DeltaFile
+3-3llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
+3-31 files

LLVM/project 0094e38llvm/test/Transforms/LoopIdiom memset-multiple-accesses.ll

[LoopIdiom] Add tests with loops writing to fields at different offsets. (#206343)

Add loops with writes at multiple offsets and runtime trip counts.
DeltaFile
+404-0llvm/test/Transforms/LoopIdiom/memset-multiple-accesses.ll
+404-01 files

LLVM/project 5f3462dclang/include/clang/Basic Builtins.td, clang/lib/CodeGen CGAtomic.cpp

[clang] builtins for atomicrmw fminmax/_num (#187139)

Adds compiler builtins for `atomicrmw`: `fminimum`, `fmaximum`,
`fminimum_num`, `fmaximum_num`.
These will be used by the corresponding libc++ atomic apis (see #186716).
DeltaFile
+50-1clang/test/Sema/atomic-ops.c
+48-0clang/include/clang/Basic/Builtins.td
+44-1clang/lib/CodeGen/CGAtomic.cpp
+32-0clang/test/Sema/scoped-atomic-ops.c
+21-4clang/lib/Sema/SemaChecking.cpp
+17-0clang/test/CodeGen/AArch64/atomic-ops-float-check-minmax.c
+212-62 files not shown
+223-68 files

LLVM/project 7a8d4a4libc/test/include CMakeLists.txt

[libc][math] Re-enable iscanonical_c_test

Exercise the iscanonical macro, including its _Float16 and float128
branches. Part of #114618.
DeltaFile
+19-19libc/test/include/CMakeLists.txt
+19-191 files

LLVM/project ab4231blibc/test/UnitTest CMakeLists.txt

[libc][test] Build LibcFPTestHelpers in full-build mode

In a full build the unit framework is built in overlay mode while the tests
use LIBC_FULL_BUILD, so FEnvSafeTest's fenv_t member differs in size (16 vs
8 bytes on Darwin) -- an ODR violation that crashes math smoke tests. Add a
UNIT_AS_FULL_BUILD opt-in and use it for the hermetic LibcFPTestHelpers.
DeltaFile
+7-2libc/test/UnitTest/CMakeLists.txt
+7-21 files

LLVM/project bfbb4b2libc/src/__support/FPUtil/aarch64 fenv_darwin_impl.h

[libc][math] Fix aarch64 Darwin fenv implementation for full builds

A full build replaces the system (Apple) <fenv.h> with libc's headers, so
fenv_darwin_impl.h no longer found an 8-byte fenv_t, FE_FLUSHTOZERO, or the
__fpcr_* masks it relied on. Size FPState to the fenv_t in scope, alias
FE_FLUSHTOZERO to FE_DENORM, and define the FPCR trap masks locally.
DeltaFile
+27-0libc/src/__support/FPUtil/aarch64/fenv_darwin_impl.h
+27-01 files

LLVM/project 9d9097elibc/include/llvm-libc-macros math-function-macros.h CMakeLists.txt, libc/test/include iscanonical_test.c CMakeLists.txt

[libc][math] Extend iscanonical macro to _Float16 and float128

iscanonical is a C23 type-generic macro, so the f16/f128 variants are
surfaced through it rather than as functions in the generated math.h.
float128 is only listed when distinct from long double (LDBL_MANT_DIG !=
113) to avoid two _Generic associations with compatible types.
DeltaFile
+24-0libc/include/llvm-libc-macros/math-function-macros.h
+16-0libc/test/include/iscanonical_test.c
+2-0libc/test/include/CMakeLists.txt
+1-0libc/include/llvm-libc-macros/CMakeLists.txt
+43-04 files

LLVM/project 756884clibcxx/test/std/numerics/bit byteswap.verify.cpp

[libc++][test] Drop _BitInt(96) byteswap padding check on 32-bit x86 (#205295)

`byteswap.verify.cpp` (added in #203876) expects `std::byteswap(unsigned
_BitInt(96))` to be rejected for having padding bits. That holds on
x86_64, where the type is 16 bytes with 32 padding bits, but not on
32-bit x86: the i386 psABI aligns `_BitInt` to 4 bytes and packs
`_BitInt(96)` into 12 bytes with no padding, so the call is well-formed
and the expected diagnostic never fires. The Android i386 builder caught
this.

Gate `test_unsigned_96` on `!defined(__i386__)`. Every other target,
including 32-bit arm, riscv32, ppc32, mips32 and sparc32, gives
`_BitInt(96)` 16 bytes with padding, so the case still exercises the
padding-bit Mandate everywhere except 32-bit x86. `sizeof` is not
available to the preprocessor, so the guard is a target check rather
than a direct has-padding predicate.

Assisted-by: Claude (Anthropic)


    [2 lines not shown]
DeltaFile
+8-6libcxx/test/std/numerics/bit/byteswap.verify.cpp
+8-61 files

LLVM/project 5e4ac01clang-tools-extra/clang-tidy/bugprone UnhandledCodePathsCheck.cpp, clang-tools-extra/clang-tidy/readability TrivialSwitchCheck.cpp TrivialSwitchCheck.h

[clang-tidy] Move part of bugprone-unhandled-code-paths to a new check readability-trivial-switch (#198237)

The moved part detects trivial `switch` statement which can be removed
or rewritted as `if` statement.

hicpp-multiway-paths-covered was removed without keeping its name as
alias, so we don't need to update infrastructore to support one-to-many
aliases.

Changes were generated by AI, and reviewed and modified by me
afterwards.

Assisted-by: GPT-5.5
DeltaFile
+4-48clang-tools-extra/test/clang-tidy/checkers/bugprone/unhandled-code-paths.cpp
+51-0clang-tools-extra/clang-tidy/readability/TrivialSwitchCheck.cpp
+44-0clang-tools-extra/test/clang-tidy/checkers/readability/trivial-switch.cpp
+4-39clang-tools-extra/clang-tidy/bugprone/UnhandledCodePathsCheck.cpp
+36-0clang-tools-extra/docs/clang-tidy/checks/readability/trivial-switch.rst
+33-0clang-tools-extra/clang-tidy/readability/TrivialSwitchCheck.h
+172-876 files not shown
+181-12312 files

LLVM/project c878f0aclang/include/clang/AST Expr.h, clang/include/clang/Sema Sema.h Designator.h

[clang] Replace Sema::OffsetOfComponent with Designation (#199097)

The parser previously fed __builtin_offsetof through a small ad-hoc
struct (Sema::OffsetOfComponent) that mirrors the same path data already
modeled by Designation/Designator. With the recent code-completion work,
the parser was building both shapes side by side.

Drop OffsetOfComponent. ActOnBuiltinOffsetOf, BuildBuiltinOffsetOf, and
TreeTransform::RebuildOffsetOfExpr now take a const Designation &.

- Parser: stops maintaining the parallel Comps vector and feeds the
Designation it already collected for completion straight to Sema.
- BuildBuiltinOffsetOf: iterates over the Designation.
- TreeTransform: rebuilds a Designation from each OffsetOfNode. The AST
node already encodes "leading-dot collapsed to name location" via its
Range constructor, so we mirror that by passing an empty DotLoc whenever
the new Designation is still empty.
- OffsetOfNode: tighten the identifier constructor and getFieldName
accessor to const IdentifierInfo*, matching Designator's accessor and

    [9 lines not shown]
DeltaFile
+31-28clang/lib/Sema/SemaExpr.cpp
+20-23clang/lib/Sema/TreeTransform.h
+7-26clang/lib/Parse/ParseExpr.cpp
+2-12clang/include/clang/Sema/Sema.h
+13-0clang/include/clang/Sema/Designator.h
+2-2clang/include/clang/AST/Expr.h
+75-911 files not shown
+76-927 files

LLVM/project 8753163llvm/lib/Target/AMDGPU SIInstructions.td, llvm/test/CodeGen/AMDGPU llvm.amdgcn.mfma.gfx950.ll v_mov_b64-isel.ll

[AMDGPU] Select `V_MOV_B64_e32` directly if a target supports it
DeltaFile
+192-204llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.ll
+119-0llvm/test/CodeGen/AMDGPU/v_mov_b64-isel.ll
+25-26llvm/test/CodeGen/AMDGPU/rewrite-vgpr-mfma-to-agpr.ll
+16-16llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx950.bf16.ll
+30-0llvm/lib/Target/AMDGPU/SIInstructions.td
+3-2llvm/test/CodeGen/AMDGPU/siloadstoreopt-misaligned-regsequence.ll
+385-2481 files not shown
+386-2487 files

LLVM/project 9b8a0c3llvm/lib/Analysis InstructionSimplify.cpp, llvm/test/Transforms/InstSimplify vector-splice.ll

[InstSimplify] Fold splice.right(splice.left(poison, x, offset), poison, offset) -> x (#204256)

Fixes #203027

Adds an InstSimplify fold for
llvm.vector.splice.left/m.vector.splice.right roundtrip. The values in a
vector are first shifted to the right and then to the left, filling the
clipped off values with poison. In this scenario, the shift operations
get simplified to just x.
DeltaFile
+82-0llvm/test/Transforms/InstSimplify/vector-splice.ll
+9-1llvm/lib/Analysis/InstructionSimplify.cpp
+91-12 files

LLVM/project 8c0a59allvm/test/Transforms/SLPVectorizer/X86 odd_store.ll

[SLP][NFC] Avoid undef usage in odd_store.ll
DeltaFile
+3-3llvm/test/Transforms/SLPVectorizer/X86/odd_store.ll
+3-31 files

LLVM/project a9a5899bolt/docs index.rst GettingStarted.rst

[BOLT][Documentation] Prepare documentation for hosting (#201378)

This PR aims to organise BOLT's docs in preparation for hosting.

- Added a landing page into `index.rst`, much like
[clang.llvm.org](https://clang.llvm.org/docs/index.html).
- Moved Getting Started content from `index.rst` into its own
`GettingStarted.rst`.
- Enables Markdown content to be rendered. A current
[discussion](https://discourse.llvm.org/t/rfc-make-myst-markdown-the-llvm-docs-format-rip-rest/90840)
is being had about MD/RST on discourse, but for now I have decided to
support the mix of formats currently in BOLT.
- Included AArch64 optimization status page.
- Fixes some links/anchors.

**Landing Page**
<img width="531" height="311" alt="image"
src="https://github.com/user-attachments/assets/4fa376bf-cdf1-4ad1-8be5-1de57597ac10"
/>

    [4 lines not shown]
DeltaFile
+23-245bolt/docs/index.rst
+255-0bolt/docs/GettingStarted.rst
+22-0bolt/docs/conf.py
+3-3bolt/docs/PointerAuthDesign.md
+2-2bolt/docs/BAT.md
+2-1bolt/docs/BinaryAnalysis.md
+307-2511 files not shown
+308-2527 files

LLVM/project 1995de9llvm/test/Transforms/SLPVectorizer non-power-of-2-buildvector.ll

[SLP][NFC] Add non-power-of-2 buildvector test
DeltaFile
+112-0llvm/test/Transforms/SLPVectorizer/non-power-of-2-buildvector.ll
+112-01 files

LLVM/project d5113dallvm/include/llvm/MC MCSubtargetInfo.h, llvm/lib/MC MCSubtargetInfo.cpp

[spr] changes to main this commit is based on

Created using spr 1.3.8-wip

[skip ci]
DeltaFile
+29-33llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+39-13llvm/include/llvm/MC/MCSubtargetInfo.h
+24-23llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+15-18llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.cpp
+12-11llvm/lib/MC/MCSubtargetInfo.cpp
+10-10llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+129-1089 files not shown
+163-14715 files