LLVM/project a9927a9llvm/lib/Target/WebAssembly WebAssemblyCodeGenPassBuilder.cpp WebAssemblyReduceToAnyAllTrue.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+256-0llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+125-104llvm/lib/Target/WebAssembly/WebAssemblyReduceToAnyAllTrue.cpp
+214-0llvm/lib/Target/WebAssembly/WebAssemblyCoalesceFeaturesAndStripAtomics.cpp
+23-188llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+108-99llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+109-17llvm/lib/Target/WebAssembly/WebAssembly.h
+835-40812 files not shown
+1,116-50018 files

LLVM/project 7495d4ellvm/lib/Target/WebAssembly WebAssemblyCodeGenPassBuilder.cpp WebAssemblyReduceToAnyAllTrue.cpp

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+256-0llvm/lib/Target/WebAssembly/WebAssemblyCodeGenPassBuilder.cpp
+125-104llvm/lib/Target/WebAssembly/WebAssemblyReduceToAnyAllTrue.cpp
+214-0llvm/lib/Target/WebAssembly/WebAssemblyCoalesceFeaturesAndStripAtomics.cpp
+108-99llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp
+20-185llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
+99-15llvm/lib/Target/WebAssembly/WebAssembly.h
+822-40311 files not shown
+1,079-48817 files

LLVM/project cc926b0libc/test/UnitTest HermeticTestUtils.cpp, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath][test] Create test files/directories

Follow-up PRs will add path validation etc to `realpath`, which will require paths to exist in the filesystem.
DeltaFile
+233-13libc/test/src/stdlib/realpath_test.cpp
+10-0libc/test/src/stdlib/CMakeLists.txt
+1-1libc/test/UnitTest/HermeticTestUtils.cpp
+244-143 files

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

[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
+49-0libc/test/src/stdlib/realpath_test.cpp
+34-0libc/src/stdlib/linux/realpath.cpp
+5-0libc/src/stdlib/linux/CMakeLists.txt
+88-03 files

LLVM/project 910c1ealibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+87-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+106-44 files

LLVM/project 67f5b53lld/test/ELF retain-symbols-file.s

[ELF,test] Improve retain-symbols-file.s (#209366)
DeltaFile
+61-41lld/test/ELF/retain-symbols-file.s
+61-411 files

LLVM/project 81752bdlibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath] Support relative paths
DeltaFile
+87-3libc/test/src/stdlib/realpath_test.cpp
+16-1libc/src/stdlib/linux/realpath.cpp
+2-0libc/test/src/stdlib/CMakeLists.txt
+1-0libc/src/stdlib/linux/CMakeLists.txt
+106-44 files

LLVM/project 7246ceclibc/src/stdlib/linux realpath.cpp CMakeLists.txt, libc/test/src/stdlib realpath_test.cpp

[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
+49-0libc/test/src/stdlib/realpath_test.cpp
+34-0libc/src/stdlib/linux/realpath.cpp
+5-0libc/src/stdlib/linux/CMakeLists.txt
+88-03 files

LLVM/project 8b852dalibc/test/UnitTest HermeticTestUtils.cpp, libc/test/src/stdlib realpath_test.cpp CMakeLists.txt

[libc][realpath][test] Create test files/directories

Follow-up PRs will add path validation etc to `realpath`, which will require paths to exist in the filesystem.
DeltaFile
+229-13libc/test/src/stdlib/realpath_test.cpp
+11-2libc/test/src/stdlib/CMakeLists.txt
+1-1libc/test/UnitTest/HermeticTestUtils.cpp
+241-163 files

LLVM/project b959f78llvm/utils/lit/lit/builtin_commands cat.py

Add text file support for z/OS back in (#209259)

Support for auto conversion of text files was added to cat.py in
https://github.com/llvm/llvm-project/pull/90128. That was accidently
removed in https://github.com/llvm/llvm-project/pull/204711 while
removing some old win32 code. This adds the z/OS support back in.
DeltaFile
+23-8llvm/utils/lit/lit/builtin_commands/cat.py
+23-81 files

LLVM/project b15f932flang/test/Evaluate fold-kind-logical.f90 fold-kind-zero-size.f90, flang/test/Lower/HLFIR array-ctor-character-kind.f90

[flang] Add kind-preservation regression tests (#208760)

These tests pin currently-correct behaviors where the KIND type
parameter of a result must be preserved by constant folding, semantics,
and lowering. They all pass at head; their purpose is to guard against
silent kind loss during future refactoring of the Evaluate library's
type-parameterized machinery (see the discussion on PR #206907, where an
experimental rewrite passed check-flang while dropping kinds in several
places).

Folded LOGICAL operations: `.NOT./.AND./.OR./.EQV./.NEQV.` keep their
operand kind; ANY/ALL/PARITY and logical DOT_PRODUCT results have the
MASK/argument kind (F2023 16.9.14/16.9.16/16.9.148), including for empty
masks where there is no element value to take a kind from; MERGE and
TRANSFER keep the TSOURCE/MOLD kind; STORAGE_SIZE of folded
non-default-kind logicals folds to the right value; the default BOUNDARY
fill element of a folded EOSHIFT has the array's kind; relational
results are default logical regardless of operand kinds; and generic
resolution over LOGICAL kinds is unchanged by folding

    [18 lines not shown]
DeltaFile
+43-0flang/test/Evaluate/fold-kind-logical.f90
+32-0flang/test/Lower/HLFIR/array-ctor-character-kind.f90
+29-0flang/test/Semantics/modfile84.F90
+28-0flang/test/Evaluate/fold-kind-zero-size.f90
+14-0flang/test/Evaluate/fold-kind-substring.f90
+13-0flang/test/Semantics/substring-literal-kind.f90
+159-01 files not shown
+172-07 files

LLVM/project 368d765libunwind/test .clang-format

[libunwind][test] Add .clang-format

Borrow from `libcxx/test/.clang-format` to avoid `clang-format`
suggestions that are incompatible with `FileCheck`.
DeltaFile
+4-0libunwind/test/.clang-format
+4-01 files

LLVM/project 38cf724libcxx/utils/libcxx/test format.py

Apply diff from `darker`
DeltaFile
+4-1libcxx/utils/libcxx/test/format.py
+4-11 files

LLVM/project 795a5a9flang/lib/Semantics resolve-names.cpp, flang/test/Lower/CUDA cuda-implicit-managed-alloc.cuf

[flang][cuda] Implicitly attribute allocatables/pointers under -gpu=unified (#209292)

When `-gpu=unified` is in effect, allocatables and pointers with no
explicit CUDA data attribute were left with no data attribute, and were allocated
as ordinary host memory. Under unified memory, such objects must be
reachable from the device; leaving them as plain host allocations makes device kernels
fault on systems that do not provide transparent host-memory access.

The existing code here already assigned `Managed` implicitly under
`-gpu=managed` (when CUDA Fortran is enabled). This extends that handling to
`-gpu=unified`: prefer the `Unified` attribute where it is legal (host subprogram, main
program, or derived-type component) so generic resolution still selects the unified
specific, and fall back to `Managed` elsewhere (module scope, device
subprograms). Both attributes route allocation through the same managed
allocator, so this keeps the allocation device-accessible while avoiding
spurious `ATTRIBUTES(UNIFIED)` legality errors.

The attribution stays gated on CUDA Fortran being enabled, preserving
the existing behavior for non-CUDA-Fortran translation units.
DeltaFile
+50-22flang/lib/Semantics/resolve-names.cpp
+54-0flang/test/Lower/CUDA/cuda-implicit-managed-alloc.cuf
+104-222 files

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

Update test to split CHECK lines between debug and non-debug
DeltaFile
+14-12libunwind/test/aix_vapi_unw_resume.pass.cpp
+14-121 files

LLVM/project 514ce2clibunwind/test aix_vapi_unw_resume.pass.cpp CMakeLists.txt, libunwind/test/configs cmake-bridge.cfg.in

IBM Bob: Add LIT feature for assertions-build; use FileCheck conditionally
DeltaFile
+2-1libunwind/test/aix_vapi_unw_resume.pass.cpp
+2-0libunwind/test/configs/cmake-bridge.cfg.in
+1-0libunwind/test/CMakeLists.txt
+5-13 files

LLVM/project 5b3fbf8lldb/include/lldb lldb-enumerations.h, lldb/source/Core PluginManager.cpp

[lldb] Expand ScriptedExtension coverage across scripted Python interfaces (NFC) (#209307)
DeltaFile
+14-3lldb/source/Core/PluginManager.cpp
+15-0lldb/include/lldb/lldb-enumerations.h
+13-0lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedFramePythonInterface.cpp
+12-1lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedFramePythonInterface.h
+12-1lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPythonInterface.h
+12-0lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedThreadPythonInterface.cpp
+78-512 files not shown
+114-1318 files

LLVM/project 0c19355llvm/lib/Target/Hexagon HexagonPatternsHVX.td, llvm/test/CodeGen/Hexagon/autohvx conv-fp-fp.ll

[Hexagon] Fix fpround fp32 -> fp16 pattern (#199704)

The pattern was passing hi and lo in the wrong order to `vcvt` causing
the final output after `vdeal` to be incorrect.
DeltaFile
+1-1llvm/lib/Target/Hexagon/HexagonPatternsHVX.td
+1-1llvm/test/CodeGen/Hexagon/autohvx/conv-fp-fp.ll
+2-22 files

LLVM/project d6bf3d9libcxx/test/selftest if-else.sh.cpp

Add LIT test
DeltaFile
+11-0libcxx/test/selftest/if-else.sh.cpp
+11-01 files

LLVM/project a3ceea1libcxx/utils/libcxx/test format.py

[libcxx][utils] Fix `%if` substitution
DeltaFile
+2-1libcxx/utils/libcxx/test/format.py
+2-11 files

LLVM/project 6e5c97dorc-rt/include/orc-rt AllocAction.h, orc-rt/lib/executor AllocAction.cpp SimpleNativeMemoryMap.cpp

[orc-rt] Hoist run-alloc-actions functions, add error reporting. (#209356)

Hoist runFinalizeActions and runDeallocActions into AllocAction.h and
turn them into function templates with a ReportErrorFn argument that
enables error reporting. This is used to report errors from dealloc
actions.

Update SimpleNativeMemoryMap to direct such errors to the Session via
ReportErrorsViaSession.

Add unit tests covering the new error-reporting paths.
DeltaFile
+115-16orc-rt/test/unit/AllocActionTest.cpp
+0-55orc-rt/lib/executor/AllocAction.cpp
+37-2orc-rt/include/orc-rt/AllocAction.h
+16-0orc-rt/test/unit/CommonTestUtils.h
+5-4orc-rt/lib/executor/SimpleNativeMemoryMap.cpp
+0-1orc-rt/lib/executor/CMakeLists.txt
+173-786 files

LLVM/project e2c8fa0llvm/lib/Object ArchiveWriter.cpp, llvm/test/tools/llvm-ar zos-write.test

[SystemZ][z/OS] Add z/OS archive writing support (#200087)

This patch implement z/OS archive writing in ArchiveWriter and adds the
option `llvm-ar --format=zos`.

Moreover, This patch teaches `llvm-ar` to emit z/OS-compatible archives
by:
- Detecting GOFF object files as z/OS members
- Writing z/OS member headers and archive magic
- Converting archive headers and symbol-name string tables to EBCDIC
- Emitting z/OS symbol table entries
- Using EBCDIC newline padding bytes
- Add a z/OS-specific workaround for empty symbol tables by emitting a
dummy blank symbol to satisfy binder requirements.
DeltaFile
+92-6llvm/lib/Object/ArchiveWriter.cpp
+72-0llvm/test/tools/llvm-ar/zos-write.test
+17-1llvm/tools/llvm-ar/llvm-ar.cpp
+181-73 files

LLVM/project 906e54allvm/lib/Target/AMDGPU SIISelLowering.cpp SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU global-atomicrmw-fadd.ll atomic_optimizations_global_pointer.ll

Implement in legalizer
DeltaFile
+227-453llvm/test/CodeGen/AMDGPU/global-atomicrmw-fadd.ll
+89-180llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
+24-56llvm/test/CodeGen/AMDGPU/bf16.ll
+31-3llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+0-13llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+1-11llvm/lib/Target/AMDGPU/SIInstructions.td
+372-7163 files not shown
+379-7249 files

LLVM/project 4058610llvm/lib/Target/Hexagon HexagonTargetMachine.cpp

[Hexagon] Register MachineKCFILegacy pass in LLVMInitializeHexagonTarget (#209245)

Hexagon's target-init function never called
initializeMachineKCFILegacyPass(PR), unlike X86, ARM, AArch64, and
RISCV. Since PassRegistry is process-wide and each target's init
function registers passes as a side effect when linked into the same
binary, whether test/CodeGen/Hexagon/kcfi.ll passed depended on whether
some other target providing that registration was also built into llc,
rather than on Hexagon's own configuration.
DeltaFile
+2-0llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp
+2-01 files

LLVM/project b218156clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage UnsafeBufferUsageAnalysis.cpp, clang/lib/ScalableStaticAnalysis/Core/WholeProgramAnalysis AnalysisDriver.cpp

[SSAF] Filter out type-constrained pointers from all reachable unsafe pointers

Integrate the TypeConstrainedPointers analysis results into
UnsafeBufferReachableAnalysis.  The final result is filtered with
type-constrainted pointers.

The pointer flow graph is untouched. Removing type-constrained
pointers from the graph will introduce unsoundness.

Final step for rdar://179151541&179151882
DeltaFile
+74-0clang/test/Analysis/Scalable/TypeConstrainedPointers/unsafe-buffer-reachable-excludes-type-constrained-new-delete.cpp
+59-15clang/lib/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageAnalysis.cpp
+40-0clang/test/Analysis/Scalable/TypeConstrainedPointers/unsafe-buffer-reachable-excludes-type-constrained-main.cpp
+26-0clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/empty-pairs.json
+7-11clang/lib/ScalableStaticAnalysis/Core/WholeProgramAnalysis/AnalysisDriver.cpp
+5-5clang/test/Analysis/Scalable/ssaf-analyzer/analyzer.test
+211-314 files not shown
+215-3510 files

LLVM/project 2b8488allvm/utils profcheck-xfail.txt

[BPF][ProfCheck] Exclude sink-min-max.ll (#209352)

This was exposed by porting the pass to the NewPM, so just exclude it
for now.
DeltaFile
+1-0llvm/utils/profcheck-xfail.txt
+1-01 files

LLVM/project 252ad20compiler-rt/lib/gwp_asan/optional backtrace_linux_libc.cpp

[compiler-rt][GWP-ASan] Use no-op backtrace if execinfo.h missing (#201266)

Guard backtrace_linux_libc.cpp with __has_include(<execinfo.h>) so that
targets without it (e.g. musl libc) get null stubs instead of a build
failure.
DeltaFile
+19-1compiler-rt/lib/gwp_asan/optional/backtrace_linux_libc.cpp
+19-11 files

LLVM/project 1b87c3fllvm/include/llvm/IR Value.h, llvm/lib/Transforms/Scalar JumpThreading.cpp

Address review comments

Created using spr 1.3.6-beta.1
DeltaFile
+24-0llvm/test/Transforms/JumpThreading/ptrauth.ll
+10-9llvm/lib/Transforms/Scalar/JumpThreading.cpp
+1-1llvm/include/llvm/IR/Value.h
+35-103 files

LLVM/project 7a756ballvm/lib/Target/BPF BPFAsmPrinter.cpp BPFCodeGenPassBuilder.cpp

[BPF][NewPM] Port AsmPrinter

This is necessary to make the new pass manager fully supported for BPF.
This should be the last patch in the series.

Reviewers: yonghong-song, arsenm, eddyz87

Pull Request: https://github.com/llvm/llvm-project/pull/207854
DeltaFile
+35-0llvm/lib/Target/BPF/BPFAsmPrinter.cpp
+25-0llvm/lib/Target/BPF/BPFCodeGenPassBuilder.cpp
+22-0llvm/lib/Target/BPF/BPFAsmPrinter.h
+82-03 files

LLVM/project 507b0b5clang/test/OpenMP teams_distribute_parallel_for_simd_if_openmp52_codegen.cpp, llvm/docs LangRef.rst LangRef.md

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+20,246-21,270llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+0-33,190llvm/docs/LangRef.rst
+30,314-0llvm/docs/LangRef.md
+8,882-7,730llvm/test/MC/AMDGPU/gfx12_asm_vopc.s
+6,601-5,921llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll
+12,190-0clang/test/OpenMP/teams_distribute_parallel_for_simd_if_openmp52_codegen.cpp
+78,233-68,1117,909 files not shown
+499,499-375,2667,915 files