LLVM/project 26a5129clang/include/clang/Frontend FrontendActions.h CompilerInstance.h, clang/lib/Frontend CompilerInstance.cpp FrontendActions.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+11-9clang/lib/Frontend/CompilerInstance.cpp
+12-1clang/include/clang/Frontend/FrontendActions.h
+8-4clang/lib/Frontend/FrontendActions.cpp
+4-3clang/include/clang/Frontend/CompilerInstance.h
+35-174 files

LLVM/project 5e9f5c5flang/lib/Semantics resolve-directives.cpp

[flang][OpenMP] Clarify comment in resolve-directives.cpp, NFC (#198860)
DeltaFile
+10-8flang/lib/Semantics/resolve-directives.cpp
+10-81 files

LLVM/project 8311230clang/test/OpenMP thread_limit_gpu.c thread_limit_nvptx.c, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[llvm][OpenMP] Add option to disable default max threads adjustment (#198719)

This commit adds the option
`-openmp-ir-builder-use-default-max-thread=<boolean-value>` to
enable or disable the use of a default max threads in OpenMPIRBuilder
when no max threads constant is provided. The option is enabled by
default, thus maintaining the same behavior as it is currently.

This flag is useful to avoid limiting the number of threads that an
OpenMP target region can run with when no `thread_limit` or
`num_threads` (in a nested parallel region) are specified. This flag may
be used when recording a kernel to allow replaying it later with a
higher number of threads (e.g., reaching the maximum thread limit
supported by the device).
DeltaFile
+24-5clang/test/OpenMP/thread_limit_gpu.c
+17-9clang/test/OpenMP/thread_limit_nvptx.c
+7-3llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+48-173 files

LLVM/project fadbc3fllvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, llvm/unittests/Frontend OpenMPIRBuilderTest.cpp

[OpenMP][OMPIRBuilder] Avoid querying SmallPtrSet during removal (#198690)

openmp-cli-fuse02.mlir can intermittently leave behind a dead block
after loop fusion, causing LLVM IR verification to fail.
(https://github.com/llvm/llvm-project/pull/197637#issuecomment-4497502486)

This happened because `removeUnusedBlocksFromParent` queried
`BBsToErase` while using `SmallPtrSet::remove_if` on the same set, which
made the result depend on the set's internal mutation order during
removal.

This patch tracks candidate blocks by index with `SmallBitVector`
instead of mutating and querying the same `SmallPtrSet`. This also
preserves the original `BBs` order when collecting the final dead
blocks.

---

The original PR was created with assistance from Copilot. The later

    [2 lines not shown]
DeltaFile
+54-0llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+33-17llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+87-172 files

LLVM/project 1bbecc6llvm/lib/Target/PowerPC PPCInstrVSX.td PPCInstr64Bit.td

[PowerPC][NFC] Change arguments of PPCPostRAExpPseudo/PseudoXFormMemOp

The assembler string of the pseudo is almost always a # followed by
the name of the pseudo. A good part of the pseudos does not have a
pattern. Changing the order of arguments asmstr and pattern
in PPCPostRAExpPseudo and PseudoXFormMemOp, and assigning default
values, reduces repetitions.
DeltaFile
+4-19llvm/lib/Target/PowerPC/PPCInstrVSX.td
+4-7llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+5-3llvm/lib/Target/PowerPC/PPCInstrFormats.td
+4-4llvm/lib/Target/PowerPC/PPCInstrInfo.td
+3-4llvm/lib/Target/PowerPC/PPCInstrMMA.td
+20-375 files

LLVM/project 9edd0d8bolt/test/runtime relative-vftable.cpp

[bolt][test] Use C++ frontend for building C++ test (#198856)

The C frontend executable will fail if there's any C++-specific options from the environment.
DeltaFile
+1-1bolt/test/runtime/relative-vftable.cpp
+1-11 files

LLVM/project 24b8bb1mlir/lib/Dialect/Vector/Transforms VectorDropLeadUnitDim.cpp VectorTransforms.cpp, mlir/test/Dialect/Vector vector-dropleadunitdim-transforms.mlir drop-unit-dims-with-shape-cast.mlir

[mlir][vector] Migrate drop-lead-unit-dim to shape_cast (#196206)

Post-merge discussion on #195686 led to the conclusion that we should
change the behavior of drealeadunitdim to use shape_cast instead of
extracts and broadcasts since those are now the canonical form of such
unit-dimension striping. This commit implements that change.

The one exception is that vector contractions where the accumulator is
reduced to a scalar still use extract/broadcast. Said contract handling
also now omits any vector.transpose emissions since those are all
order-preserving and will fold into shape_casts.

The PR adds tests to ensure that scalable dimensions function correctly,
per previous PR comments. They should already have worked, but they
weren't tested.

AI: Codex 5.5 did most of the work on this one.
DeltaFile
+272-176mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp
+281-149mlir/test/Dialect/Vector/vector-dropleadunitdim-transforms.mlir
+20-18mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp
+23-7mlir/test/Dialect/Vector/drop-unit-dims-with-shape-cast.mlir
+8-6mlir/test/Dialect/Vector/vector-transforms.mlir
+604-3565 files

LLVM/project c2acca2lldb/source/Plugins/Process/Windows/Common DebuggerThread.cpp

[NFC][lldb][windows] extract ConvertNtDevicePathToDosPath method (#198794)

This patch extracts the logic for converting an NT path to a DOS path.

This is a prelude to https://github.com/llvm/llvm-project/pull/198795.
DeltaFile
+32-30lldb/source/Plugins/Process/Windows/Common/DebuggerThread.cpp
+32-301 files

LLVM/project a7da854lldb/test/Shell/Target dependent-modules-nodupe-windows.test

[lldb][test] Make dependent-modules-nodupe-windows case-insensitive (#198807)

Running the test in containers returns `KERNEL32.DLL` instead of
`kernel32.dll`, which causes the test to fail. Both names point to the
same file. Windows path comparison is case-insensitive. The test is
asserting an OS-level behavior, not a casing convention, so it should
not be case-sensitive.
DeltaFile
+1-1lldb/test/Shell/Target/dependent-modules-nodupe-windows.test
+1-11 files

LLVM/project 2c1847e.github/workflows/containers/github-action-ci-windows Dockerfile

[docker][windows] install make in Dockerfile (#198814)

The lldb-api test suite builds each test's inferior via GNU make. The
current Windows CI container (`ghcr.io/llvm/ci-windows-2022:latest`)
does not install make, so LLDB's CMake configure step ends up with
`LLDB_DEFAULT_TEST_MAKE-NOTFOUND` and every lldb-api test reports
`UNRESOLVED`.
    
This patch adds a step in the Windows Dockerfile to install make with
choco.
DeltaFile
+2-1.github/workflows/containers/github-action-ci-windows/Dockerfile
+2-11 files

LLVM/project fd3e453compiler-rt/test/msan release_origin.c

[test][msan] Update rss_limit for release_origin.c (#196565)

This fixes test failures on aarch64.

Fixes #171209
DeltaFile
+1-1compiler-rt/test/msan/release_origin.c
+1-11 files

LLVM/project accb3ccflang-rt/lib/runtime iso_fortran_env_impl.cpp, flang/test/Integration/OpenMP atomic-compare.f90

Merge branch 'main' into users/ilovepi/instrumentor-nondet
DeltaFile
+0-517mlir/test/Dialect/OpenMP/invalid.mlir
+0-359mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+59-230llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+221-47llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
+253-0flang-rt/lib/runtime/iso_fortran_env_impl.cpp
+0-250flang/test/Integration/OpenMP/atomic-compare.f90
+533-1,403116 files not shown
+2,510-3,066122 files

LLVM/project a169ae2lldb/packages/Python/lldbsuite/test/make Makefile.rules

[lldb] Prioritize the MAKE_NO_DEBUG_INFO flag (#198801)

Some tests require an executable with no debug information. When
`lldb-dotest` is run with `--dwarf-version`, that flag currently takes
precedence over the debug info type specified in the test. This is
incorrect when the test explicitly expects the executable to have no
debug information.

Ensure `MAKE_NO_DEBUG_INFO` takes priority over `--dwarf-version` so
that tests requiring stripped executables behave correctly regardless of
how the test suite is invoked.
DeltaFile
+7-4lldb/packages/Python/lldbsuite/test/make/Makefile.rules
+7-41 files

LLVM/project 9b2a452clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest JSONFormatTest.cpp

Open the JSON files as text (#196617)

Open the JSON files as text so z/OS gets the correct encoding for the
file.
DeltaFile
+2-2clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/JSONFormatTest.cpp
+2-21 files

LLVM/project 62be92flldb/source/Target TargetProperties.td

[lldb] Fix data race on shared global ProcessProperties callback (#197980)

ProcessProperties::ProcessProperties was installing a per-process
value-changed callback on ePropertyDisableLangRuntimeUnwindPlans. The
property was declared Global in TargetProperties.td, so
OptionValueProperties::CreateLocalCopy shared the underlying OptionValue
across every ProcessProperties. Every Process constructor therefore
wrote into the same std::function slot, racing with concurrent
constructors and silently clobbering any earlier Process's callback.

Found by ThreadSanitizer as part of #197792.
DeltaFile
+0-1lldb/source/Target/TargetProperties.td
+0-11 files

LLVM/project 14f871allvm/test/tools/UpdateTestChecks/update_test_checks/Inputs difile_absolute_filenames.ll.expected difile_absolute_filenames.ll, llvm/utils/UpdateTestChecks common.py

update_test_checks: fix DIFile filename relaxation (#198382)

In e78b763568e47e685926614195c3075afa35668c (#135692) the matcher for
the `directory:` field requires a non-empty directory, which isn't
guaranteed. Relax it to accept any string, including the empty string.

Change-Id: Ie6d793f7abdbafd3d2faa29379919e68e846afe7
DeltaFile
+68-35llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/difile_absolute_filenames.ll.expected
+38-21llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/difile_absolute_filenames.ll
+1-1llvm/utils/UpdateTestChecks/common.py
+107-573 files

LLVM/project 63d3371llvm/lib/Target/AArch64 AArch64PointerAuth.cpp, llvm/test/CodeGen/AArch64 arm64e-tail-call-autib.ll

[arm64e][cfi] .cfi_b_key_frame is irrelevant for Mach-O platforms (#198660)

We always sign with the B-Key anyway, and the unwinder behaves the same whether the directive is present. Better to avoid emitting it in the first place.
DeltaFile
+3-5llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
+0-2llvm/test/CodeGen/AArch64/arm64e-tail-call-autib.ll
+3-72 files

LLVM/project 8c129e1llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 fneg.ll fabs.ll

[AArch64] Use fp16 FNEG and FABS for bf16. (#198653)

These operations are bitwise and can be used for bf16 fneg and fabs as
equally as they can be used for fp16.
DeltaFile
+55-29llvm/test/CodeGen/AArch64/fneg.ll
+51-25llvm/test/CodeGen/AArch64/fabs.ll
+41-9llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+18-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+6-10llvm/test/CodeGen/AArch64/fixed-length-bf16-arith.ll
+1-2llvm/test/CodeGen/AArch64/partial-reduction-sub-fp.ll
+172-756 files

LLVM/project 064e529compiler-rt/lib/rtsan rtsan_interceptors_posix.cpp

[rtsan] Fix REAL call for preadv64 (#198563)

Seemed to just be a typo matching the name of the intercepted function
DeltaFile
+1-1compiler-rt/lib/rtsan/rtsan_interceptors_posix.cpp
+1-11 files

LLVM/project 2b26f10flang/lib/Semantics resolve-names.cpp

[flang][OpenMP] Remove unnecessary code from OmpVisitor, NFC
DeltaFile
+21-66flang/lib/Semantics/resolve-names.cpp
+21-661 files

LLVM/project 28d6673flang/test/Integration/OpenMP atomic-compare.f90, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

Revert "[Flang] [OpenMP] atomic compare (#184761)" (#198848)

This reverts commit 91467766a8afb52439619163828c5f6816ddd550.

This was causing tests to be quite flaky. See #198776.
DeltaFile
+0-517mlir/test/Dialect/OpenMP/invalid.mlir
+0-359mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+59-230llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+0-250flang/test/Integration/OpenMP/atomic-compare.f90
+0-209mlir/test/Target/LLVMIR/openmp-llvm.mlir
+0-171mlir/include/mlir/Dialect/OpenACCMPCommon/Interfaces/AtomicInterfaces.td
+59-1,73613 files not shown
+128-2,28319 files

LLVM/project 024c97blibcxx/include/__functional function.h

Add missing annotatinos for Apple platforms

These seemed to be missed in #193045.
DeltaFile
+6-0libcxx/include/__functional/function.h
+6-01 files

LLVM/project 01c2cd3flang/lib/Lower/Support Utils.cpp, flang/test/Lower/OpenMP lastprivate-equivalence.f90

[flang][OpenMP] Fix EQUIVALENCE variable privatization in OpenMP (#197726)

Fixes #197553

EQUIVALENCE aliases are lowered with `fir.ptr` addresses
(`castAliasToPointer` in ConvertVariable.cpp) to inform alias analysis.
However, `privatizeSymbol()` in Utils.cpp treated all `fir::PointerType`
values as true Fortran POINTERs, skipping the `unwrapRefType` that
computes the correct allocation type. For arrays, this caused the
privatizer to allocate pointer-sized storage instead of the full array,
resulting in stack buffer overflows at runtime.

The fix adds a `!semantics::IsPointer()` check so that only true Fortran
POINTERs preserve the `fir.ptr` wrapping. EQUIVALENCE aliases are
correctly unwrapped to their underlying type.

**Changes:**
- flang/lib/Lower/Support/Utils.cpp: Gate the `PointerType` guard on
`semantics::IsPointer` to distinguish true POINTERs from EQUIVALENCE

    [6 lines not shown]
DeltaFile
+74-0flang/test/Lower/OpenMP/lastprivate-equivalence.f90
+10-13flang/test/Lower/OpenMP/DelayedPrivatization/equivalence.f90
+4-1flang/lib/Lower/Support/Utils.cpp
+88-143 files

LLVM/project d28e47cllvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU permute.ll

[AMDGPU] Fix matchPERM byte tracker for SRA past operand width (#198708)

Bytes past the operand are 0 for SRL but the sign bit for SRA. The old
code treated both as 0, so v_perm_b32 picked the wrong byte for SRA

Example:
`ashr x, 24` keeps only x's byte 0 in the result. The upper bytes are
copies of x's sign bit, not bytes of x. The matcher used to map them
back to bytes of x, producing a perm mask that ignored the sign extend
DeltaFile
+39-0llvm/test/CodeGen/AMDGPU/permute.ll
+12-10llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+51-102 files

LLVM/project 42cc9b5llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 alias_mask.ll sve-fixed-length-masked-expandloads.ll

[AArch64] Use ADDP tree for v16i8 to i16 bitmask extraction (#192974)

```
Before:
    ext  v1.16b, v0.16b, v0.16b, #8
    zip1 v0.16b, v0.16b, v1.16b
    addv h0, v0.8h
    fmov w0, s0

After:
    addp v0.16b, v0.16b, v0.16b
    addp v0.16b, v0.16b, v0.16b
    addp v0.16b, v0.16b, v0.16b
    umov w0, v0.h[0]
```

The existing lowering in vectorToScalarBitmask for v16i8 used an
EXT+ZIP1+ADDV sequence to pack the per-lane bits into an i16. The
horizontal ADDV is expensive on some microarchitectures and forces an

    [13 lines not shown]
DeltaFile
+58-57llvm/test/CodeGen/AArch64/alias_mask.ll
+49-49llvm/test/CodeGen/AArch64/sve-fixed-length-masked-expandloads.ll
+16-16llvm/test/CodeGen/AArch64/dag-combine-setcc.ll
+12-12llvm/test/CodeGen/AArch64/fixed_masked_deinterleaved_loads.ll
+12-12llvm/test/CodeGen/AArch64/fixed_masked_interleaved_stores.ll
+13-10llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+160-1563 files not shown
+180-1769 files

LLVM/project b180ecallvm/lib/Frontend/OpenMP OMPIRBuilder.cpp, llvm/unittests/Frontend OpenMPIRBuilderTest.cpp

Use SmallBitVector for deterministic dead-block tracking (authored by slinder1)

Track candidate blocks by stable BB indices instead of mutating pointer
sets, avoiding SmallPtrSet tombstone/rehash/iteration-order issues while
preserving original BB order for deletion.
DeltaFile
+33-30llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+3-0llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp
+36-302 files

LLVM/project 61750f4libc/src/stdlib mblen.cpp mblen.h, libc/src/wchar mblen.cpp mblen.h

[libc] move mblen to stdlib (#198642)

Move mblen from wchar to stdlib to conform with C standard. Also update
headers to match new style.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+109-0libc/test/src/stdlib/mblen_test.cpp
+0-104libc/test/src/wchar/mblen_test.cpp
+40-0libc/src/stdlib/mblen.cpp
+0-35libc/src/wchar/mblen.cpp
+26-0libc/src/stdlib/mblen.h
+0-21libc/src/wchar/mblen.h
+175-1607 files not shown
+210-19313 files

LLVM/project 57712b1.ci generate_test_report_lib.py generate_test_report_lib_test.py

[CI] Successful build and no tests running is now a notification (#198684)

check-libc now uses llvm-lit to run tests instead of running the
unittests directly through ninja. This means there should not be any
cases in tree where the build could succeed but we do not pick up any
tests as running. Still pass the build in this case because if
everything passes with exit code 0 it is wrong not to, but make a note
to the user that this is unexpected.
DeltaFile
+5-1.ci/generate_test_report_lib.py
+2-2.ci/generate_test_report_lib_test.py
+7-32 files

LLVM/project 8dc3377llvm/test/CodeGen/AMDGPU/GlobalISel legalize-sextload-zextload-s16-true16.mir legalize-sextload-s16-true16.mir

PR feedback
DeltaFile
+0-376llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sextload-zextload-s16-true16.mir
+87-0llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sextload-s16-true16.mir
+5-1llvm/test/CodeGen/AMDGPU/GlobalISel/load-d16.ll
+92-3773 files

LLVM/project f00ec3fclang/include/clang/Analysis/Analyses/LifetimeSafety LoanPropagation.h, clang/lib/Analysis/LifetimeSafety LoanPropagation.cpp

[NFC][LifetimeSafety]: Track assignment history within a single CFGBlock (#196075)

## Summary

Tracking assignment history allows us to backtrack and provide more
informative error messages, helping users better understand the root
cause.

As discussed in
https://github.com/llvm/llvm-project/pull/188467#issuecomment-4359071778,
I am splitting the original #188467 into smaller parts. This PR submits
the core logic: performing a reverse search for assignment history
within a single CFG block.

A simple unit test has been added to verify the basic functionality of
the algorithm.

## Details


    [7 lines not shown]
DeltaFile
+123-0clang/unittests/Analysis/LifetimeSafetyTest.cpp
+42-0clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
+10-0clang/include/clang/Analysis/Analyses/LifetimeSafety/LoanPropagation.h
+175-03 files