LLVM/project c33d4bfclang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety Origins.cpp FactsGenerator.cpp

[LifetimeSafety] Track per-field origins for record types
DeltaFile
+230-8clang/test/Sema/warn-lifetime-safety.cpp
+82-8clang/lib/Analysis/LifetimeSafety/Origins.cpp
+59-24clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+39-10clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+21-12clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
+4-6clang/test/Sema/warn-lifetime-safety-dangling-field.cpp
+435-682 files not shown
+440-688 files

LLVM/project 52340a4libc/src/__support/math CMakeLists.txt roundf16.h, libc/src/math/generic CMakeLists.txt

[libc][math] Refactor round-roundeven-trunc family to header-only (#195590)

Refactors the round-roundeven-trunc math family to be header-only.

part of: #147386

Target Functions:
  - round
  - roundbf16
  - roundf
  - roundf128
  - roundf16
  - roundl
  - roundeven
  - roundevenbf16
  - roundevenf
  - roundevenf128
  - roundevenf16
  - roundevenl

    [5 lines not shown]
DeltaFile
+264-15utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+198-0libc/src/__support/math/CMakeLists.txt
+18-66libc/src/math/generic/CMakeLists.txt
+39-0libc/src/__support/math/roundf16.h
+39-0libc/src/__support/math/truncf16.h
+39-0libc/src/__support/math/roundevenf16.h
+597-8155 files not shown
+1,605-21761 files

LLVM/project 3a5f8aelld/ELF Relocations.cpp

[ELF] Remove dead stable_sort in TargetInfo::scanSectionImpl. NFC (#195601)

Dead since the code is moved to target-specific relocation scanning.
DeltaFile
+0-8lld/ELF/Relocations.cpp
+0-81 files

LLVM/project ec0ee3blld/test/ELF systemz-reloc-gotrel.s

[SystemZ,test] Cover non-preemptible PLTOFF (#195600)

R_390_PLTOFF{16,32,64} against a non-preemptible (hidden) symbol takes
fromPlt(R_PLT_GOTREL) → R_GOTREL in RelocScan::process so the relocation
resolves to symbol - .got with no PLT entry. Add tests to fix the
the test gap from the initial SystemZ port
(fe3406e349884e4ef61480dd0607f1e237102c74).
DeltaFile
+31-8lld/test/ELF/systemz-reloc-gotrel.s
+31-81 files

LLVM/project cd077balibc/src/__support/FPUtil/x86_64 NextAfterLongDouble.h

[libc][math][NFC] Fix nextafterl build (#195599)
DeltaFile
+1-1libc/src/__support/FPUtil/x86_64/NextAfterLongDouble.h
+1-11 files

LLVM/project 0d7ad3dlibc/src/__support/FPUtil ManipulationFunctions.h, libc/src/__support/math nextafterbf16.h nextafterf.h

[libc][math] Qualify nextafter functions to constexpr (#195596)

Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>
DeltaFile
+10-0libc/test/shared/shared_math_constexpr_test.cpp
+6-0libc/test/shared/CMakeLists.txt
+1-1libc/src/__support/math/nextafterbf16.h
+1-1libc/src/__support/math/nextafterf.h
+1-1libc/src/__support/FPUtil/ManipulationFunctions.h
+1-1libc/src/__support/math/nextafterf16.h
+20-43 files not shown
+23-79 files

LLVM/project d9c7b66libc/test/shared CMakeLists.txt

[libc][math][NFC] Remove `-fconstexpr-steps` flag (#195593)
DeltaFile
+0-3libc/test/shared/CMakeLists.txt
+0-31 files

LLVM/project 9cb00e1lld/ELF RelocScan.h

[ELF] Remove dead code related to relocation scanning (#195594)
DeltaFile
+0-12lld/ELF/RelocScan.h
+0-121 files

LLVM/project 9770827libc/test/shared CMakeLists.txt

[libc][math][NFC] Remove `-fconstexpr-steps` flag
DeltaFile
+0-3libc/test/shared/CMakeLists.txt
+0-31 files

LLVM/project 8889e8flibc/src/__support/math CMakeLists.txt nanf128.h, libc/src/math/generic CMakeLists.txt

[libc][math] Refactor iscanonical-issignaling-nan family to header-only (#195581)

Refactors the iscanonical-issignaling-nan math family to be
header-only.

part of: #147386

Target Functions:
  - iscanonical
  - iscanonicalbf16
  - iscanonicalf
  - iscanonicalf128
  - iscanonicalf16
  - iscanonicall
  - issignaling
  - issignalingbf16
  - issignalingf
  - issignalingf128
  - issignalingf16

    [10 lines not shown]
DeltaFile
+251-21utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+177-1libc/src/__support/math/CMakeLists.txt
+46-0libc/test/shared/shared_math_constexpr_test.cpp
+12-31libc/src/math/generic/CMakeLists.txt
+39-0libc/test/shared/CMakeLists.txt
+35-0libc/src/__support/math/nanf128.h
+560-5358 files not shown
+1,575-17064 files

LLVM/project f7329e6libcxx/include fenv.h cfenv, libcxx/include/__cxx03 cfenv

[libc++] Remove libc++'s own fenv.h (#194629)

Our own `fenv.h` only `#undef`s macros which the C header might define.
None of the libcs we support define any of these functions as macros, so
we can simply drop the header.
DeltaFile
+0-118libcxx/include/fenv.h
+5-8libcxx/include/__cxx03/cfenv
+5-8libcxx/include/cfenv
+0-4libcxx/include/module.modulemap.in
+0-1libcxx/include/CMakeLists.txt
+10-1395 files

LLVM/project be8e084libcxx/include cctype ctype.h, libcxx/include/__cxx03 cctype

[libc++] Remove libc++'s own ctype.h (#194615)

Our own `ctype.h` only `#undef`s macros which the C header might define.
None of the libcs we support define any of these functions as macros, so
we can simply drop the header.
DeltaFile
+5-63libcxx/include/__cxx03/cctype
+5-63libcxx/include/cctype
+0-65libcxx/include/ctype.h
+0-4libcxx/include/module.modulemap.in
+0-1libcxx/include/CMakeLists.txt
+10-1965 files

LLVM/project d38d8c6libcxx/include/__random subtract_with_carry_engine.h linear_congruential_engine.h

[libc++] Simplify more <random> engines (#195504)

This uses `if _LIBCPP_CONSTEXPR` to simplify and deduplicate some of the
code for the random engines.
DeltaFile
+25-54libcxx/include/__random/subtract_with_carry_engine.h
+20-35libcxx/include/__random/linear_congruential_engine.h
+23-29libcxx/include/__random/independent_bits_engine.h
+15-24libcxx/include/__random/shuffle_order_engine.h
+83-1424 files

LLVM/project 2c35727llvm/lib/Transforms/InstCombine InstCombineSelect.cpp, llvm/test/Transforms/InstCombine saturating-add-sub.ll

[InstCombine] Fold `A == MIN_INT ? MAX_INT : 0 - A` to `ssub_sat 0, A` (#194519)

This PR fold:
`A == MIN_INT ? MAX_INT : 0 - A` to `ssub_sat 0, A`

proof: https://alive2.llvm.org/ce/z/vGqJfA
DeltaFile
+46-4llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+44-0llvm/test/Transforms/InstCombine/saturating-add-sub.ll
+6-18llvm/test/Transforms/LoopVectorize/ARM/mve-qabs.ll
+96-223 files

LLVM/project 17cb210mlir/include/mlir/Dialect/OpenMP OpenMPOps.td, mlir/lib/Dialect/OpenMP/IR OpenMPDialect.cpp

[OpenMP][mlir] Add Groupprivate op in omp dialect. (#162704)

This PR adds omp.groupprivate mlir op to omp dialect. 

The groupprivate directive specifies that variables are replicated, with
each group having its own copy. The operation takes a symbol reference
to a global variable and an optional device_type attribute, and returns
the address of its groupprivate copy.
Op representation:
`%gp = omp.groupprivate @global_var : !llvm.ptr`
`%gp = omp.groupprivate @global_var device_type(any) : !llvm.ptr`

LLVM IR translation: 
On target devices (AMDGCN/NVPTX), the op is lowered to a new global
variable in the shared address space
On the host, the original global address is used as a fallback.
DeltaFile
+75-0mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+63-0mlir/test/Target/LLVMIR/openmp-llvm.mlir
+41-0mlir/test/Target/LLVMIR/omptarget-groupprivate.mlir
+29-0mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
+27-0mlir/test/Dialect/OpenMP/ops.mlir
+18-0mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp
+253-06 files

LLVM/project ab8e0f9libc/config/linux/aarch64 entrypoints.txt, libc/config/linux/riscv entrypoints.txt

[libc] Enable socket entrypoints in overlay mode (#195035)

This is slightly tricky in that many of these functions depend on types
(struct sockaddrs, msghdr, ...) and we cannot overlay types. However,
this works because these functions are simple syscall wrappers which
simply forward the data to the kernel -- so it's really the kernel
that's defining these structures.

This approach is compatible with libraries which implement these
functions the same way, this includes at least glibc (on all
architectures) and musl (on 32-bit architectures). 64-bit musl repacks
the [c]msghdr structures to zero out padding fields, and overlaying that
can lead to subtle bugs. However, I believe that overlaying musl is not
a very interesting use case, so I'm leaving that as a TODO. If someone
is interested in doing that, they can either exclude these entrypoints
from the overlay or implement the musl-compatible repacking code.
DeltaFile
+21-19libc/config/linux/riscv/entrypoints.txt
+21-19libc/config/linux/x86_64/entrypoints.txt
+21-12libc/config/linux/aarch64/entrypoints.txt
+4-4libc/test/src/sys/socket/linux/shutdown_test.cpp
+1-1libc/test/src/sys/socket/linux/socketopt_test.cpp
+68-555 files

LLVM/project 5a91032clang/docs RISCVSupport.rst, clang/lib/Headers sifive_vector.h riscv_crypto.h

[clang][RISCV] Use macro to check if intrinsics are supported (#187197)

Normally intrinsic support is decoupled from assembler support which
means we cant simply use arch string to check if intrinsics are
supported. This patch defines macros \__riscv_intrinsic\_{EXTENSION}
to check whether the intrinsics of EXTENSION is supported by this
compiler.

c-api-doc PR: https://github.com/riscv-non-isa/riscv-c-api-doc/pull/183
DeltaFile
+85-0clang/test/Preprocessor/riscv-intrinsic-exts.c
+34-0clang/docs/RISCVSupport.rst
+17-0clang/lib/Headers/sifive_vector.h
+11-0clang/utils/TableGen/RISCVVEmitter.cpp
+8-0clang/lib/Headers/riscv_crypto.h
+6-0clang/lib/Headers/riscv_bitmanip.h
+161-06 files not shown
+176-012 files

LLVM/project 55114f4clang/test/CodeGenCXX riscv-mangle-rvv-vectors.cpp

[llvm][RISCV] Add missing RVV mangling tests. NFC (#194227)
DeltaFile
+248-2clang/test/CodeGenCXX/riscv-mangle-rvv-vectors.cpp
+248-21 files

LLVM/project 922fb78libc/src/__support/math setpayloadl.h setpayloadf16.h, libc/test/shared shared_math_constexpr_test.cpp CMakeLists.txt

[libc][math] Qualify setpayload functions to constexpr (#195582)

Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>
DeltaFile
+24-0libc/test/shared/shared_math_constexpr_test.cpp
+6-0libc/test/shared/CMakeLists.txt
+1-1libc/src/__support/math/setpayloadl.h
+1-1libc/src/__support/math/setpayloadf16.h
+1-1libc/src/__support/math/setpayloadf128.h
+1-1libc/src/__support/math/setpayloadf.h
+34-43 files not shown
+37-79 files

LLVM/project e5fc77cllvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPUWaitcntUtils.h

[AMDGPU][SIInsertWaitcnts][NFC] Remove HasExtendedWaitcnts from printer

The debug output no longer needs to distinguish between pre-gfx12 and
gfx12+ counter names. Drop the HasExtendedWaitcnts boolean from
getInstCounterName, Waitcnt::getPrintable, print, and dump, keeping
only the extended (gfx12+) names unconditionally.

Assisted-By: Claude Sonnet 4.6
DeltaFile
+6-14llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+6-9llvm/lib/Target/AMDGPU/AMDGPUWaitcntUtils.h
+5-10llvm/lib/Target/AMDGPU/AMDGPUWaitcntUtils.cpp
+17-333 files

LLVM/project 9708947clang-tools-extra/clang-tidy/modernize DeprecatedHeadersCheck.cpp, clang-tools-extra/clangd/unittests DiagnosticsTests.cpp

[clang-tidy] Skip user headers named like C headers in `modernize-deprecated-headers` (#195507)

Previously `modernize-deprecated-headers` would match on any header with
the same name as standard library headers. This commit fixes the problem
by checking whether the include resolves to a system header.

Closes #45991

---------

Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
DeltaFile
+9-0clang-tools-extra/test/clang-tidy/checkers/modernize/deprecated-headers-user.cpp
+5-0clang-tools-extra/docs/ReleaseNotes.rst
+4-0clang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
+2-1clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+1-0clang-tools-extra/test/clang-tidy/checkers/modernize/Inputs/deprecated-headers/user/assert.h
+21-15 files

LLVM/project e7b0b35clang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode builtin-functions.cpp references.cpp

[clang][bytecode] Create global variables for temporaries... (#195037)

... that are extended by other global variables.

If the temporary we create is extended by a variable that we index as a
global, create a global for the temporary, even if it's not an
`SD_Static` temporary.
DeltaFile
+19-6clang/lib/AST/ByteCode/Compiler.cpp
+10-0clang/test/AST/ByteCode/builtin-functions.cpp
+3-2clang/test/AST/ByteCode/references.cpp
+32-83 files

LLVM/project ccc3e81clang/test/Format clang-format-ignore.cpp, clang/tools/clang-format ClangFormat.cpp

[clang-format] Make ignored files unformatted instead of empty. (#170416)

Tools rely on the expectation that clang-format will output a formatted
file. In the case of ignored files, the formatted file should just be
the input file, untouched.

Fixes #170407
DeltaFile
+18-20clang/test/Format/clang-format-ignore.cpp
+8-1clang/tools/clang-format/ClangFormat.cpp
+26-212 files

LLVM/project 4cc98cclibc/src/__support/FPUtil BasicOperations.h, libc/src/__support/math getpayloadf.h getpayloadl.h

[libc][math] Qualify getpayload functions to constexpr (#195532)

Signed-off-by: udaykiriti <udaykiriti624 at gmail.com>
DeltaFile
+26-0libc/test/shared/shared_math_constexpr_test.cpp
+6-0libc/test/shared/CMakeLists.txt
+3-1libc/src/__support/math/getpayloadf.h
+2-1libc/src/__support/FPUtil/BasicOperations.h
+1-1libc/src/__support/math/getpayloadl.h
+1-1libc/src/__support/math/getpayloadf16.h
+39-43 files not shown
+42-79 files

LLVM/project af37d9flibcxx/include algorithm, libcxx/include/__algorithm ranges_fold.h

Implement fold_right_last
DeltaFile
+204-0libcxx/test/std/algorithms/alg.nonmodifying/alg.fold/ranges.fold_right_last.pass.cpp
+30-0libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
+30-0libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+25-0libcxx/include/__algorithm/ranges_fold.h
+13-3libcxx/test/benchmarks/algorithms/nonmodifying/fold.bench.cpp
+10-0libcxx/include/algorithm
+312-38 files not shown
+328-814 files

LLVM/project d50631fllvm/lib/CodeGen CodeGenTargetMachineImpl.cpp, llvm/lib/CodeGen/AsmPrinter AsmPrinter.cpp

MCContext/TargetMachine: Take MCRegisterInfo and MCSubtargetInfo by reference. NFC (#195032)

Both MCRegisterInfo and MCSubtargetInfo are non-null at every callsite
that matters (only nullable in unit tests like
`llvm/unittests/CodeGen/MFCommon.inc`), mirroring the recent `const
MCAsmInfo &` cleanup.

* TargetMachine::getMCRegisterInfo and getMCSubtargetInfo return
  references.
* MCContext's constructor takes const MCRegisterInfo & and
  const MCSubtargetInfo &.
DeltaFile
+10-10llvm/unittests/MC/AMDGPU/DwarfRegMappings.cpp
+6-6llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp
+5-5llvm/unittests/Target/AArch64/AArch64SVESchedPseudoTest.cpp
+8-2llvm/unittests/CodeGen/MFCommon.inc
+4-4llvm/lib/CodeGen/CodeGenTargetMachineImpl.cpp
+4-4llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+37-3166 files not shown
+140-13472 files

LLVM/project 5f9b0adlibc/src/__support/math CMakeLists.txt rintf16.h, libc/src/math/generic CMakeLists.txt

[libc][math] Refactor rint-nearbyint family to header-only (#195577)

Refactors the rint-nearbyint math family to be header-only.

part of: #147386

Target Functions:
  - nearbyint
  - nearbyintbf16
  - nearbyintf
  - nearbyintf128
  - nearbyintf16
  - nearbyintl
  - rint
  - rintbf16
  - rintf
  - rintf128
  - rintf16
  - rintl

    [4 lines not shown]
DeltaFile
+176-8utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+123-0libc/src/__support/math/CMakeLists.txt
+12-32libc/src/math/generic/CMakeLists.txt
+40-0libc/src/__support/math/rintf16.h
+31-0libc/src/__support/math/rintf128.h
+31-0libc/src/__support/math/nearbyintf16.h
+413-4037 files not shown
+1,044-11543 files

LLVM/project cd6119cflang/test/Lower structure-constructors.f90 transformational-intrinsics.f90, flang/test/Lower/Intrinsics ieee_unordered.f90 rrspacing.f90

[flang][NFC] Converted more tests from old lowering to new lowering (part 55) (#195291)

Converted tests:
- Lower/Intrinsics/ieee_unordered.f90
- Lower/Intrinsics/rrspacing.f90
- Lower/structure-constructors.f90
- Lower/transformational-intrinsics.f90

Removed test:
- Transforms/stack-arrays.f90: tested the stack-arrays pass on the
legacy --array-value-copy output of legacy lowering. The HLFIR pipeline
produces fundamentally different code for array slice copies
(_FortranAAssign with fir.embox of sub-slices instead of allocating a
temp via array-value-copy), so the test's premises no longer apply. The
HLFIR equivalent test already exists at
Transforms/stack-arrays-hlfir.f90.
DeltaFile
+110-179flang/test/Lower/structure-constructors.f90
+92-193flang/test/Lower/transformational-intrinsics.f90
+0-154flang/test/Transforms/stack-arrays.f90
+33-35flang/test/Lower/Intrinsics/ieee_unordered.f90
+4-4flang/test/Lower/Intrinsics/rrspacing.f90
+239-5655 files

LLVM/project eed3366llvm/test/tools/llubi attributes.ll metadata.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Add support for poison-generating/UB-implying annotations (#195339)

This patch adds support for poison-generating/UB-implying annotations,
including:
1. Parameter/retval attributes on function declarations and call sites
(range/nofpclass/align/nonnull/noundef/dereferenceable[_or_null]).
2. Metadata
(!range/!nofpclass/!align/!nonnull/!noundef/!dereferenceable[_or_null])
3. Assume operand bundles (nonnull/align/dereferenceable[_or_null])

I put all of them into a single patch as they share most of the common
logic.
Note that there are two todos to reach the full support:
1. Load with `!noundef` metadata doesn't check undef bits for now.
2. !dereferenceable[_or_null] on load (and inttoptr) are not tested by
this patch, as it needs the provenance support
(https://github.com/llvm/llvm-project/pull/185977). But it should be
fine as they are tested by metadata on call sites.
DeltaFile
+328-0llvm/test/tools/llubi/attributes.ll
+307-7llvm/tools/llubi/lib/Interpreter.cpp
+114-0llvm/test/tools/llubi/metadata.ll
+46-0llvm/test/tools/llubi/assume_operand_bundles.ll
+20-0llvm/test/tools/llubi/assume_null_all_ones.ll
+20-0llvm/test/tools/llubi/attribute_dereferenceable_ub_nullary_provenance.ll
+835-718 files not shown
+1,052-1624 files

LLVM/project 5c0e063.github/workflows release-tasks.yml

workflows/release-tasks: remove duplicate environment specification
DeltaFile
+0-1.github/workflows/release-tasks.yml
+0-11 files