LLVM/project e9d162fclang/include/clang/Basic BuiltinsX86.td, clang/lib/AST ExprConstant.cpp

[clang][X86] Add constexpr support for mpsadbw128/256 intrinsics (#202257)

Enable constexpr evaluation for `_mm_mpsadbw_epu8` and
`_mm256_mpsadbw_epu8` (`__builtin_ia32_mpsadbw128`/`mpsadbw256`).

Fixes #157522.
DeltaFile
+54-0clang/lib/AST/ByteCode/InterpBuiltin.cpp
+43-0clang/lib/AST/ExprConstant.cpp
+19-0clang/test/CodeGen/X86/avx2-builtins.c
+11-0clang/test/CodeGen/X86/sse41-builtins.c
+4-3clang/include/clang/Basic/BuiltinsX86.td
+131-35 files

LLVM/project 516ab1allvm/test/CodeGen/SystemZ misched-prera-loads.mir vec-cmp-cmp-logic-select.ll

[SystemZ] Enable liveness reduction in pre-RA sched strategy. (#188823)

Add some handling of register pressure by scheduling an SU "low" if it closes a
live range (under certain conditions).

As this is checked before latency reduction, the "data-sequnces" check that was
used to selectively enable latency reduction can now be removed.

This gives good improvements on several benchmarks and is also a simplification
of the SystemZPreRASchedStrategy.
DeltaFile
+627-0llvm/test/CodeGen/SystemZ/misched-prera-loads.mir
+170-170llvm/test/CodeGen/SystemZ/vec-cmp-cmp-logic-select.ll
+132-119llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
+96-96llvm/test/CodeGen/SystemZ/machine-combiner-reassoc-fp.ll
+151-0llvm/test/CodeGen/SystemZ/misched-prera-pdiffs.mir
+64-64llvm/test/CodeGen/SystemZ/shift-17.ll
+1,240-44943 files not shown
+1,951-1,16549 files

LLVM/project 7f56706llvm/test/CodeGen/X86 phaddsub.ll

[X86] phaddsub.ll - update PR39921/PR39936 test case to a vector.reduce.v8i32 call (#205310)

Matches middle-end IR produced from the tests' C++ source since #199872
DeltaFile
+25-29llvm/test/CodeGen/X86/phaddsub.ll
+25-291 files

LLVM/project 3abbf06clang-tools-extra/clang-tidy/readability RedundantParenthesesCheck.cpp, clang-tools-extra/clangd/unittests DiagnosticsTests.cpp

[clang-tidy] Avoid token merging in redundant-parentheses fix-its (#202365)

The readability-redundant-parentheses check emitted fix-its that simply
removed both parentheses. Tools that apply those fix-its directly could
join adjacent tokens and produce invalid code, e.g. `return(0)` becoming
`return0`.

Replace the opening parenthesis with a space when removing it would
merge identifier characters across the removed token.

AI Usage: Test assisted by Codex.
Closes https://github.com/llvm/llvm-project/issues/185108
DeltaFile
+23-0clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+20-1clang-tools-extra/clang-tidy/readability/RedundantParenthesesCheck.cpp
+7-3clang-tools-extra/docs/ReleaseNotes.rst
+50-43 files

LLVM/project 572cf32clang-tools-extra/docs/clang-tidy/checks/bugprone suspicious-memory-comparison.rst spuriously-wake-up-functions.rst, clang-tools-extra/docs/clang-tidy/checks/misc predictable-rand.rst

[clang-tidy][NFC] Update CERT wiki link across all clang-tidy docs (#205086)

This patch updates the outdated CMU wiki link in the clang-tidy
documentation.

The old link currently returns a `301 Moved Permanently` redirecting to
the new GitHub Pages location. This patch updates the source file to
point directly to the new destination to prevent future link rot.

Closes #200277 
DeltaFile
+4-4clang-tools-extra/docs/clang-tidy/checks/bugprone/suspicious-memory-comparison.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/bugprone/spuriously-wake-up-functions.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/bugprone/unsafe-functions.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/misc/predictable-rand.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/bugprone/reserved-identifier.rst
+2-2clang-tools-extra/docs/clang-tidy/checks/bugprone/random-generator-seed.rst
+14-1428 files not shown
+43-4334 files

LLVM/project 18ce6f4bolt/include/bolt/Core BinaryFunction.h, bolt/test/AArch64 constant-island-reproducible.s

[BOLT][AArch64] reproducible output with constant islands (#204546)

Optimized binaries from subsequent llvm-bolt runs may sometimes differ
due to the unordered set (SmallPtrSet), even if the input binary and
parameters are the same. Usage of SetVector guarantees a deterministic
sequence of binary functions while keeping each function as a single
instance.

Below you can see two different main functions before the fix after two
llvm-bolt runs (same input binaries, same arguments).

```
0000000000210400 <main>:
  210400: 10000140      adr     x0, 0x210428 <main+0x28>
  210404: f9400000      ldr     x0, [x0]
  210408: 10000140      adr     x0, 0x210430 <main+0x30>
  21040c: f9400000      ldr     x0, [x0]
  210410: 10000180      adr     x0, 0x210440 <main+0x40>
  210414: f9400000      ldr     x0, [x0]

    [38 lines not shown]
DeltaFile
+56-0bolt/test/AArch64/constant-island-reproducible.s
+4-1bolt/include/bolt/Core/BinaryFunction.h
+60-12 files

LLVM/project 8b7e7fallvm/utils/UnicodeData UnicodeNameMappingGenerator.cpp

[NFC] UnicodeNameMappingGenerator: restore #include <unordered_map> (#205316)

#204303 removed this include while converting `unordered_map` uses to
`DenseMap`, but `loadDataFiles` still uses `unordered_multimap`.

See
https://ci.swift.org/job/llvm.org/job/clang-stage2-Rthinlto/job/main/360/

```
[2026-06-23T05:46:26.519Z] /Users/ec2-user/jenkins/workspace/m.org_clang-stage2-Rthinlto_main/llvm-project/llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp:34:13: error: missing '#include <unordered_map>'; 'unordered_multimap' must be declared before it is used
[2026-06-23T05:46:26.519Z]    34 | static std::unordered_multimap<char32_t, std::string>
[2026-06-23T05:46:26.519Z]       |             ^
```
DeltaFile
+1-0llvm/utils/UnicodeData/UnicodeNameMappingGenerator.cpp
+1-01 files

LLVM/project 0d49a95clang/include/clang/Frontend SSAFOptions.h CompilerInvocation.h, clang/lib/Frontend CompilerInvocation.cpp

Reland "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions" (#205312)

Third attempt of #204686
Previous attempt was: #204798
This was last reverted in #205279

This class will help keeping SSAF options apart from generic
FrontendOptions. It is inspired by AnalyzerOptions.

This way all of these SSAF (and future) options will be at a
centralized place.

In preparation of rdar://179151023

---

The previous attempt had issues on Windows with `/permissive` configs.
The issue was that `GENERATE_OPTION_WITH_MARSHALLING` had a generic
lambda capture and that does not constitute as an ODR-use of the

    [5 lines not shown]
DeltaFile
+27-26clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
+52-0clang/include/clang/Frontend/SSAFOptions.h
+35-1clang/lib/Frontend/CompilerInvocation.cpp
+13-12clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
+18-7clang/include/clang/Frontend/CompilerInvocation.h
+1-23clang/include/clang/Frontend/FrontendOptions.h
+146-693 files not shown
+160-759 files

LLVM/project 29a6e43llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU AMDGPUHSAMetadataStreamer.h

AMDGPU: Rename AMDGPUTargetID to TargetID

The AMDGPU prefix is redundant with the namespace.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+8-16llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+9-10llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+9-9llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+8-8llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+4-4llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+4-4llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
+42-514 files not shown
+50-5910 files

LLVM/project 1e30185llvm/lib/Target/SystemZ SystemZInstrInfo.cpp, llvm/test/CodeGen/SystemZ target-flags.ll

[SystemZ] Add serialization strings for some MO target flags. (#203053)

These strings are needed for MIR textual representation: If one is
missing it doesn't work to do "-stop-before=XXX and then
-start-before=XXX".
DeltaFile
+14-0llvm/test/CodeGen/SystemZ/target-flags.ll
+2-0llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+16-02 files

LLVM/project c6e3d2clibc/src/__support/OSUtil/linux/syscall_wrappers ioctl.h CMakeLists.txt, libc/src/sys/ioctl/linux ioctl.cpp

Revert "Revert "[libc] Introduce the ioctl syscall wrapper and port all calle…"

This reverts commit 635cbc0ebb2851d4cb9d72dcd62f2ef2dd1c25c5.
DeltaFile
+49-0libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h
+7-14libc/src/termios/linux/CMakeLists.txt
+6-9libc/src/sys/ioctl/linux/ioctl.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-8libc/src/unistd/linux/isatty.cpp
+5-7libc/src/termios/linux/tcgetattr.cpp
+85-388 files not shown
+113-7614 files

LLVM/project 3bfec5dllvm/lib/Target/AMDGPU/Disassembler CMakeLists.txt

AMDGPU: Temporarily restore disassembler's dependency on TargetParser, again (#205309)

Reverts part of #205268
DeltaFile
+1-0llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
+1-01 files

LLVM/project 649e3e0llvm/lib/Target/X86 X86TargetTransformInfo.cpp, llvm/test/Transforms/ArgumentPromotion/X86 struct-load.ll

[X86][TTI] Handle structs in areTypesABICompatible() (#205308)

Fixes a regression from #205106. getValueType() asserts on aggregate
types. Use CompuateValueVTs() to compute the de-aggregated VTs.

Performing argument promotion for struct types seems pretty
dubious to me, but it was previously allowed, so I'm retaining
that behavior. We may want to disable promotion of aggregates
in ArgPromotion entirely though.
DeltaFile
+24-0llvm/test/Transforms/ArgumentPromotion/X86/struct-load.ll
+8-3llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+32-32 files

LLVM/project df64d08llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp

Adjust comment
DeltaFile
+5-2llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+5-21 files

LLVM/project 10c54d2llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPUHWEvents.cpp

[AMDGPU][HWEvents] Refactor VMEM_ACCESS as VMEM_READ_ACCESS

Instead of having an HWEvent that can be either a read or a write
depending on the target, keep the events as straightforward as
possible and let InsertWaitCnt interpret it. Rename VMEM_ACCESS
to VMEM_READ_ACCESS and set VMEM_STORE_ACCESS & similar events
even if the target does not have a VSCnt.

I think this conceptually makes more sense.
This separates concerns better so that HWEvents nodels events
objectively, and InsertWaitCnt handles them as necessary for the task
it is trying to achieve (insert wait instructions).
DeltaFile
+18-11llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+5-4llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+1-3llvm/lib/Target/AMDGPU/AMDGPUHWEvents.def
+24-183 files

LLVM/project 65f566allvm/lib/Target/AMDGPU AMDGPUHWEvents.cpp SIInsertWaitcnts.cpp

[AMDGPU][InsertWaitCnts] Move TENSOR/ASYNC event detection to separate header

I forgot to move those out of the way as they were not grouped with the other.
Now `getEventsFor` does all the work.
DeltaFile
+7-0llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+0-5llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+7-52 files

LLVM/project 018d2f5llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPUHWEvents.h

Comments + fix build + small improvements
DeltaFile
+8-8llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+13-0llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
+1-1llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+22-93 files

LLVM/project c2786callvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPUHWEvents.h

[AMDGPU][InsertWaitCnts] Make HWEvent a BitMask

Follow up from comments on https://github.com/llvm/llvm-project/pull/202886

Make HWEvent a bitmask by default instead of having both the enum, and a separate HWEventSet. This has the advantage of streamlining the code a bit and opening the possibility of adding "modifiers" to events, e.g. I imagine we could now fold "VMemType" into the Events.
We already do this with things like SMEM_GROUP. At least now it's baked into the design.

I opted for a bit more verbosity by taking inspiration from FastMathFlags (FMF): instead of exposing a raw enum, I wrap it in a class w/ helper function. The downside is having to reimplement all the little bitwise ops, but the result is a cleaner, simpler interface than a raw enum (class) w/ many helper functions. I initially tried that but I recoiled at the sight of things like `contains(A, B)` which isn't very clear, while `A.contains(B)` is self explanatory.

Considering HWEvent is a bitmask, I also implemented a simple iterator to iterate over all set bits of the mask, which is a useful thing to have as some APIs in InsertWaitCnt rely on treating one event at a time.
DeltaFile
+100-106llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+109-91llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
+58-60llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+28-34llvm/lib/Target/AMDGPU/AMDGPUHWEvents.def
+295-2914 files

LLVM/project bccd521llvm/lib/Target/AMDGPU AMDGPUHWEvents.h SIInsertWaitcnts.cpp

Comments
DeltaFile
+29-12llvm/lib/Target/AMDGPU/AMDGPUHWEvents.h
+7-7llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+4-0llvm/lib/Target/AMDGPU/AMDGPUHWEvents.cpp
+40-193 files

LLVM/project 40dc2b2clang/lib/CIR/Dialect/Transforms/TargetLowering CIRABIRewriteContext.cpp

[CIR] Fix LoadOp creation (#205294)
DeltaFile
+1-0clang/lib/CIR/Dialect/Transforms/TargetLowering/CIRABIRewriteContext.cpp
+1-01 files

LLVM/project 11a928ellvm/lib/Transforms/Scalar LoopStrengthReduce.cpp, llvm/test/Transforms/LoopStrengthReduce/AArch64 use-outside-loop.ll

[LSR] Don't merge ICmpZero uses outside loop (#205131)

In NarrowSearchSpaceByMergingUsesOutsideLoop don't merge ICmpZero uses
outside the loop with uses inside the loop, as the resulting use will
have a kind that's not ICmpZero, which will mean the compare won't be
expanded correctly later.
DeltaFile
+171-0llvm/test/Transforms/LoopStrengthReduce/AArch64/use-outside-loop.ll
+4-1llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+175-12 files

LLVM/project da7c136llvm/docs LangRef.rst, llvm/include/llvm/IR Instructions.h

[IR] Add elementwise modifier to atomic loads
DeltaFile
+33-0llvm/test/Assembler/invalid-load-store-atomic-elementwise.ll
+18-4llvm/lib/IR/Verifier.cpp
+15-6llvm/docs/LangRef.rst
+14-3llvm/include/llvm/IR/Instructions.h
+16-0llvm/test/Bitcode/atomic-load-store-elementwise.ll
+14-2llvm/lib/AsmParser/LLParser.cpp
+110-156 files not shown
+140-2112 files

LLVM/project fbdb644llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

AMDGPU: Move AMDGPUTargetID to AMDGPUTargetParser (#205268)
DeltaFile
+22-128llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+9-108llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+107-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+106-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+8-8llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+8-8llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+260-2527 files not shown
+277-27913 files

LLVM/project e85f1c1lldb/test/API/functionalities/thread/concurrent_events TestConcurrentManyBreakpoints.py

[lldb][test] Skip TestConcurrentManyBreakpoints (#205298)
DeltaFile
+1-0lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManyBreakpoints.py
+1-01 files

LLVM/project 3f7eb27llvm/test/CodeGen/X86 madd.ll

[X86] madd.ll - add SSE42 test coverage (#205299)
DeltaFile
+730-302llvm/test/CodeGen/X86/madd.ll
+730-3021 files

LLVM/project 70c54ffclang/include/clang/Basic BuiltinsRISCV.td, clang/lib/CodeGen/TargetBuiltins RISCV.cpp

[Clang][RISCV] packed exchanged add/sub intrinsics (#205251)

Add the `__riscv_{pas,psa,psas,pssa,paas,pasa}_x_*` header wrappers over
new `__builtin_riscv_*` builtins.
DeltaFile
+398-0clang/test/CodeGen/RISCV/rvp-intrinsics.c
+126-0cross-project-tests/intrinsic-header-tests/riscv_packed_simd.c
+49-0clang/lib/CodeGen/TargetBuiltins/RISCV.cpp
+22-0clang/include/clang/Basic/BuiltinsRISCV.td
+22-0clang/lib/Headers/riscv_packed_simd.h
+617-05 files

LLVM/project bad300bllvm/include/llvm/ADT STLExtras.h, mlir/include/mlir/Query/Matcher MatchersInternal.h

[MLIR][ADT] Improve matcher compatability with C++20 STL (#205255)

When building MLIR on C++20 in Visual Studio with clang-cl, there are
several related compiler errors, grouped by project:

MLIRQueryMatcher
```C
type '_Mybase' (aka 'typename conditional<conjunction_v<is_trivially_destructible<DynMatcher>, is_trivially_move_constructible<DynMatcher>, is_trivially_move_assignable<DynMatcher>>, typename conditional<conjunction_v<is_trivially_destructible<DynMatcher>, is_trivially_copy_constructible<DynMatcher>, is_trivially_copy_assignable<DynMatcher>>, _Non_trivial_move<_Optional_construct_base<DynMatcher>, DynMatcher>, _Non_trivial_copy_assign<_Optional_construct_base<DynMatcher>, DynMatcher>>::type, _Non_trivial_move_assign<_Optional_construct_base<DynMatcher>, DynMatcher>>::type') is not a direct or virtual base of 'std::optional<mlir::query::matcher::DynMatcher>'
no member named '_Value' in 'std::optional<mlir::query::matcher::DynMatcher>'
no member named '_Has_value' in 'std::optional<mlir::query::matcher::DynMatcher>'
no matching function for call to '_Destroy_range'
invalid application of 'sizeof' to an incomplete type 'mlir::query::matcher::DynMatcher'
invalid application of 'alignof' to an incomplete type 'mlir::query::matcher::DynMatcher'
```

MLIRQueryMatcher, MLIRQuery, MLIRQueryLib, and mlir-query
```C
no viable conversion from 'std::vector<DynMatcher>' to 'ArrayRef<DynMatcher>'
incomplete type 'mlir::query::matcher::DynMatcher' used in type trait expression

    [13 lines not shown]
DeltaFile
+23-6mlir/include/mlir/Query/Matcher/MatchersInternal.h
+1-0llvm/include/llvm/ADT/STLExtras.h
+24-62 files

LLVM/project 8289d98llvm/lib/Transforms/Utils FixIrreducible.cpp, llvm/test/Transforms/FixIrreducible unsupported-terminator.ll

[FixIrreducible] Use reportFatalUsageError for unsupported terminators (#205244)

`opt -passes=fix-irreducible` crashed via `llvm_unreachable` on a
`switch` terminator incident to an irreducible cycle header. Such
terminators must be lowered first (`lower-switch`); replace the
`llvm_unreachable` at both sites with `reportFatalUsageError` so the
pass fails gracefully instead of crashing.

Fixes #191978

Signed-off-by: AvhiMaz <avhimazumder5 at outlook.com>
DeltaFile
+19-0llvm/test/Transforms/FixIrreducible/unsupported-terminator.ll
+5-2llvm/lib/Transforms/Utils/FixIrreducible.cpp
+24-22 files

LLVM/project 4057dfdclang/include/clang/Basic DiagnosticSemaKinds.td, clang/lib/Sema SemaLifetimeSafety.h

[LifetimeSafety] Improve destroyed and invalidated diagnostic notes (#204900)

## Summary

Improve Lifetime Safety diagnostic notes by identifying the affected
storage in destruction and invalidation notes.

Examples:
```
{
  int value;
  ptr = &value;
}
```
Before:
```
note: destroyed here
```
After:

    [27 lines not shown]
DeltaFile
+189-188clang/test/Sema/LifetimeSafety/safety.cpp
+74-74clang/test/Sema/LifetimeSafety/invalidations.cpp
+33-42clang/lib/Sema/SemaLifetimeSafety.h
+10-9clang/test/Sema/LifetimeSafety/safety-c.c
+7-7clang/test/Sema/LifetimeSafety/annotation-suggestions.cpp
+3-3clang/include/clang/Basic/DiagnosticSemaKinds.td
+316-3236 files

LLVM/project d39923cclang/include/clang/Basic TargetInfo.h, clang/lib/Basic/Targets M68k.cpp AArch64.cpp

clang: Change TargetInfo::setCPU to take StringRef (#205278)

The related APIs all use StringRef, so use StringRef for
consistency.

Co-Authored-By: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+2-3clang/lib/Basic/Targets/M68k.cpp
+1-3clang/lib/Basic/Targets/AArch64.cpp
+1-3clang/include/clang/Basic/TargetInfo.h
+2-2clang/lib/Basic/Targets/Sparc.h
+1-1clang/lib/Basic/Targets/Xtensa.h
+1-1clang/lib/Basic/Targets/AArch64.h
+8-1320 files not shown
+28-3326 files