LLVM/project 4ae338fllvm/lib/Support APFloat.cpp, llvm/unittests/ADT APFloatTest.cpp

APFloat: fix wrong result status for large floats (#189925)

For large float literals such as
`10384593717069655257060992658440193.0`,
[`FloatingLiteral::isExact`](https://github.com/llvm/llvm-project/blob/6b2b0da40de1495ace2b100799a35711f7ad7b21/clang/include/clang/AST/Expr.h#L1702)
was incorrectly returning `true`.

The issue has been tracked down to
`IEEEFloat::roundSignificandWithExponent` incorrectly reporting `opOK`.
DeltaFile
+22-0llvm/unittests/ADT/APFloatTest.cpp
+6-6llvm/lib/Support/APFloat.cpp
+28-62 files

LLVM/project 0f0ec8fcompiler-rt/test/sanitizer_common/TestCases/Posix create_thread_loop2.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+3-0compiler-rt/test/sanitizer_common/TestCases/Posix/create_thread_loop2.cpp
+3-01 files

LLVM/project 4f40fe1llvm/docs SandboxIR.md, llvm/include/llvm/SandboxIR Tracker.h

[SandboxIR][Tracker] Support nested checkpoints (#191097)

This patch implements nested checkpointing, i.e., you can now save the
IR state more than once and revert more than once.
For example, after two saves: save(1) and save(2), a revert() will bring
you back to the IR state of save(2), one more revert will bring you back
to the IR state of save(1).
DeltaFile
+67-7llvm/unittests/SandboxIR/TrackerTest.cpp
+23-5llvm/lib/SandboxIR/Tracker.cpp
+8-9llvm/include/llvm/SandboxIR/Tracker.h
+5-0llvm/docs/SandboxIR.md
+103-214 files

LLVM/project 6e3ab87compiler-rt/cmake/Modules CompilerRTDarwinUtils.cmake, compiler-rt/lib/builtins/arm aeabi_cfcmp.S aeabi_cdcmp.S

[cmake][compiler-rt][darwin] builtin libraries don't build for armv6m in Darwin (#195372)

darwin_add_builtin_libraries tests for _Float16 and __bf16 for the host
architecture rather than the one being built, add -arch to fix that so
that armv6m correctly reports that it does not support __bf16.
cfcmp/cdcmp get "error: unsupported relocation type" on their "Branch to
target address" to c{f,d}cmple. Switch those to "Call a subroutine"
instructions on Thumb-1 (e.g. armv6m).

Assisted-by: Claude Code

rdar://167828904
DeltaFile
+6-0compiler-rt/lib/builtins/arm/aeabi_cfcmp.S
+6-0compiler-rt/lib/builtins/arm/aeabi_cdcmp.S
+3-0compiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
+15-03 files

LLVM/project 5847857flang/lib/Semantics check-omp-loop.cpp, flang/test/Semantics/OpenMP do01.f90

[flang][OpenMP] Detect DSA conflicts in nested loop constructs (#195323)

Follow-up to https://github.com/llvm/llvm-project/pull/194961

The fix from PR194961 did not detect explicit/predefined DSA conflicts
on an iteration variable in a nested loop construct. For example, in a
testcase inspired by Fujitsu 0165_0035.f90:
```
  !$omp parallel do private(i) shared(j)
  do i=1,1
    do j=1,1
      !$omp parallel do default(none) shared(k)
      do k=1,1
      end do
      !$omp end parallel do
    end do
  end do
```
the "shared(k)" was not flagged as incorrect.

    [2 lines not shown]
DeltaFile
+13-5flang/lib/Semantics/check-omp-loop.cpp
+17-0flang/test/Semantics/OpenMP/do01.f90
+30-52 files

LLVM/project cafb644compiler-rt/lib/asan asan_poisoning.cpp asan_errors.cpp, compiler-rt/test/asan/TestCases contiguous_container_crash.cpp

[asan] Record container poisoning in poison history (#195674)
DeltaFile
+8-0compiler-rt/lib/asan/asan_poisoning.cpp
+6-0compiler-rt/test/asan/TestCases/contiguous_container_crash.cpp
+1-0compiler-rt/lib/asan/asan_errors.cpp
+15-03 files

FreeBSD/ports 43b6933www/agate distinfo Makefile.crates

www/agate: Update 3.3.21 => 3.3.22

Approved by:            db@, yuri@ (Mentors, implicit)
DeltaFile
+53-53www/agate/distinfo
+25-25www/agate/Makefile.crates
+1-2www/agate/Makefile
+79-803 files

LLVM/project 457628cclang/test/AST ast-dump-linkage.cpp ast-dump-linkage-internal.cpp, libc/src/semaphore/linux named_semaphore.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+485-0clang/test/AST/ast-dump-linkage.cpp
+477-0clang/test/AST/ast-dump-linkage-internal.cpp
+198-0llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-live-outs.ll
+195-0libc/src/semaphore/linux/named_semaphore.cpp
+63-63clang/test/AST/ast-dump-decl.cpp
+114-0libc/test/src/semaphore/linux/semaphore_test.cpp
+1,532-63113 files not shown
+2,696-636119 files

OpenZFS/src 5dd9121man/man4 spl.4

Update description of spl_schedule_hrtimeout_slack_us

Clarify the effect of the non-zero value on wakeup coalescing.

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18467
DeltaFile
+1-1man/man4/spl.4
+1-11 files

OpenZFS/src b68c782man/man4 spl.4, man/man7 zfsprops.7 vdevprops.7

man: document three missing properties and tunables

Add manpage entries for parameters and properties that exist in
source but were not previously described:

- spl.4: spl_schedule_hrtimeout_slack_us
- zfsprops.7: longname
- vdevprops.7: raidz_expanding

Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin at TrueNAS.com>
Signed-off-by: Christos Longros <chris.longros at gmail.com>
Closes #18467
DeltaFile
+15-0man/man7/zfsprops.7
+13-0man/man4/spl.4
+6-0man/man7/vdevprops.7
+34-03 files

FreeBSD/ports caa8610devel/go-wire distinfo Makefile

devel/go-wire: Update 1.1.0 => 1.2.0

Perf: custom loader (up to 70x+ improvements).

Changelog:
https://github.com/goforj/wire/releases/tag/v1.2.0

PR:             295010
Sponsored by:   UNIS Labs
DeltaFile
+5-5devel/go-wire/distinfo
+1-1devel/go-wire/Makefile
+6-62 files

LLVM/project b58f4cellvm/lib/DWARFLinker/Parallel AcceleratorRecordsSaver.cpp AcceleratorRecordsSaver.h, llvm/test/tools/dsymutil/AArch64 dwarf5-dwarf4-combination-macho.test

[DWARFLinker] Emit DW_IDX_parent in the accelerator table (#195403)

.debug_names entries produced by the parallel linker were always emitted
with std::nullopt for ParentDIEOffset, resulting in a missing
DW_IDX_parent. The classic linker emits it via
DWARF5AccelTableData::getDefiningParentDieOffset on the output DIE tree.

The parallel linker can't use the same approach because the records are
saved during cloneDIE, before the output DIE has been linked into its
parent, so DIE::getParent() is nullptr at that time time. Fix that by
computing the parent offset from the input-side DIE tree instead. We
look up InputDieEntry's parent via getParentIdx, skip parents marked
DW_AT_declaration, and translate them to the output offset through
CompileUnit::getDieOutOffset. Since no real DIE can live at offset 0, we
can use that to unambiguously mark input DIEs that were not cloned into
this CU's plain DWARF (e.g. routed only into the artificial type unit)
and is treated as "no parent".

Only compile-unit accelerator entries are covered. Type-unit entries
(artificial type unit) still emit no DW_IDX_parent, tracked by a TODO.
DeltaFile
+66-28llvm/lib/DWARFLinker/Parallel/AcceleratorRecordsSaver.cpp
+16-4llvm/lib/DWARFLinker/Parallel/AcceleratorRecordsSaver.h
+4-8llvm/test/tools/dsymutil/AArch64/dwarf5-dwarf4-combination-macho.test
+2-2llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp
+4-0llvm/lib/DWARFLinker/Parallel/DWARFLinkerUnit.h
+4-0llvm/test/tools/dsymutil/AArch64/DWARFLinkerParallel/accel-imported-declarations.test
+96-426 files

LLVM/project df8c87dllvm/lib/Transforms/IPO Instrumentor.cpp

Update llvm/lib/Transforms/IPO/Instrumentor.cpp

Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
DeltaFile
+1-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+1-11 files

LLVM/project 9aa55b2compiler-rt/lib/sanitizer_common sanitizer_symbolizer_report.cpp, compiler-rt/lib/tsan/rtl tsan_report.cpp

[sanitizer] Capitalize HINT in reports (#195734)

Consistency with other sanitizer reports which use uppercase "HINT:".
DeltaFile
+7-6compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_report.cpp
+6-6compiler-rt/test/asan/TestCases/Posix/high-address-dereference.c
+3-2compiler-rt/lib/tsan/rtl/tsan_report.cpp
+1-1compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cpp
+17-154 files

LLVM/project affe132libc/src/__support/OSUtil/linux/syscall_wrappers ftruncate.h link.h, libc/src/semaphore posix_semaphore.h

Add named posix semaphore lifetime operations on linux (#192278)

This implements the second part of #190847 

Specifically, this pr adds `sem_open`, `sem_close`, and `sem_unlink` for
posix semaphore on linux.
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sem_open.html

https://pubs.opengroup.org/onlinepubs/9799919799/functions/sem_close.html

https://pubs.opengroup.org/onlinepubs/9799919799/functions/sem_unlink.html

Since it targets on linux implementation, two extra things are added:
1. add system call wrappers for `mmap`, `munmap`, `link`, `unlink`, and
`ftruncate`. Those are necessary for the implementation of semaphore on
linux. Wrappers is added based on the refactor proposal:
https://libc.llvm.org/dev/syscall_wrapper_refactor.html.
2. refactor the previous semaphore implementation, put it under `linux/`
since its based on linux.
DeltaFile
+195-0libc/src/semaphore/linux/named_semaphore.cpp
+114-0libc/test/src/semaphore/linux/semaphore_test.cpp
+73-0libc/src/semaphore/linux/semaphore.h
+0-59libc/src/semaphore/posix_semaphore.h
+41-0libc/src/__support/OSUtil/linux/syscall_wrappers/ftruncate.h
+39-0libc/src/__support/OSUtil/linux/syscall_wrappers/link.h
+462-598 files not shown
+616-10914 files

FreeBSD/src eb3b130. libsmart.c freebsd_dev.c

Import smart revision 1.0.2

The smart command allows the user to monitor the various information
reported by Self-Monitoring, Analysis and Reporting Technology (SMART)
present on most ATA, SCSI, and NVMe storage media.
DeltaFile
+1,359-0libsmart.c
+828-0freebsd_dev.c
+334-0smart.c
+245-0smart.8
+174-0libsmart.h
+158-0libsmart_desc.c
+3,098-06 files not shown
+3,379-012 files

LLVM/project 7237429llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 aarch64_be-shuffle-vector.ll fix-shuffle-vector-be-rev.ll

[AArch64] Fix `shufflevector` miscompilation on `aarch64_be` (#193076)

A function like

```llvm
define <4 x i16> @xtn_shuffle_even_v8i16(<8 x i16> %a) {
entry:
  %r = shufflevector <8 x i16> %a, <8 x i16> poison, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  ret <4 x i16> %r
}
```

will use the `xtn` instruction, which for each 32-bit vector element
keeps only the lower 16 bits, so effectively this is a truncation.
However, if the vector actually has 16-bit elements, then the conversion
from a shuffle to a truncation is only valid on LE, not on BE. On BE,
`uzp1` should be used instead. So this PR moves some logic to right
after a check for LE, so that BE does not miscompile.


    [5 lines not shown]
DeltaFile
+95-0llvm/test/CodeGen/AArch64/aarch64_be-shuffle-vector.ll
+27-27llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+0-39llvm/test/CodeGen/AArch64/fix-shuffle-vector-be-rev.ll
+122-663 files

LLVM/project 5e29d8allvm/lib/Target/Mips MipsDelaySlotFiller.cpp, llvm/test/CodeGen/Mips unalignedload.ll mips1-load-in-delay-slot.ll

Prevent undefined behavior caused by combination of branch and load delay slots on MIPS1 (#185427)

Under certain conditions the LLVM `MipsDelaySlotFiller` fills a branch
delay slot with an instruction requiring a load delay slot. However the
`MipsDelaySlotFiller` does not check the filled instruction for hazard
which leads to code like this:
```asm
        beqz    $1, $BB0_5
        lbu     $2, %lo(_RNvCs5jWYnRsDZoD_3app13CONTROLLERS_A)($2)
# --- Some other instructions
$BB0_5:
        andi    $1, $2, 1
```
`lbu` got moved into the branch delay slot but has a load delay slot -
so when jumping to `$BB0_5` the value for `$2` will not be ready, which
leads to undefined behavior.

This PR suggests to declare instructions with a load delay slot to be
hazardous for the branch delay slot, only for `MIPS1`. This will prevent

    [23 lines not shown]
DeltaFile
+221-84llvm/test/CodeGen/Mips/llvm-ir/load.ll
+225-35llvm/test/CodeGen/Mips/llvm-ir/select-dbl.ll
+179-32llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp
+62-6llvm/test/CodeGen/Mips/unalignedload.ll
+61-0llvm/test/CodeGen/Mips/mips1-load-in-delay-slot.ll
+50-0llvm/test/CodeGen/Mips/gprestore.ll
+798-1571 files not shown
+800-1587 files

LLVM/project 125619allvm/lib/Analysis ConstantFolding.cpp, llvm/lib/IR Constants.cpp ConstantFold.cpp

[RFC][NFCI][Constants] Add `Constant::isZeroValue`

The old `isZeroValue` was removed because it was functionally identical to
`Constant::isNullValue`. Currently, a "null value" in LLVM means a zero value.
We are moving toward changing the semantics of `ConstantPointerNull` to
represent a semantic null pointer instead of a zero-valued pointer. As a result,
the meaning of "null value" will also change in the future.

This PR series is the first step toward renaming the two widely used "null
value" interfaces to "zero value". As the first PR in the series, this change
adds a "new" `isZeroValue` alongside `isNullValue`, and makes `isNullValue` call
`isZeroValue` directly. Then, all uses of `isNullValue` in LLVM are replaced
with `isZeroValue`. Uses in other projects will be updated in separate PRs.

The plan is to eventually remove `isNullValue` after all uses have been
migrated.
DeltaFile
+15-15llvm/lib/Analysis/ConstantFolding.cpp
+14-14llvm/lib/IR/Constants.cpp
+11-11llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+11-9llvm/lib/IR/ConstantFold.cpp
+9-9llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+9-9llvm/unittests/Analysis/ValueLatticeTest.cpp
+69-67100 files not shown
+276-265106 files

LLVM/project 622e3f0compiler-rt/test/asan/TestCases/Windows report_after_syminitialize.cpp

Winfix

Created using spr 1.3.7
DeltaFile
+1-1compiler-rt/test/asan/TestCases/Windows/report_after_syminitialize.cpp
+1-11 files

LLVM/project 01aefballvm/lib/Transforms/Vectorize VPlanUtils.cpp LoopVectorize.cpp

[VPlan] Get GEP wrap flags from VPInstructions (NFCI). (#195730)

Add helper to retrieve GEP no-wrap flags from VPInstructions, looking
through zero-index GEPs and pointer casts, like
Value::stripPointerCasts. Removes an access to underlying IR.
DeltaFile
+19-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+6-10llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+4-0llvm/lib/Transforms/Vectorize/VPlanUtils.h
+29-103 files

LLVM/project 04e5b1bclang/test/AST ast-dump-linkage.cpp ast-dump-linkage-internal.cpp, compiler-rt/test/asan/TestCases contiguous_container_crash.cpp

rebase

Created using spr 1.3.7
DeltaFile
+485-0clang/test/AST/ast-dump-linkage.cpp
+477-0clang/test/AST/ast-dump-linkage-internal.cpp
+198-0llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-live-outs.ll
+63-63clang/test/AST/ast-dump-decl.cpp
+47-48lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+0-79compiler-rt/test/asan/TestCases/contiguous_container_crash.cpp
+1,270-19082 files not shown
+1,683-55188 files

LLVM/project 59ca7caclang/test/AST ast-dump-linkage.cpp ast-dump-linkage-internal.cpp, compiler-rt/test/asan/TestCases contiguous_container_crash.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+485-0clang/test/AST/ast-dump-linkage.cpp
+477-0clang/test/AST/ast-dump-linkage-internal.cpp
+198-0llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-live-outs.ll
+63-63clang/test/AST/ast-dump-decl.cpp
+47-48lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+0-79compiler-rt/test/asan/TestCases/contiguous_container_crash.cpp
+1,270-19082 files not shown
+1,683-55188 files

LLVM/project 9792c77compiler-rt/test/asan/TestCases contiguous_container_crash.cpp

[asan] Add tests for __sanitizer_annotate_double_ended_contiguous_container (#195673)
DeltaFile
+77-4compiler-rt/test/asan/TestCases/contiguous_container_crash.cpp
+77-41 files

LLVM/project 1e835b3llvm/lib/Transforms/IPO ModuleInliner.cpp

[ModuleInliner] Skip function declarations during candidate scan (#195567)

This patch skips function declarations during the candidate scan in
ModuleInlinerPass::run as declarations do not have bodies.
DeltaFile
+2-0llvm/lib/Transforms/IPO/ModuleInliner.cpp
+2-01 files

LLVM/project 5275e72llvm/lib/Analysis InlineOrder.cpp, llvm/test/Transforms/Inline module-inliner-cba-crash.ll

[InlineOrder] Fix assertion failure in CostBenefitPriority (#195564)

InlineCost::getStaticBonusApplied() triggers an assertion failure
if the CostBenefitPriority constructor calls it when
IC.isVariable() is false. This is because
getStaticBonusApplied() expects isVariable() to be true.
Unconditionally populating CostBenefit also incorrectly prioritizes
a NeverInline candidate with a cost-benefit pair over other
valid variable-cost sites.
  
This patch fixes the crash and the sorting issue by calling
getStaticBonusApplied() and populating CostBenefit only when
IC.isVariable() is true. For AlwaysInline and NeverInline costs,
CostBenefit is explicitly set to std::nullopt.
DeltaFile
+23-0llvm/test/Transforms/Inline/module-inliner-cba-crash.ll
+7-4llvm/lib/Analysis/InlineOrder.cpp
+30-42 files

LLVM/project 7e44c07llvm/lib/Transforms/IPO ModuleInliner.cpp, llvm/test/Transforms/Inline module-inliner-cycle.ll

[IPO] Fix infinite recursive inlining in ModuleInliner (#195471)

The ModuleInliner currently lacks inline history tracking.  Without
it, the inliner can get stuck in an infinite loop when mutually
recursive functions are involved.

This patch enables inline history tracking in the ModuleInliner to
address this issue.

The minsize attribute in the test case lowers the threshold for the
mutually recursive functions, ensuring the bug reproduces in pass
isolation.
DeltaFile
+34-0llvm/test/Transforms/Inline/module-inliner-cycle.ll
+3-1llvm/lib/Transforms/IPO/ModuleInliner.cpp
+37-12 files

FreeBSD/ports f8aedc0www/phpmyfaq pkg-plist distinfo

www/phpmyfaq: Update to 4.1.2
DeltaFile
+11-45www/phpmyfaq/pkg-plist
+3-3www/phpmyfaq/distinfo
+1-1www/phpmyfaq/Makefile
+15-493 files

LLVM/project d234050clang/docs LanguageExtensions.rst, clang/test/AST ast-dump-linkage.cpp ast-dump-linkage-internal.cpp

rebase

Created using spr 1.3.7
DeltaFile
+485-0clang/test/AST/ast-dump-linkage.cpp
+477-0clang/test/AST/ast-dump-linkage-internal.cpp
+198-0llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-live-outs.ll
+63-63clang/test/AST/ast-dump-decl.cpp
+47-48lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+33-24clang/docs/LanguageExtensions.rst
+1,303-13580 files not shown
+1,669-45486 files

LLVM/project c886414clang/docs LanguageExtensions.rst, clang/test/AST ast-dump-linkage.cpp ast-dump-linkage-internal.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+485-0clang/test/AST/ast-dump-linkage.cpp
+477-0clang/test/AST/ast-dump-linkage-internal.cpp
+198-0llvm/test/Transforms/LoopVectorize/AArch64/transform-narrow-interleave-to-widen-memory-with-live-outs.ll
+63-63clang/test/AST/ast-dump-decl.cpp
+47-48lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp
+33-24clang/docs/LanguageExtensions.rst
+1,303-13579 files not shown
+1,665-45085 files