LLVM/project a61acedlibunwind/test aix_vapi_unw_resume.pass.cpp

WIP: Avoid "volatile deprecation" woes
DeltaFile
+3-1libunwind/test/aix_vapi_unw_resume.pass.cpp
+3-11 files

LLVM/project 9e3a985libunwind/test aix_vapi_unw_resume.pass.cpp

Fix order-of-evaluation issue by introducing sequence point
DeltaFile
+2-1libunwind/test/aix_vapi_unw_resume.pass.cpp
+2-11 files

LLVM/project 742c791libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: clang-format
DeltaFile
+3-1libunwind/test/aix_vapi_unw_resume.pass.cpp
+3-11 files

LLVM/project 73872aflibunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob, tweaked: Add synthetic output when LLU not enabled
DeltaFile
+31-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+31-01 files

LLVM/project e6549e3libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: clang-format: tweaked to retain CHECK lines
DeltaFile
+7-5libunwind/test/aix_vapi_unw_resume.pass.cpp
+7-51 files

LLVM/project 79e67dblibunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob: Suppress diagnostic: pointer is not accessed
DeltaFile
+3-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+3-01 files

LLVM/project 50779a3libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob: Add positive CHECK lines for VAPI return address
DeltaFile
+2-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+2-01 files

LLVM/project 9b1e25elibunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob: Add CHECK lines for unw_resume calls
DeltaFile
+4-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+4-01 files

LLVM/project 1963641libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob: Add CHECK-NOT: VAPI
DeltaFile
+1-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+1-01 files

LLVM/project b59a21elibunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob corrected API calls for 32-bit; TODO: add CHECK lines
DeltaFile
+9-3libunwind/test/aix_vapi_unw_resume.pass.cpp
+9-31 files

LLVM/project 7a61c02libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob: Add CHECK-LABELs for unw_step calls; TODO: add CHECK lines
DeltaFile
+3-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+3-01 files

LLVM/project 53bde3dlibunwind/test aix_vapi_unw_resume.pass.cpp

WIP: IBM Bob added CHECK-LABEL lines for the fprintfs
DeltaFile
+5-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+5-01 files

LLVM/project 7c27c34libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: Skeleton for aix_vapi_unw_resume test
DeltaFile
+82-0libunwind/test/aix_vapi_unw_resume.pass.cpp
+82-01 files

LLVM/project 4a15836libunwind/test aix_vapi_unw_resume.pass.cpp

WIP: API calls added by IBM Bob; FIXME: adjust for 32-bit
DeltaFile
+24-4libunwind/test/aix_vapi_unw_resume.pass.cpp
+24-41 files

LLVM/project 2987984libc/include limits.yaml, libc/include/llvm-libc-macros limits-macros.h

[libc] Define NAME_MAX in limits.h (#209296)

Defines the POSIX macro `NAME_MAX`. Will be used by `realpath` tests.
DeltaFile
+8-2libc/include/llvm-libc-macros/limits-macros.h
+2-0libc/include/limits.yaml
+10-22 files

LLVM/project 22e1d56llvm/include/llvm/Transforms/Vectorize SLPVectorizer.h, llvm/lib/Transforms/Vectorize SLPVectorizer.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+824-17llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+315-0llvm/test/Transforms/SLPVectorizer/X86/runtime-alias-checks.ll
+41-10llvm/test/Transforms/SLPVectorizer/AArch64/loadi8.ll
+13-0llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
+1,193-274 files

LLVM/project 3287d11.github/workflows libcxx-pr-benchmark.yml

[libc++] Switch PR benchmark job to llvm-premerge-libcxx-runners (#209267)

Like #208928 but for the PR benchmarking job.
DeltaFile
+1-1.github/workflows/libcxx-pr-benchmark.yml
+1-11 files

LLVM/project b21edd4flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp check-omp-variant.cpp

[flang][OpenMP] Fix metadirective loop semantic checks

This is a follow-up to #207088.

Post-merge review feedback:

* Rename mayVariantBeSelected to MayVariantBeSelected and move it to
  the shared OpenMP semantic utilities so declare-variant checking can
  reuse it.
* Explain why a WHEN selector is recorded only when its modifier list
  contains exactly one element.
* Diagnose loop-associated variants that end a declaration-only
  program unit, such as a module with no execution part.

Additional correctness fixes:

* Handle consecutive metadirectives and modules or submodules with
  contained procedures without silently dropping an earlier
  loop-associated variant.

    [7 lines not shown]
DeltaFile
+123-0flang/test/Semantics/OpenMP/metadirective-loop-nest.f90
+76-0flang/lib/Semantics/openmp-utils.cpp
+16-41flang/lib/Semantics/check-omp-variant.cpp
+53-0flang/lib/Semantics/check-omp-structure.cpp
+15-0flang/test/Semantics/OpenMP/metadirective-loop-applicability.f90
+14-0flang/include/flang/Semantics/openmp-utils.h
+297-411 files not shown
+308-427 files

LLVM/project 76a21c8.github/workflows libcxx-benchmark-commit.yml

[libc++] Add a workflow to run libc++ benchmarks on historical commits (#208080)

This allows triggering a workflow that benchmarks a given commit on both
macOS and Linux, and optionally submits the results to a LNT instance
(by default lnt.llvm.org).

Triggering this workflow requires write access to the LLVM monorepo, so
the inputs can be trusted to a large extent.

The intent is for this workflow to be triggered semi-automatically by a
combination of scripts and manual intervention. For example, we can
reuse a script like libcxx/utils/ci/lnt/commit-watch to automatically
trigger the workflow on new commits, while also requesting new commits
when bisecting regressions, etc. Since workflows can be dispatched via
the Github API, this should easily be scriptable.

A few important improvements are currently missing from this workflow
and left for future patches:
- The ability to select only a subset of configurations to run
- Additional configurations, such as unstable ABI, hardening, etc.
DeltaFile
+110-0.github/workflows/libcxx-benchmark-commit.yml
+110-01 files

LLVM/project 41388b1.github/workflows libc-overlay-tests.yml

[libc] Add riscv64 qemu precommit CI for overlay mode. (#192816)
DeltaFile
+74-2.github/workflows/libc-overlay-tests.yml
+74-21 files

LLVM/project f3e4417llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNSubtarget.h

AMDGPU: Validate processor and features in TargetID parsing

TargetID::parseTargetIDString previously only checked that the string was
structurally a 4-component triple followed by a processor field. It
accepted unrecognized processors and silently ignored malformed or
unsupported feature modifiers. Work towards improving validation so in
the future clang's copy of TargetID can be replaced.

Co-authored-by: Claude (Opus 4.8)
DeltaFile
+127-46llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+149-0llvm/unittests/TargetParser/TargetParserTest.cpp
+20-2llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+7-3llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+5-3llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+3-1llvm/lib/Target/AMDGPU/GCNSubtarget.h
+311-551 files not shown
+312-567 files

LLVM/project 7753c44clang/lib/Driver/ToolChains CommonArgs.cpp

clang/AMDGPU: Remove StringSwitch over r600 aliases (#209256)

This will route to getArchNameR600 which should already handle
all the aliases.
DeltaFile
+4-13clang/lib/Driver/ToolChains/CommonArgs.cpp
+4-131 files

LLVM/project 612e7caclang/include/clang/ScalableStaticAnalysis/Analyses/OperatorNewDelete OperatorNewDeletePointers.h, clang/include/clang/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers TypeConstrainedPointers.h

[SSAF][NFC] Rename operator new/delete pointers analysis to TypeConstrainedPointers (#208577)

There will be more such pointer entities that must retain their type
during the clang-reforge transformation. Since they are extracted and
processed similarly, combining them into a single analysis simplifies
maintenance. Therefore, we are using TypeConstrainedPointers as the
umbrella name.
DeltaFile
+0-260clang/unittests/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointersExtractorTest.cpp
+260-0clang/unittests/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers/TypeConstrainedPointersExtractorTest.cpp
+0-258clang/lib/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointers.cpp
+256-0clang/lib/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers/TypeConstrainedPointers.cpp
+0-79clang/include/clang/ScalableStaticAnalysis/Analyses/OperatorNewDelete/OperatorNewDeletePointers.h
+75-0clang/include/clang/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers/TypeConstrainedPointers.h
+591-59721 files not shown
+885-89127 files

LLVM/project bec96fbclang/lib/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers TypeConstrainedPointers.cpp, clang/unittests/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers TypeConstrainedPointersExtractorTest.cpp

address comments
DeltaFile
+25-7clang/unittests/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers/TypeConstrainedPointersExtractorTest.cpp
+4-5clang/lib/ScalableStaticAnalysis/Analyses/TypeConstrainedPointers/TypeConstrainedPointers.cpp
+29-122 files

LLVM/project 6bbd5a1libcxx/test/tools/clang_tidy_checks header_exportable_declarations.cpp abi_tag_on_virtual.cpp

[libcxx] Avoid including deprecated ClangTidyModuleRegistry.h (#208945)

Deprecated in 1bcf74006bcf528d14377173dba459759d35c961. Causes warnings
during compilation and will presumably become an error.
DeltaFile
+6-1libcxx/test/tools/clang_tidy_checks/header_exportable_declarations.cpp
+6-1libcxx/test/tools/clang_tidy_checks/abi_tag_on_virtual.cpp
+6-1libcxx/test/tools/clang_tidy_checks/empty_namespaces.cpp
+6-1libcxx/test/tools/clang_tidy_checks/hide_from_abi.cpp
+6-1libcxx/test/tools/clang_tidy_checks/robust_against_adl.cpp
+6-1libcxx/test/tools/clang_tidy_checks/robust_against_operator_ampersand.cpp
+36-62 files not shown
+46-88 files

LLVM/project eb3275allvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 sve-fixed-length-fp-extend-trunc-bf16.ll

[AArch64] Lower fixed width bf16 fpext (#209194)

This was previously hitting an error with a illegal
FP_EXTEND_MERGE_PASSTHRU being created but not selectable. Split
bf16->f64 fpext into bf16->f32 and f32->f64 fpext as we do elsewhere
(the first step has no rounding).

The codegen for loads is pretty inefficient because the load gets
expanded / scalarized.
DeltaFile
+994-0llvm/test/CodeGen/AArch64/sve-fixed-length-fp-extend-trunc-bf16.ll
+9-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+1,003-12 files

LLVM/project 7dcaa71libc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+35-2libc/test/src/stdlib/realpath_test.cpp
+17-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/src/stdlib/linux/CMakeLists.txt
+2-0libc/test/src/stdlib/CMakeLists.txt
+56-34 files

LLVM/project 3c611b3libc/src/__support/CPP CMakeLists.txt, libc/src/stdlib/linux realpath.cpp CMakeLists.txt

[libc][realpath] Validate path components.

This PR updates `realpath` to validate paths and return `ENOTDIR` or `ENOENT` according to https://pubs.opengroup.org/onlinepubs/9699919799/functions/realpath.html.

This PR also bumps the memory limit in `HermeticTestUtils.cpp`. The realpath unit tests allocate quite a few strings. Since memory in hermetic tests is never free'd, the unit test quickly reaches the limit.
DeltaFile
+245-13libc/test/src/stdlib/realpath_test.cpp
+34-0libc/src/stdlib/linux/realpath.cpp
+10-0libc/test/src/stdlib/CMakeLists.txt
+5-0libc/src/stdlib/linux/CMakeLists.txt
+1-1libc/test/UnitTest/HermeticTestUtils.cpp
+1-1libc/src/__support/CPP/CMakeLists.txt
+296-156 files

LLVM/project 6cc64d3libc/src/__support/CPP string.h CMakeLists.txt, libc/test/src/__support/CPP string_test.cpp

[libc][cpp::string] Don't allocate a string in operator=(string_view)

Currently, `opreator=(string_view)` allocates a temporary string: https://github.com/llvm/llvm-project/blob/67ebc4b221c3e94028b33004cd5cd08deee95048/libc/src/__support/CPP/string.h#L106-L108.

This PR updates `=` and `+=` to better support `string_view`. It also adds debug checks so that `cpp::string` makes it clear it does not support aliasing (e.g. `s = s` would zero out the string).
DeltaFile
+25-5libc/src/__support/CPP/string.h
+6-0libc/test/src/__support/CPP/string_test.cpp
+2-0libc/src/__support/CPP/CMakeLists.txt
+2-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+35-54 files

LLVM/project 51aa835clang/include/clang/Options Options.td, clang/lib/CodeGen CGOpenMPRuntimeGPU.cpp

[offload][OpenMP] Add atomic cross-team reductions

Regular cross-team reductions have two phases: the intra-team reduction
and the inter-team reduction. Atomic cross-team reductions replace the
second phase with a atomic instruction which is used by the main thread
of each team to directly fold the result of the intra-team reduction
into the final result. Since this requires a combination of "data type"
and "combine operation" for which an atomic instruction is available,
only some (but very common) reductions can be transformed to atomic
reductions. In cases where multiple reductions are performed on the same
construct, the atomic path is only taken if all reductions can be
transformed. Otherwise, we fall back to the regular cross-team reduction
using a buffer with per-team slots. This is not strictly necessary, but
hybrid reductions would induce more complexity with questionable
benefit.

Selecting an atomic path might not be the best option for every
situation, which is why it is not enabled by default. Instead, it can be
enabled via `-fopenmp-target-fast-reduction`. This flag has already been

    [20 lines not shown]
DeltaFile
+107-2clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
+90-0clang/test/OpenMP/target_teams_fast_reduction_codegen.cpp
+64-0offload/test/offloading/xteam_atomic_reduction_usm.cpp
+32-0llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+18-0clang/test/Driver/openmp-target-fast-reduction-flag.c
+9-0clang/include/clang/Options/Options.td
+320-26 files not shown
+340-212 files